开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

【软件周刊第 38 期】IntelliJ IDEA 2017.2 正式发布;Angular 5 发布首个 Beta 版

软件周刊(07.16 — 07.22):本周热门软件更新 — Wine 2.0.2 发布,Windows 应用兼容层;ArangoDB 3.2 正式版:提升性能,减少内存占用;JDK 8u141 发布,Java 开发工具包;MySQL 8.0.2 DMR 发布,添加窗口函数功能;Kubernetes 1.7.1 版本发布,容器集群管理系统
编辑部的故事 发布于 2小时前 阅读 13

Golang面试题解析

最近在很多地方看到了[golang的面试题](https://zhuanlan.zhihu.com/p/26972862),看到了很多人对Golang的面试题心存恐惧,也是为了复习基础,我把解题的过程总结下来。 ## 面试题 ### 1. 写出下面代码输出内容。 ```go package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常") } ``` 考点:**defer执行顺序** 解答: defer 是**后进先出**。 panic 需要等defer 结束后才会向上传递。 出现panic恐慌时候,会先按照defer的后入先出的顺序执行,最后才会执行panic。 ```go 打印后 打印中 打印前 panic: 触发异常 ``` ### 2. 以下代码有什么问题,说明原因。 ```go type student struct { Name string Age int } func pase_student() { m := make(map[string]*student) stus := []student{ {Name: "zhou", Age: 24}, {Name: "li", Age: 23}, {Name: "wang", Age: 22}, } for _, stu := range stus { m[stu.Name] = &stu } } ``` 考点:**foreach** 解答: 这样的写法初学者经常会遇到的,很危险! ...
梦朝思夕 发布于 20小时前 阅读 135 评论 2 点赞 2

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

【源资讯 第36期】赶超 Java 和 PHP,Python 成最热门编程语言?

【一周源资讯(2017.7.15-2017.7.21)】JetBrains 近日发布了2017 开发者生态报告,JavaScript 是最常用的语言,而 Go 被认为是最有前途的语言,但在 IEEE Spectrum 发布的编程语言排行榜和 Packt 发布的 2017 年度技能调查报告中,Python 最终获得冠军!
编辑部的故事 发布于 1天前 阅读 1868 评论 15 点赞 2

mysqldump之跳过指定表

背景 目前系统中对于业务数据做了备份以作为数据校验,比如期初数据期末数据进行对比监控,因此产生了大量的备份表。备份表单表数据随着业务的增长而持续增长。导致晚间备份数据超长。 原方法 ./mysqldump -uroot -proot --skip-lock-tables --databases f6dms_1116_prod_backup| gzip > /home/opt/database_`date '+%m-%d-%Y'`.sql.gz; 这样会导致备份时间超长,文件太大(随着时间增长 表变大,表变多) 目前使用jenkins远程ssh调用脚本远程执行mysqldump进行备份。 我的思考 mysqldump支持备份指定库,那么我们可以备份其他到db中? 备份忽略指定前缀的表 解决方法 比较简单,略过 mysqldump支持  --ignore-table但是不支持通配符,那么我们可以通过生成mysqldump的指令来完成。对于指定名称我们可以通过show tables来实现。因此如下  ./mysqldump -uroot -proot --skip-lock-tables --databases f6dms_1116_prod_backup $(mysql -uroot -proot -Df6dms_1116_prod_backup -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms_1116_prod_backup."$1}'|xargs)| gzip > /home/opt/database_`date '+%m-%d-%Y'`.sql.gz; 通过查询db的...
Mr_Qi 发布于 1天前 阅读 39

Thinkphp3的monolog实现

一【背景】   公司有个基于tp3的项目,此项目经历多次改版重构,有种千疮百孔的感觉,让人看着隐隐心疼,特别是在日志模块上,基于tp提供的日志功能,各种混乱不协调,且与业务的耦合非常高;   但是这个项目又是很重要的,是最直接面向用户的入口,不出现问题则好,一出现就是一团乱,问题定位均需依赖后端接口或者第三方,也因此背过不少的锅,眼泪总是默默的流在心里;   是时候做出改变了! 二【选定方案】   项目基于Thinkphp3.2版本,此版本在日志方面使用的是php内置的error_log函数实现,在不改动tp内核源码情况,很难定制自己的日志驱动,我们使用过程存在几个埋怨点: 1)日志格式难统一,没有一个标准什么时候写日志,写什么日志等 2)日志扩展困难,特别对于项目中特定的需要log的情况 3)log代码与业务耦合厉害,维护起来很让人烦躁 那么基于tp3本身的日志做些修补,意义不是太大,治标不治本,所以我们努力寻找第三方完整的开源日志库: 1)这里我们应该首先就会想到php4log,一个很强大,很完整的日志库,网上大家对它的评价大都围绕在低性能上,在实际的测试中,性能上也确实让人堪忧,含泪略过; 2)性能方面国产的seaslog无疑是最佳的,不论从官方测...
goodman_fz 发布于 1天前 阅读 33

从信息熵的角度来理解机器学习要优化的目标

  摘要:机器学习任务中最核心的工作是对构造合适的损失函数,并对其进行优化,得到最终的模型。那么如何来构造损失函数,常用的构造函数背后有哪些理论的支撑,本篇文章从熵的角度来解析,希望对对读者起到抛装引玉的作用。 一、 基础概念 信息量 对于离散概率,定义p_i的信息量为 可以理解为需要查找多少次可以找到对应的离散值,比如概率0.125,对应的信息量是3,也就是说需要至少折半查找3次才能找到对应的离散取值。 信息熵(Information entropy) 衡量信息的不确定性(对于人来说),熵越小,信息就越确定。通俗的说,可以从几个方面来描述,比如人判断一件事情时有把握的程度、信息压缩编码时最小需要的位数。简单的说,熵反应了信息量。定义如下 交叉熵(Cross Information entropy) 如果一件事情的不确定性为0,那么信息熵也为0,所以信息熵可以理解为消除事件不确定性所要付出的代价,而实际当中很难采用最真实的概率分布来对事件进行判断,而是采用一种接近真实的概率分布,比如q来拟合真实的场景,将q带入信息熵的公式就可以得出交叉熵的定义 交叉熵所代表的含义是,采用非真实概率分布q下,要消除事件的不确定性所付出的代价,通常情况下,交叉熵要比信息熵大...
saintqdd 发布于 2天前 阅读 207 点赞 3

给 Web 开发人员推荐的开源图形库 —— 2D/3D

现代 Web 开发在将体验和功能做到极致的同时,对于美观的追求也越来越高,数据可视化、动画交互、2D/3D 等元素已然成为标配。 以下是为 Web 开发者推荐的一些精品开源图形库,旨在专注于最常见的问题和最常用的东西。将针对动画(Animation)、数据可视化(Data Visualization)、2D/3D 分别整理,欢迎保持关注。 给 Web 开发人员推荐的开源图形库 —— 动画 2D 一、绘图渲染 1、图形 PixiJS 一个 HTML5 构建引擎,用最快、最灵活的 2D WebGL 渲染器创建漂亮的数字化内容。旨在提供一个可以在所有设备上运行的快速轻量级 2D 库,帮助你创建丰富的交互式图形、跨平台应用和游戏,而无需深入到 WebGL API 或处理浏览器和设备的兼容性。 效果预览:点此查看 Fabric.js 一个可以轻松使用 HTML5 canvas 元素的库,在 Canvas 元素之上提供交互对象模型,同时还包含 SVG-to-canvas 解析器。它可以帮助你在画布上创建和填充对象,从简单的几何图形到成百上千路径组成的复杂图形。你可以通过鼠标轻松的移动、缩放和旋转这些对象,修改它们的属性(颜色、透明度,层叠顺序)等等。 效果预览:点此查看 2、立体像素 Obelisk.js 这是一个构建等距立体像素对象的 JavaScript 库,通过提...
编辑部的故事 发布于 2天前 阅读 3276 评论 14 点赞 11

数据库中间件 MyCAT 源码分析 —— SQL ON MongoDB

![wechat_mp](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. 主流程](#) - [3. 查询操作](#) - [4. 插入操作](#) - [5. 彩蛋](#) ------- # 1. 概述 可能你在看到这个标题会小小的吃惊,MyCAT 能使用 MongoDB 做数据节点。是的,没错,确实可以。 吼吼吼,让我们开启这段神奇的“旅途”。 本文主要分成四部分: 1. 总体流程,让你有个整体的认识 2. 查询操作 3. 插入操作 4. 彩蛋,😈彩蛋,🙂彩蛋 建议你看过这两篇文章(_非必须_): 1. [《MyCAT 源码分析 —— 【单库单表】插入》](http://www.yunai.me/MyCAT/single-db-single-table-insert/?self) 2. [《MyCAT 源码分析 —— 【单库单表】查询》](http://www.yunai.me/MyCAT/single-db-single-table-select/?self) # 2....
芋艿V 发布于 3天前 阅读 1191 评论 15 点赞 1

Golang依赖管理工具:glide从入门到精通使用

## 介绍 不论是开发Java还是你正在学习的Golang,都会遇到**依赖管理**问题。Java有牛逼轰轰的Maven和Gradle。 Golang亦有godep、govendor、glide、gvt、gopack等等,本文主要给大家介绍[gilde](https://github.com/Masterminds/glide)。 glide是Golang的包管理工具,是为了解决Golang依赖问题的。 为什么需要glide? 原因很简单,Go 语言原生包管理的缺陷。罗列一下golang的 get 子命令管理依赖有很多大缺陷: * 能拉取源码的平台很有限,绝大多数依赖的是 github.com * 不能区分版本,以至于令开发者以最后一项包名作为版本划分 * 依赖 列表/关系 无法持久化到本地,需要找出所有依赖包然后一个个 go get * 只能依赖本地全局仓库(GOPATH/GOROOT),无法将库放置于局部仓库($PROJECT_HOME/vendor) ## 安装 ### Golang环境设置 采用vendor目录特性,Go 1.5 做为试验特性加入(需要指定 GO15VENDOREXPERIMENT=1 环境变量),并在 Go 1.6 正式引入的一个概念。多数 go 依赖解决方案都基于它的。GO15VENDOREXPERIMENT 是 Go 1.5 版本新增的一个环境变量,如果将值改为 1 则表示启用。它可以将项目根目录名为 vendor 的目录添加到 Go 的库搜寻路径中,实现一个局部依赖的效果...
梦朝思夕 发布于 3天前 阅读 1448 评论 11 点赞 4

捋一捋JavaScript对象的继承

文章针对不理解继承的程序员朋友去剖析和理解继承.
Jill1231 发布于 3天前 阅读 1676 评论 5 点赞 6

在angularJS中使用three.js的一些注意事项

因为考虑到项目需要我将之前自己做的demo放到了angularJS的一个component中,其实一开始是没有准备用框架的但是后面发现需要进行的双向绑定越来越多,后期表单数据的变化量也很大,最后还是选择用NG来做这些事情。过程不怎么顺利,在中间被几个坑卡了比较久,这里我记录一下这些问题,希望对大家有帮助,毕竟现在看来NG的资料不多,NG上用three.js的更少。
SwatNo27 发布于 3天前 阅读 112 评论 1

Flume + Solr + log4j搭建web日志采集系统

这篇博客是学习Hadoop生态系统的第一篇博客,上一篇,搭建好了集群,这篇会做一个 start up,日志采集与搜索。
OrangeJoke 发布于 3天前 阅读 1055

spring+activemq实战之配置监听多队列实现不同队列消息消费

最近在项目开发中,需要用到activemq,用的时候,发现在同一个项目中point-to-point模式中,配置多个队列,消息生成者只能往一个队列中发消息或者往多个队列发送相同消息,并且监听器只能监听一个队列,这样配置多个队列也没有意义,作者想要实现的是:配置多个队列,并且生产者可以往多个队列中发送不同的消息,监听器消费时,可以判断根据不同的队列进行相应的业务处理,网上搜了一个,发现都是单个队列和监听,研究了一下,发现是可以实现的,废话不多说,直接上代码:
starkhoward 发布于 4天前 阅读 1128 评论 11 点赞 2

spring-boot & zxing 搭建二维码服务

搭建一个二维码的生成 & 解析服务, 使用java web对外提供http调用,返回base64格式的二维码图片
六月依 发布于 4天前 阅读 1006 评论 6 点赞 2

Vim 爱好者看过来,12 个实用的 Vim 使用技巧

这篇 Vim 使用技巧的合集汇总了一些有趣的,由中级到高级的使用技巧。来回顾一下吧。 1. 重复上一条 Ex 命令 在 Vim 中有 3 种命令行模式提示: Ex 命令提示符::something 查找提示符 Search prompt:/something 表达式提示符 Expression prompt:(在插入模式下输入 <C-r>= ): =1+1<cr> 假如我们从 Ex 命令提示符中运行一个 spec: :!rspec spec/models/code_spec.rb 我们可以通过在普通模式下输入 @: 来重复上一条 Ex 命令。 2. 在 CSS 中对属性进行排序 如果我们需要按照字母表顺序对 CSS 选择器中的行进行排序,只需在可视模式下选择选中的行并输入 :sort,然后就可以对它们进行排序。 h4 { font-size: 11px; margin: 15px; background: red; } 3. 选择复制和粘贴的文本 我们可以使用 gv 来选择原始的需要复制的文本,使用 gb 选择上一次粘贴的文本。gb 是一个自定义的映射,可将其添加到 vimrc 文件,而且该命令在进行提取方法重构、剪切时十分有用。我们还需要修复缩进,使用 gb 可以轻易选择粘贴的文本,然后使用 < 或 > 来进行修复。 " select last paste in visual mode nnoremap <expr> gb '`[' . strpart(getregtype(), 0, 1) . '`]' 4....
编辑部的故事 发布于 4天前 阅读 4025 评论 24 点赞 4

深入了解 gRPC:协议

RC3 版本对于 TiKV 来说最重要的功能就是支持了 gRPC,也就意味着后面大家可以非常方便的使用自己喜欢的语音对接 TiKV 了。 gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,理解下 HTTP/2 是必要的,这里先简单介绍一下 HTTP/2 相关的知识,然后在介绍下 gRPC 是如何基于 HTTP/2 构建的。 ## HTTP/1.x HTTP 协议可以算是现阶段 Web 上面最通用的协议了,在之前很长一段时间,很多应用都是基于 HTTP/1.x 协议,HTTP/1.x 协议是一个文本协议,可读性非常好,但其实并不高效,笔者主要碰到过几个问题: ### Parser 如果要解析一个完整的 HTTP 请求,首先我们需要能正确的读出 HTTP header。HTTP header 各个 fields 使用 `\r\n` 分隔,然后跟 body 之间使用 `\r\n\r\n` 分隔。解析完 header 之后,我们才能从 header 里面的 `content-length` 拿到 body 的 size,从而读取 body。 这套流程其实并不高效,因为我们需要读取多次,才能将一个完整的 HTTP 请求给解析出来,虽然在代码实现上面,有很多优化方式,譬如: + 一次将一大块数据读取到 buffer 里面避免多次 IO read + 读取的时候直接匹配 `\r\n` 的方式流式解析 但上面的方式对于高性能服务来说,终归还是会有开销。其实最...
TiDB 发布于 4天前 阅读 723 评论 4

spring AOP是什么?你都拿它做什么?

由浅入深手把手带你搞定spring Aop。
liugh_develop 发布于 4天前 阅读 1672 评论 16 点赞 11 打赏 5

张志华:关于机器学习的领悟与反思

      近年来,人工智能的强势崛起,特别是去年AlphaGo和韩国九段棋手李世石的人机大战,让我们深刻地领略到了人工智能技术的巨大潜力。数据是载体,智能是目标,而机器学习是从数据通往智能的技术、方法途径。因此,机器学习是数据科学的核心,是现代人工智能的本质。       通俗地说,机器学习就是从数据中挖掘出有价值的信息。数据本身是无意识的,它不能自动呈现出有用的信息。怎样才能找出有价值的东西呢?第一步要给数据一个抽象的表示;接着基于表示进行建模;然后估计模型的参数,也就是计算;为了应对大规模的数据所带来的问题,我们还需要设计一些高效的实现手段,包括硬件层面和算法层面。统计是建模的主要工具和途径,而模型求解大多被定义为一个优化问题或后验抽样问题,具体地,频率派方法其实就是一个优化问题。而贝叶斯模型的计算则往往牵涉蒙特卡罗(Monte Carlo) 随机抽样方法。因此,机器学习是计算机科学和统计学的交叉学科。       借鉴计算机视觉理论创始人马尔 (Marr) 的关于计算机视觉的三级论定义,我把机器学习也分为三个层次:初级、中级和高级。初级阶段是数据获取以及特征的提取。中级阶段是数据处理与分析,它又包含三个方面:首先是...
louise 发布于 4天前 阅读 670

Kubernetes Node Controller源码分析之初识篇

我认为,Node Controller是Kubernetes几十个Controller中最为重要的Controller之一,其重要程度在Top3,然而这可能也是最为复杂的一个Controller,网上还没有Node Controller的源码分析的文章,因此我觉得有必要对此做一个系列文章,希望能帮助自己有一个深入浅出的理解。本博文主要对NodeController的启动、定义及其行为配置做出一些分析,要求读者对Kubernetes的相关特性有较深的理解。
WaltonWang 发布于 5天前 阅读 121

数据库中间件 MyCAT源码分析 —— PreparedStatement 重新入门

相信很多同学在学习 JDBC 时,都碰到 PreparedStatement 和 Statement。究竟该使用哪个呢?最终很可能是【懵里懵懂】的看了各种总结,使用 PreparedStatement。那么本文,通过 MyCAT 对 PreparedStatement 的实现对大家能够重新理解下。 本文主要分成两部分: 1. JDBC Client 如何实现 PreparedStatement。 2. MyCAT Server 如何处理 PreparedStatement。
芋艿V 发布于 5天前 阅读 693

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容。 #1 说得太少 尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”。面试官会通过你对这些技术和非技术问题的回答来评估你的激情。他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力。 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊。如果你不能很好地说明你的经验、成就和技能可以给企业带来的价值,那么你的竞争力毫无疑问就高不起来。所以,你需要对一些最常见的开放式问答作充分的准备,学会推销自己。 #2 说得太多 不断地说,不断地说,却并没有什么实质性的内容。换句话说,就是废话连篇,言之无物。如果你不能简洁的解释问题,那么面试官就会怀疑你在工作时的表现是不是也会像你的谈话一样拖泥带水?可以先问问面试官,确定是否真的需要详细解释。 解释也是一门艺术,关键是确定重点,如果需要的话再深入到细节。当聊到业务的时候,就应该从业务的角度看问题,不要涉及任何技术术语。学会用简洁明了的方式解释问题。如果你能时刻把握...
Java程序员-10 发布于 9小时前 阅读 244 点赞 1

成为一名Java高级工程师你需要学什么

宏观上: 1.技术广度方面 至少要精通多门开源技术吧,研究过struts\spring等的源码。 2.项目经验方面 从头到尾跟过几个大项目,头是指需求阶段,包括需求调研。 尾是指上线交付之后,包括维护阶段。 3.架构经验方面 有过分布式系统的架构和开发经验。对于跨系统的结构优化,数据存储的性能指标等有丰富经验。什么缓存啊、数据库的垂直切分什么的,业务的抽象和水平拆分啊,这些应该都轻车熟路吧。 4.行业领域方面 最起码得精通一到两门业务吧,所谓精通,就是比如做金融证券业务的,至少等当半个经融分析师。做电力业务的,至少等当半个电力工程师。 5.个人修为 有自己一些独到的见解,不会人云亦云啦。 微观上: 1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。 2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。 3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且...
Java程序员-10 发布于 9小时前 阅读 204

40个Java集合面试问题和答案

Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而非实现我们自己的集合类。 (2)随着使用经过严格测试的集合框架类,代码质量会得到提高。 (3)通过使用JDK附带的集合类,可以降低代码维护成本。 (4)复用性和可操作性。 2.集合框架中的泛型有什么优点? Java1.5引入了泛型,所有的集合接口和实现都大量地使用它。泛型允许我们为集合提供一个可以容纳的对象类型,因此,如果你添加其它类型的任何元素,它会在编译时报错。这避免了在运行时出现ClassCastException,因为你将会在编译时得到报错信息。泛型也使得代码整洁,我们不需要使用显式转换和instanceOf操作符。它也给运行时带来好处...
Java程序员-10 发布于 9小时前 阅读 151

分布式系统架构实战demo:ssm+dubbo

        对于传统的单一构架,也就是打成的war或者ear包部署在同一个web容器里的构架,它虽然开发、测试、部署简单,但随着业务的不断发展,维护成本增加,可扩展性差,而且一台Tomcat的并发数在500左右,系统性能存在瓶颈。本篇文章将带你练习service和conctroller成两个Tomcat的实践(可能随业务拆分的很细),那么tomcat之间是如何调用方法的呢(有可能两个tomcat不在一台电脑上)?答案是dubbo。         互联网应用的系统性能瓶颈存在于每一个地方(数据库,网络,文件存储等),本文所用2台tomcat,自己也可以拆分,比如登录、后台、首页查询等每个专门一个Tomcat,旨带你手把手搭建简单的基于dubbo的分布式项目,解决单个tomcat性能瓶颈问题,高手请绕道。        开发环境: Window 7 64;eclipse-jee-mars-2-win32-x86_64 ;apache-maven-3.3.9;Spring 4.1.3;Mybatis 3.2.7;Springmvc 4.1.3;dubbo 2.5.3,开发工具和源码:http://pan.baidu.com/s/1pLdoe0r 系统构架如下:                        1.配置环境,创建项目工程         配置开发环境不再这里做赘述,可以参考:Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建 需要注意的是本文所...
liugh_develop 发布于 7小时前 阅读 62

为何要上ERP?

新疆老农民 发布于 6小时前 阅读 48

网易考拉海购Dubbok框架优化详解(学习笔记)

微服务化是当前电商产品演化的必然趋势,网易考拉海购通过微服务化打破了业务爆发增长的架构瓶颈。 微服务选型要评估以下几点: 内部是否存在异构系统集成的问题; 备选框架功能特性是否满足需求; http协议的通信对于应用的负载量会否真正成为瓶颈;   跨进程的远程调用(RPC) 考拉当前使用的Dubbok框架,Dubbok由阿里开源Dubbo框架的优化和功能改进而来。Spring Cloud的一些优秀特性也是Dubbok改进的参考点。 Dubbo作为一个分布式通信框架,最基本的职责就是完成跨进程的远程调用(RPC)。     1.协议栈: Dubbo支持自定义RPC协议,冗余字段少、通信性能高; 序列化协议支持hessian2、Dubbo自定义序列化等高性能协议; Dubbo支持序列化协议解码在业务线程(Netty3编码自动在业务线程执行); 2.线程模型: 依赖Netty3的非阻塞线程模型,支持I/O、业务逻辑线程分离,通过Handler链处理请求。 Dubbo默认是所有服务共享单一的TCP长连接的(这也是为什么服务接口不适合传输大负载值,即容易阻塞其他服务的调用)。为响应慢或重要的服务接口考虑,Dubbo支持设置多TCP连接,此时连接数和线程池数默认是绑定的,即每连接对应一个线池,consumer、provider都执行这个策略,从...
ND小龙 发布于 17小时前 阅读 29

bboss kafka组件使用介绍

bboss kafka组件使用介绍 本文使用的实例对应的gradle源码工程git访问地址: http://git.oschina.net/bboss/bestpractice testkafka子工程地址 http://git.oschina.net/bboss/bestpractice/tree/master/testkafka 1.导入bboss kafka组件 maven坐标 <dependency> <groupId>com.bbossgroups.plugins</groupId> <artifactId>bboss-plugin-kafka</artifactId> <version>5.0.3.1</version> </dependency> gradle坐标 compile 'com.bbossgroups.plugins:bboss-plugin-kafka:5.0.3.1' 2.使用kafka producer,发送消息 2.1 kafka producer配置 编写kafka.xml配置文件,放到classpath跟路径下面 <properties> <property name="productorPropes"> <propes> <property name="value.serializer" value="org.apache.kafka.common.serialization.StringSerializer"> <description> <![CDATA[ 指定序列化处理类,默认为kafka.serializer.DefaultEncoder,即byte[] ]]></description> </property> <property name="key.serializer" value="org.apache.kafka.common.serialization.LongSerializer"> <description> <![CDATA[ 指定序列化处理类,默认为k...
bboss 发布于 3小时前 阅读 11

【软件周刊第 38 期】IntelliJ IDEA 2017.2 正式发布;Angular 5 发布首个 Beta 版

软件周刊(07.16 — 07.22):本周热门软件更新 — Wine 2.0.2 发布,Windows 应用兼容层;ArangoDB 3.2 正式版:提升性能,减少内存占用;JDK 8u141 发布,Java 开发工具包;MySQL 8.0.2 DMR 发布,添加窗口函数功能;Kubernetes 1.7.1 版本发布,容器集群管理系统
编辑部的故事 发布于 2小时前 阅读 13

以正确的姿势在Jquery中正确的使用setTimeout()

jquery setTimeout() 小格式
远方眺望 发布于 19小时前 阅读 8

Ubuntu:高效工作环境搭建

    根据Unix哲学,我们应该想进一切办法,榨干程序的价值;所以高效的开发环境对程序员来说就显得非常重要了(主要是.....这几天被老大看到用这么低级的开发工具,突然有种被鄙视的感觉..)     1.终端安装:     这方面当然首推的是terminator,功能非常强大而且灵活: # sudo apt-get install terminator  如果过程中遇到: /var/lib/dpkg/lock - open (11: 资源暂时不可用) 试试将其对应的进程杀掉: ps aux kill -9 pid 或者 sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock 设置颜色,字体等等 # cd ~/.config/terminator/ && sudo gedit config 参考配置手册 man terminator_config 常用快捷键 Ctrl+Shift+E 垂直分割窗口 Ctrl+Shift+O 水平分割窗口 F11 全屏 Ctrl+Shift+C 复制 Ctrl+Shift+V 粘贴 Ctrl+Shift+N 或者 Ctrl+Tab 在分割的各窗口之间切换 Ctrl+Shift+X 将分割的某一个窗口放大至全屏使用 Ctrl+Shift+Z 从放大至全屏的某一窗口回到多窗格界面       还有一些其他的终端工具如Tmux,guake等等     1) 命令提示 sudo pip install percol 参考工具 2.快捷键设置:         熟悉快...
wii95 发布于 7小时前 阅读 8

第16章 C预处理器和C库 16.5 文件包含: #include

预处理器发现#includ指令后,就会寻找后跟的文件名并把这个文件的内容包含到当前文件中。 被包含文件中的文本将替换源代码文件中的#include指令,就像您把被包含文件中的全部内容键入到源文件中的这个特定位置一样。 #include 指令的两种使用形式 #include <stdio.h> 文件名放在尖括号中 #include "mystuff.H" 文件名放在双引号中 在UNIX系统中,尖括号告诉预处理器在一个或多个标准系统目录中寻找文件。双引号告诉预处理器先在当前目录(或文件名指定的其他目录)中寻找文件,然后在标准位置寻找文件。 使用#include指令的一些例子 #include <stdio.h> 搜索系统目录 #include  "hot.h" 搜索当前目录 #include  "/usr/biff/p.h" 搜索/usr/biff目录 对于系统头文件,集成开发环境(IDE)具有标准搜索路径。许多集成开发环境提供菜单选项用于指定使用尖括号时搜索的其他路径。对于UNIX,使用双引号意味着首先搜索本地目录,但是具体搜索哪个目录依赖于编译器。有些编译器搜索源代码所在目录,有些搜索当前工作目录,还有些搜索工程文件所在目录 一般而言,命名文件的方法依赖于系统,但是尖括号与双引号的使用则与系统无关。 习惯上使用后缀.h表示头文件(header file),这...
idreamo 发布于 11小时前 阅读 8

提高 ASP.NET Web 应用性能的 24 种方法和技巧

在这篇文章中,将介绍一些提高 ASP.NET Web 应用性能的方法和技巧。众所周知,解决性能问题是一项繁琐的工作,当出现性能问题,每个人都会归咎于编写代码的开发人员。 以下为译文 那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点。 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」。开发过程中,设置为「true」是非常有用多,但在应用程序发布部署时,需将其设置为「false」。 <compilation defaultLanguage="C#" debug="false" targetFramework="4.0" /> 2.关闭 tracing(追踪) tracing 是非常可怕的,你有没有忘记关闭它。假如没用,请确定编辑 web.config 并且关闭它。它将占用大量您的程序资源。 <trace enabled="false" requestLimit=”10” pageoutput=”false” traceMode=”SortByTime” localOnly=”true”> 3.禁用 session 假如您用不到 session 会话跟踪请务必禁用它。您可以在每个 asp.net 页面中设置如下: <%@ page language="c#" codebehind="webform1.aspx.cs" autoeventwireup="false" inherits="webapplication1.webform1" enablesessionstate="false" %> 4.使用发布版本部署应用 部署应用程序到生产...
心梦无双 发布于 10小时前 阅读 7

textbox

1.绑定键盘事件 $("#id").textbox('textbox').bind('keydown', function(e){//绑定keypress也可以 if (e.keyCode == 13){//回车 $("#anotherId").textbox('textbox').focus(); } });         不过有时会出现事件绑定不上的情况,此时可以使用以下方式(推荐) ,其中formId只要是textbox的父元素即可. $('#formId').keydown(function(e){ if(e.which == 13){ switch(e.target){ case $('#textboxId').textbox('textbox')[0]: $("#anotherTextboxId").textbox('textbox').focus(); break; case $('#anotherTextboxId').textbox('textbox')[0]: $("#linkbutton").click(); //e.preventDefault(); break; } } }); 在textbox的multiline属性设置为true时回车事件有很严重的bug,可以尝试将上面注释掉的代码放开....
Romanceling 发布于 3周前 阅读 9

SpringMVC总结篇

SpringMVC的很多特性使用略少,些许内容有些遗忘,开篇对SpringMVC进行系统总结。 IDEA创建项目 一般我会使用IntelliJ IDEA来创建Maven的web项目(File -> New -> Project -> Maven -> Create from archetype -> maven-archetype-webapp), 用该模版创建出来的是一个空的maven web项目。有两个操作需要注意:     1. src/main下创建java文件夹,并在Project Structure下标注为Sources。     2. Add framework support, 增加web.xml, applicationContext.xml, dispatcher-servlet.xml文件。 操作完上述两部,才是一个完整的Web项目,可以创建Package以及Java Class等,同时需要简单修改web.xml以及dispatcher-servlet.xml文件内容。   SpringMVC基础     1. SpringMVC中的@RequestMapping可以修饰类和方法,支持的属性有value(缺省), method, params, header,并且支持value路径使用ant-stype通配符(?/*/**)      2. @PathVariable注解:映射URL中绑定占位符到目标方法的参数中。 @Controller public class TestHelloWorld { private final static String SUCCESS = "success"; @RequestMapping("/hello") public String sayHello() { ...
码农严选 发布于 7小时前 阅读 6

MySQL笔记01

启动MySQL服务 方式1:     以管理员身份打开cmd,输入:         net  start  mysql 启动         net  stop  mysql 关闭 方式2:     控制面板 ---> 系统和安全  --->  管理工具  ---> 服务 ---> mysql 重新启动 连接MySQL: 方式1:     直接使用MySQL提供的命令行窗口 方式2:     在命令行(win + R)中输入     >mysql -uroot -p密码 -h数据库安装的主机 -P数据库端口     >mysql -uroot -pmima -h197.0.0.0 -P3306     如果连接的数据库是在本机上,并且端口号是3306     >mysql -uroot -p密码 navicat新建表table后,插入数据报错     1366 - Incorrect string value: '\xE9\x97\xAB' for column 'name' at row 1 MySQL1366解决方法:  修改MySQL该字段的字符集与整理规则 1.检查数据表所有字段的状态 >show full columns from table_name;    2.修改表中字段address的collation为utf8 >alter table table_name change address address varchar(100) character set utf8 collate utf8_unicode_ci not null default '';    3.再次检查数据表所有字段的状态 4.插入数据 5.往name中...
YK_IT 发布于 10小时前 阅读 7

31.TCP设置ip 文件秒传

明天你好 文件传输: 服务器传给客户端叫下载 客户端上传服务器拿就叫上传 ! 如果你服务器端写上固定ip地址的话 那么客户端只能通过你固定的ip地址才能访问你的服务器 不写的话就没有限定 客户端可以同 127.0.0.1 或者 192.168.... 等等ip地址访问你的服务器 中级的参数是限制访问人数 0 代表可以书五个人来访问 ServerSocker ser=new ServerSocket(7410 ,0 ,Inet4Address.getByname(“127.0.0.1”)); 上面代码 我设置端口号为 7410 连接人数不限制 只能通过 12.0.0.1 这个ip访问 文件秒传: 就是上传文件到服务器 瞬间就完成了! 秒传是判断你这个文件的MD5内容在服务器上是否相同! 如果有相同的 那就表示服务器上有这个文件了 那你上传到服务器上面 他会直接引用服务器里面有的那个文件 这样就能做到秒传了! 很多用户用的就是服务器上面的那唯独一份的文件! 用MD5 判断内容! 我E盘所有文件的MD5 全部读取到一个文本里面 好方便比较MD5是否相同! 如下图 服务器代码: 一个MD5 32字节 所以我的byte数组长度设置了32 位 先让服务器读取你要上传文件的MD5把他转换成String类型 交个panduan 方法 让他判断E 盘有没有这个文件 如果有返回1 终止传输 秒传! 如果没有 那就把这个文件的...
凯哥学堂 发布于 6小时前 阅读 7

antd-admin 调试记录

antd-admin 调试记录
quanpower 发布于 19小时前 阅读 5

intellij idea 注册码

1. 到网站 http://idea.lanyus.com/ 获取注册码。 2.填入下面的license server:   http://intellij.mandroid.cn/   http://idea.imsxm.com/   http://idea.iteblog.com/key.php 以上方法验证均可以
Vincent-Duan 发布于 7小时前 阅读 6

消息中间件

概念 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。 特性 1.Message Priority Producer把消息发送给Broker来存储,那么我们就可以再消息队列中对我们的消息来进行排序,实现不同的优先级。从而满足我们复杂的业务需求。 2.Message Order 消息排序,有的消息的处理是需要按照一定的顺序进行处理的,比如用户的创建订单、订单付款、订单完成。那么对于消费者也需要按照这个流程来消费,否则就没有意义了。 3.Message Filter 在消息对...
张欢19933 发布于 4周前 阅读 30

目前可用谷歌上网方法,解决Google、Facebook、Youtube等被墙问题

我的方法即使用优秀的加速器软件     一款好的VPN软件必须具备两个方面,一个是速度要够快,就是打开网站的速度一定要快,还有一个就是稳定性,如果经常掉线,出现连接不上的情况,这样的软件就算速度可以但也称不上是优秀的加速器,目前好的加速器软件主要有一枝红杏加速器,loco加速器,安云加速器等。 下面是博主整理收集的几个靠谱的谷歌翻墙加速器效果及价格等方面的详细介绍,主要特点有: 1、商家历史较老,不存在跑路风险。 2、提供的VPN代理类型多,有多种选择。 3、速度相对较快、线路稳定、安全。 本次为大家推荐的产品可能在市场上大家都已经听说过,但不一定真正使用过,这些产品都有免费与付费线路,可体验后,如果适合自己的再进行购买,从LZ多年的使用经验来看,付费线路相对免费线路好用得多,免费VPN线路,因为使用的人多,所以线路拥挤网速慢、不稳定、经常掉线等,有流量限制等,而付费的比较少有这种情况。下面为大家推荐三款目前国内比较热门的网络加速器,这个对翻墙浏览器谷歌google游刃有余。 一枝红杏加速器:企业首选 一枝红杏 VPN 提供企业级美国 VPN ,日本 VPN ,香港 VPN ,一枝红杏 VPN 官网支持手机,电脑,平台等设备VPN,同时最多支持5个客...
yizhihx 发布于 2个月前 阅读 26

Spring思维导图,让Spring不再难懂(mvc篇)

>写在前面 生活就像海洋,只有意志坚强的人才能到达彼岸。已经很久没有发文章了呀,想必大家都挂念我了,哈哈。 温故而知新,今天一起来复习一下spring mvc的内容吧。 >spring mvc简介与运行原理 Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。 ![原理.png](http://upload-images.jianshu.io/upload_images/4120002-9409cf62de5e6d39.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * (1) Http请求:客户端请求提交到DispatcherServlet。 * (2) 寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。 * (3) 调用处理器:DispatcherServlet将请求提交到Controller。 * (4)(5)调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。 * (6)(7)处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。 * (8) Http响应:视图负责将结果显示到客户端。 >主要注解 ![spring mvc注解....
java思维导图 发布于 5天前 阅读 8144 评论 25 点赞 31

游戏服务器架构演进(完整版)

王者荣耀技术分析第三篇,服务器架构模型分析...
wier 发布于 5天前 阅读 5365 评论 36 点赞 18

Vim 爱好者看过来,12 个实用的 Vim 使用技巧

这篇 Vim 使用技巧的合集汇总了一些有趣的,由中级到高级的使用技巧。来回顾一下吧。 1. 重复上一条 Ex 命令 在 Vim 中有 3 种命令行模式提示: Ex 命令提示符::something 查找提示符 Search prompt:/something 表达式提示符 Expression prompt:(在插入模式下输入 <C-r>= ): =1+1<cr> 假如我们从 Ex 命令提示符中运行一个 spec: :!rspec spec/models/code_spec.rb 我们可以通过在普通模式下输入 @: 来重复上一条 Ex 命令。 2. 在 CSS 中对属性进行排序 如果我们需要按照字母表顺序对 CSS 选择器中的行进行排序,只需在可视模式下选择选中的行并输入 :sort,然后就可以对它们进行排序。 h4 { font-size: 11px; margin: 15px; background: red; } 3. 选择复制和粘贴的文本 我们可以使用 gv 来选择原始的需要复制的文本,使用 gb 选择上一次粘贴的文本。gb 是一个自定义的映射,可将其添加到 vimrc 文件,而且该命令在进行提取方法重构、剪切时十分有用。我们还需要修复缩进,使用 gb 可以轻易选择粘贴的文本,然后使用 < 或 > 来进行修复。 " select last paste in visual mode nnoremap <expr> gb '`[' . strpart(getregtype(), 0, 1) . '`]' 4....
编辑部的故事 发布于 4天前 阅读 4025 评论 24 点赞 4

【福利】蓝色巨人的云计算PaaS平台IBM Bluemix免费试用!

IBM Bluemix,包含认知、物联网、大数据分析、安全、DevOps、应用、应用整合、移动、计算、网络、存储等 11 大类共 140 多个服务的云计算平台。
IBM Bluemix

穷人也能拥抱‘持续集成’与‘持续交付’

首先说一说为什么说穷人,笔者自己买了一台阿里云的ECS服务器,最开始是一台便宜的单核1G的服务器(其实前面还有更苦的,一把辛酸泪就不说了),苦了它了,里面跑了一堆服务,诸如Tomcat、Nginx、MySQL、Redis、RabbitMQ、JVM等等,发现本来就很吃力,后来又想搞个持续集成部署个Jenkins,结果搞挂了几次服务器,每次内存飙到95%(要知道Gitlab要求机器最好为4G),只能重启服务器了。又没钱升级配置,只能看看有什么服务比较好。
橙子先生 发布于 6天前 阅读 2925 评论 19 点赞 1 打赏 1

【码云周刊第 29 期】构建高性能微服务架构

每周为您推送最有价值的开源技术内参!
开源中国码云 发布于 1周前 阅读 2902 评论 3 点赞 4

给 Web 开发人员推荐的开源图形库 —— 动画

现代 Web 开发在将体验和功能做到极致的同时,对于美观的追求也越来越高,数据可视化、动画交互、2D/3D 等元素已然成为标配。 以下是为 Web 开发者推荐的一些精品开源图形库,旨在专注于最常见的问题和最常用的东西。将针对动画(Animation)、数据可视化(Data Visualization)、2D/3D 分别整理,欢迎保持关注。 动画 一、效果(Effects) 1、切换和过渡 Animate.css 一个跨浏览器的 css3 动画库,内置了抖动(shake)、闪烁(flash)、弹跳(bounce)、翻转(flip)、旋转(rotateIn/rotateOut)、淡入淡出(fadeIn/fadeOut)、放大缩小(等多达 60 多种动画效果,几乎包含了所有常见的动画效果。在炫酷的同时,还一直保持着易于使用的特点。 效果预览:点此查看 Magic Animations 一个独特的 CSS3 动画特效包,可以自由地使用在 Web 项目中。包括:Magic Effects、Bling、Static Effects、Static Effects Out、Perspective、Rotate、Slide、Math、Tin、Bomb 等各类效果。 效果预览:点此查看 Effeckt.css 同样是一个包含众多精妙的 CSS3 切换和动画效果库,例如:弹窗、按钮、导航、列表、页面切换等,适用于网站和移动 Web 开发。 效果预览:点此查看 还有: Velocity...
编辑部的故事 发布于 1周前 阅读 5768 评论 8 点赞 31

spring AOP是什么?你都拿它做什么?

由浅入深手把手带你搞定spring Aop。
liugh_develop 发布于 4天前 阅读 1672 评论 16 点赞 11 打赏 5

Java学习路线图

JAVA学习路线图,特此声明; 仅希望对热爱JAVA学习有所帮助 如若转载或者使用本图,请注明出处,避免后期出现版权问题,谢谢!!!   JAVA学习路线图 此乃是java攻城狮的学习路线图,由简到繁,由易到难,一步步的学习,最后成为 JAVA攻城狮。希望对大家的学习有所帮助 阶段1   1:学习HTML     2:学习CSS    3:Javascript    4:jquery    5:xml解析   6:Bootstrap      阶段2   7:JAVAse基础      8:mysql数据库     9:Powerdesigner   10:JDBC    11:JAVAWEB        阶段三 12:oracle         13:struts2         14:Hibernate       15:Spring 阶段四 16:Maven         17:SpringMVC      18:MyBatis Java学习交流QQ群:523047986  禁止闲聊,非喜勿进!
Java程序员-10 发布于 4天前 阅读 981 点赞 1

10个JavaScript难点

**译者按:**能够读懂这篇博客的JavaScript开发者,运气不会太差... 原文: [10 JavaScript concepts every Node.js programmer must master](http://www.infoworld.com/article/3196070/node-js/10-javascript-concepts-nodejs-programmers-must-master.html) 译者: [Fundebug](https://fundebug.com/) **为了保证可读性,本文采用意译而非直译,并且对示例代码进行了大量修改。另外,本文版权归原作者所有,翻译仅用于学习。** ### 1. 立即执行函数 **立即执行函数**,即Immediately Invoked Function Expression (IIFE),正如它的名字,就是创建函数的同时立即执行。它没有绑定任何事件,也无需等待任何异步操作: ```javascript (function() { // 代码 // ... })(); ``` **function(){…}**是一个匿名函数,包围它的一对括号将其转换为一个表达式,紧跟其后的一对括号调用了这个函数。**立即执行函数**也可以理解为立即调用一个匿名函数。**立即执行函数**最常见的应用场景就是:将var变量的作用域限制于你们函数内,这样可以避免命名冲突。 ### 2. 闭包 对于闭包(closure),当外部函数返回之后,内部函数依然可以访问外部函数的变量。 ```javascript function f1() { ...
Fundebug 发布于 5天前 阅读 999

如何理解并正确使用MySql索引

1、概述 索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。 注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构 2、索引的优点 1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度 2、帮助服务器避免排序和临时表 3、可以将随机I/O变为顺序I/O 3、索引的创建 3.1、主键索引 ALTER TABLE 'table_name' ADD PRIMARY KEY 'index_name' ('column'); 3.2、唯一索引 ALTER TABLE 'table_name' ADD UNIQUE 'index_name' ('column'); 3.3、普通索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column'); 3.4、全文索引 ALTER TABLE 'table_name' ADD FULLTEXT 'index_name' ('column'); 3.5、组合索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column1', 'column2', ...); 4、B+Tree的索引规则 创建一个测试的用户表 DROP TABLE IF EXISTS user_test; CREATE TABLE user_test( id int AUTO_INCREMENT PRIMARY KEY, user_name varchar(30) NOT NULL, sex bit(1) NOT NULL DEFAULT b'1', city varc...
FEINIK 发布于 2周前 阅读 4958 评论 22 点赞 26 打赏 2

spring+activemq实战之配置监听多队列实现不同队列消息消费

最近在项目开发中,需要用到activemq,用的时候,发现在同一个项目中point-to-point模式中,配置多个队列,消息生成者只能往一个队列中发消息或者往多个队列发送相同消息,并且监听器只能监听一个队列,这样配置多个队列也没有意义,作者想要实现的是:配置多个队列,并且生产者可以往多个队列中发送不同的消息,监听器消费时,可以判断根据不同的队列进行相应的业务处理,网上搜了一个,发现都是单个队列和监听,研究了一下,发现是可以实现的,废话不多说,直接上代码:
starkhoward 发布于 4天前 阅读 1128 评论 11 点赞 2

Spring Boot 系列(一)快速入门

### 简介 - Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者的。 - 在以前的spring项目中,都会面对大量繁琐的配置,使用的时候基本上都是大量的复制黏贴。而Spring Boot 则能让我们在不需要过多的配置下,轻松快速地搭建Spring Web应用,开箱即用,没有代码生成,也无需XML配置,从而快速使用spring框架。 ### 开始 > 版本:java 1.8.0_51 & spring boot 1.5.4 #### 一、构建简单spring boot 项目 ###### 这里官网提供的生成器SPRING INITIALIZR 来创建简单的spring boot 项目。 #### 1. 访问 [http://start.spring.io](http://start.spring.io) ![Spring INITIALIZR.png](http://upload-images.jianshu.io/upload_images/6083940-e7b5d7201b94e96d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ##### 选项: 工程(maven) 语言(java) SpringBoot版本(1.5.4) ##### Group填组名,Artifact填模块名,右侧Dependenc...
神奇Sam 发布于 1周前 阅读 867

Spring思维导图,让spring不再难懂(一)

Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架
java思维导图 发布于 3个月前 阅读 6350 评论 10 点赞 19

从王者荣耀聊聊游戏的帧同步

通过王者荣耀,我们来聊一聊帧MOBA游戏的技术实现以及同步方式
wier 发布于 3周前 阅读 7150 评论 57 点赞 30

Flume + Solr + log4j搭建web日志采集系统

这篇博客是学习Hadoop生态系统的第一篇博客,上一篇,搭建好了集群,这篇会做一个 start up,日志采集与搜索。
OrangeJoke 发布于 3天前 阅读 1055

spring-boot & zxing 搭建二维码服务

搭建一个二维码的生成 & 解析服务, 使用java web对外提供http调用,返回base64格式的二维码图片
六月依 发布于 4天前 阅读 1006 评论 6 点赞 2

Spring思维导图,让Spring不再难懂(ioc篇)

>写在前面 写过java的都知道:所有的对象都必须创建;或者说:使用对象之前必须先创建。而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象。 就好像我们无需考虑对象的销毁回收一样,因为java垃圾回收机制帮助我们实现了这个过程;而ioc则是让我们无需考虑对象的创建过程,由ioc容器帮我们实现对象的创建、注入等过程。 ![Spring知识细节.png](http://upload-images.jianshu.io/upload_images/4120002-55b18f0249f25054.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >控制反转 ![Spring ioc简介.png](http://upload-images.jianshu.io/upload_images/4120002-7e89f6da34fe7bc9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >spring ioc容器 在Spring框架中的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等特性功能。 ![Spring 整体结构图.jpg](http://upload-images.jianshu.io/upload_images/4120002-1ad5bb59e5e9f209.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 如果说在三个核心中再选出一个核心,那就非Bean莫属了。可以说,Spring就是面向B...
java思维导图 发布于 2个月前 阅读 12514 评论 28 点赞 27

使用Go和Let's Encrypt证书部署HTTPS

为什么要使用HTTPS?使用HTTPS的途径有哪些?如何用Go来部署HTTPS?拿出你的小本本,你要的干货都在这儿! HTTPS的好处我们已在之前的文章中提高好多。它加密浏览器和服务器之间的流量,保障你密码传输的安全,让你的页面加载速度飞快,有助于网站的SEO优化还有对HTTP网站百般嫌弃的浏览器厂商......这些都是使用HTTPS的理由。那么问题来了,怎样可以又快又好地部署HTTPS呢? 使用第三方提供的HTTPS 比如说CloudFlare,他们的免费方案为你那仅支持HTTP的网站提供仿HTTPS代理服务。 要使用CloudFlare: 配置你的域,使用CloudFlare的DNS服务器 在CloudFlare的DNS设置中,将域指向你的服务器,并通将“状态”设为“DNS和HTTP代理服务器(CDN)” 在CloudFlare的加密设置中,将SSL设为“灵活”(该选项使浏览器通过HTTPS与CloudFlare对话,CloudFlare通过HTTP与浏览器对话) 在web管理界面配置CloudFlare的HTTPS代理,提供你的服务器的IP地址。 除此之外,还要启用“总是使用HTTPS”选项 浏览器与CloudFlare对话,CloudFlare负责提供SSL证书,并代理通向你的服务器的通信。由于额外的通信量,这可能会减慢网络速度,也可能由于CloudFlare服务器比你的服务器要快(变得更快是他...
亚洲诚信 发布于 5天前 阅读 693 评论 2

【源资讯 第35期】国产又出事?谷歌、火狐相继取消沃通的信任

【一周源资讯(2017.7.8-2017.7.14)】火狐,Google 和苹果均已经不信任沃通, Startcom 和 CNNIC 新颁发的证书,微软浏览器虽然没什么动静,但近日Ubuntu 16.04 LTS 已登录 Windows Store……
编辑部的故事 发布于 1周前 阅读 3247 评论 11 点赞 1

吃自己的狗食——eat your own dog food

为什么说“吃自己的狗食(eat your own dog food)”在开发软件产品中是一件很重要的事
国栋 发布于 6天前 阅读 682 评论 2

MFC 关于使用CDC::SelectObject遇到的问题

我们在设置字体、画刷等等时,都会在设置时保存旧字体、旧画刷的指针。在使用CDC之后,通过设置回旧字体释放GDI资源,防止资源泄漏。 但是我在Visual Studio 2015环境中,使用下面的错误写法,是不会报错的: ``` CPaintDC dc(this); CFont font; CFont* pOldFont = dc.SelectObject(font); ``` 也就是在SelectObject的参数中输入的不是指针类型。此时调用的方法是 HGDIOBJ CDC::SelectObject(HGDIOBJ); 通过这个方法返回的指针在重新设置时会出错。 ![输入图片说明](https://static.oschina.net/uploads/img/201707/22174659_LfCG.png "在这里输入图片标题") 通过调试发现,如果不使用指针类型,返回的pOldFont中一个m_pObject显示为“????”,这会导致在设置旧字体是失败。所以在使用CDC::SelectObject(),要传入指针类型。 ``` CPen* SelectObject( CPen* pPen); CBrush* SelectObject(CBrush* pBrush); virtual CFont* SelectObject(CFont* pFont); CBitmap* SelectObject(CBitmap* pBitmap); int SelectObject(CRgn* pRgn); CGdiObject* SelectObject(CGdiObject* pObject); ```...
more_or 发布于 53分钟前 阅读 1

7月22日济南源创会火热报名,解读区块链的前世今生及未来趋势!

七月流火,OSC源创会带着自由、开放、分享的开源精神,也带着满满的干货主题,邀请济南的各位来约。
源创会

巩固机器学习的一些基础东西

东西太多了,只能慢慢拱,这一片朴素贝叶斯和隐马尔科夫,重点在思路梳理
Digimon 发布于 53分钟前 阅读 1

Linux下从源码编译安装Nginx

# Linux下从源码编译安装Nginx [TOC] --- ## 系统版本 - Ubuntu Server 16.04 ## 下载Nginx - 官方下载地址:http://nginx.org/en/download.html - 后面演示使用:nginx-1.12.1 ## 下载PCRE依赖 - 官方地址:http://www.pcre.org/ - 下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ - 下载地址:https://ftp.pcre.org/pub/pcre/ - 下载如下包:pcre-8.41.tar.gz ## 下载ZLIB - 官方地址:http://www.zlib.net/ - 下载地址:http://www.zlib.net/zlib-1.2.11.tar.gz ## 安装Nginx 1. 解压nginx压缩包: ``` tar -zxvf nginx-1.12.1.tar.gz ``` 2. 解压pcre压缩包: ``` tar -zxvf pcre-8.41.tar.gz ``` 3. 解压zlib压缩包: ``` tar -zxvf zlib-1.2.11.tar.gz ``` 4. 切换到nginx源码目录: ``` cd nginx-1.12.1 ``` 5. 执行配置命令: ``` ./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11 ``` 6. 编译: ``` make ``` 7. 安装: ``` make install ``` ## 配置说明 从源码构建Nginx 构建使用`configure`命令。它定义了系统的各个方面,包括Nginx允许使用的连接处理方法。最后创建一个Makefile文件。配置命令...
牧云12 发布于 56分钟前 阅读 1

Lock接口

今日事,今日毕 http://www.cnblogs.com/microcat/p/6378754.html http://coolxing.iteye.com/blog/1236909 http://www.dewen.net.cn/q/9077 https://www.zhihu.com/question/36771163
正在长大的毛毛虫 发布于 1小时前 阅读 1

APP微信支付接口

$orderBody = "测试商品"; $tade_no = time();//订单编号 $total_fee = 1;//金额 $config = array( 'appid' => "", /*微信开放平台上的应用id*/ 'mch_id' => "", /*微信申请成功之后邮件中的商户id*/ 'api_key' => "", /*在微信商户平台上自己设定的api密钥 32位*/ 'notify_url' => '' /*自定义的回调程序地址id*/ ); $WxPayHelper = new WxPayHelper($config); $response = $WxPayHelper->getPrePayOrder($orderBody, $tade_no, $total_fee); $data = $WxPayHelper->getOrder($response['prepay_id']); \Util\Response::show(200,"success",$data); 工具类 <?php class WxPayHelper{ public $config = array(); public function __construct($config) { /*微信开放平台上的应用id*/ $this->config['appid'] = $configs['appid']; /*微信申请成功之后邮件中的商户id*/ $this->config['mch_id'] = $configs['mch_id']; // 在微信商户平台上自己设定的api密钥 32位 $this->config['api_key'] = $configs['api_key']; /*自定义的回调程序地址*/ ...
zhiqiangw 发布于 1小时前 阅读 2

[虚拟机VM][Ubuntu12.04]搭建Hadoop完全分布式环境(一)

前言 大家都知道,Hadoop的部署方式可分为 单机模式 伪分布式 完全分布式 本篇主要讲解的就是完全分布式。 搭建完全分布式的集群环境,需要多台的硬件设备,作为初学者,为了搭建集群去买多台电脑,多少有点不现实,所以这里我采用的是VM虚拟机,模拟搭建一个由三台机器组成的集群。 要想成功搭建hadoop的分布式环境,需要具备安装和操作VM虚拟机,使用Ubuntu系统的基本命令,Linux下安装Java以及Hadoop等相关技能。不过不会的话,也不用太担心,我会尽量把我的操作过程写得详细一点。 具体的搭建过程可以分为以下几个阶段: 安装虚拟机 安装和配置Ubuntu 安装和配置Java环境 安装和配置Hadoop 安装虚拟机 VMware Workstation 12 Pro  链接:http://pan.baidu.com/s/1c2swwTU 密码:w0tv  激活码百度一搜一大堆,这里就不写了,安装过程也比较简单,实在不会的,百度上也有图解的教程,请自行搜索。 安装和配置Ubuntu Ubuntu 12.04 desktop 版,有图形界面  链接:http://pan.baidu.com/s/1hs0vKwc 密码:i4mr 下面介绍如何在虚拟机中安装Ubuntu操作系统,我们需要安装三台虚拟机,分别命名为Hadoop Master(以下简称master),Hadoop Slave1(以下简称slave1)和Had...
javaer 发布于 1小时前 阅读 1

Docker命令清单

#docker rmi <镜像名称> #删除镜像 #docker images #查看所有镜像 #docker rm <容器ID> #删除容器 #docker ps -a #查看所有容器。如果不加-a的参数,则只查看在运行的容器。  
bluntFish 发布于 1小时前 阅读 1

【软件周刊第 38 期】IntelliJ IDEA 2017.2 正式发布;Angular 5 发布首个 Beta 版

软件周刊(07.16 — 07.22):本周热门软件更新 — Wine 2.0.2 发布,Windows 应用兼容层;ArangoDB 3.2 正式版:提升性能,减少内存占用;JDK 8u141 发布,Java 开发工具包;MySQL 8.0.2 DMR 发布,添加窗口函数功能;Kubernetes 1.7.1 版本发布,容器集群管理系统
编辑部的故事 发布于 2小时前 阅读 13

vue

npm install -g cnpm --registry=https://registry.npm.taobao.org  cnpm install -g vue-cli vue init webpack app cd app  npm install npm run dev
dragon_tech 发布于 2小时前 阅读 2

JS动态页面效果渲染以及绑定事件委托

// 动态页面以easyui为例 $.ajax({ url : url, data : {"data":data}, type : 'post', dataType : 'json', success : function(data){ if (data.success) { // 若是无进行页面重新渲染,则验证效果没有作用 var $demo = $('#demo'); $demo.append("<input='text' id="demoInput" class='easyui-validabox' data-options='required:true'>") // 动态页面重新渲染,当前页面渲染 $.parser.parse(); // 当前标签渲染 $.parser.parse($demo); } } }) // 假设demoInput涉及之前有bind点击事件,但在动态生成页面中不会生效,Error示例如下: $(document).ready(function(){ $('#demoInput').bind('click',function(){ alert('demo'); }) }) // 需要委托事件on进行动态监听才会生效,Success示例如下: $(document).on('click','#demoInput',function(){ alert('demo'); })  ...
HarleyZhuge 发布于 2小时前 阅读 2

[Git高级教程(二)] 远程仓库版本回退方法 

  [Git高级教程(二)] 远程仓库版本回退方法  2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支版本? 如果提交了一个错误的版本到公共远程分支,又该怎么回退版本? 3 本地分支版本回退的方法 如果你在本地做了错误提交,那么回退版本的方法很简单  先用下面命令找到要回退的版本的commit id: git reflog 1 1 接着回退版本: git reset --hard Obfafd 1 1 0bfafd就是你要回退的版本的commit id的前面几位 4 自己的远程分支版本回退的方法 如果你的错误提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。  首先要回退本地分支: git reflog git reset --hard Obfafd 1 2 1 2 紧接着强制推送到远程分支: git push -f 1 1 注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支 5 公共远程分支版本回退的问题 看到这里,相信你已经能够回滚远程分支的版本了,那么你也许会问了,回滚公共远程分支和回滚自己的远程分支有区别吗?  答案是,当然有区别啦。 一个显而易见的问题:如果你回退公共远程分支,把别人的提交给丢掉了怎么办? 下面来分析: 假如你的...
法斗斗 发布于 2小时前 阅读 5

web&&listener的理解

listener: 监听器(字面意思就好比生活中的监控一样,看到发生什么,然后告诉别人。起到监听和监视作用)            作用:监听web中的域对象(1.ServletContext  2.ServletRequest 3.HttpSession)          监听内容: 1.监听三个对象的创建和销毁; 2.监听三个对象属性的变化;3.监听session中javabean的状态;            注意:listener 全部是接口          一,监听三个对象的创建和销毁     ServletContextListener     ServletRequestListener     HttpSessionListener 二,监听三个对象属性的变化     ServletContextAttributeListener     ServletRequestAttributeListener     HttpSessionAttributeListener 三,监听session中javabean的状态        1. HttpSessionActivationListener(钝化和活化)         监听javabean是否钝化或者活化(节省我们服务器的内存,将创建的session放到磁盘上,用的时候再拿就好)            钝化:将javabean从session中写(序列化)到磁盘上;           活化:从磁盘上活(加载)到内存中(相当于相反的操作) 可以通过配置文件修改...
bamaw 发布于 2小时前 阅读 2

深入研究Netty之线程模型详解

本文主要简单介绍Reactor线程模型,从而引出Netty线程模型的设计,同时介绍了EventLoop架构设计及其各个成员。
AbeJeffrey 发布于 2小时前 阅读 3

sublime

资源引用 sublime官网下载地址:http://www.sublimetext.com/3 百度网盘:http://pan.baidu.com/s/1kUEZJ6J 一、sublime优点 功能设计合理,支持多光标操作 轻量级,运行速度快,使用流畅 界面简洁美观,有利于集中注意力 扩展性良好 二、sublime常用设置 Preferences -> Settings 三、sublime常用快捷键 快捷键 作用 Ctrl+Shift+d                                      复制行                                    Ctrl+Shift+k                                              删除行 Ctrl+Shift+/  注释 Ctrl+w 关闭当前标签 Ctrl+n 打开新标签 Ctrl+Shift+t 恢复关闭的标签 Ctrl+d 查找并选择 Ctrl+f 在当前页寻找 Ctrl+Shift+f 在文件夹中寻找                    
winston_cy 发布于 2小时前 阅读 2

常用并发集合简介

ConcurrentHashMap,CopyOnWriteArrayList,ConcurrentLinkedDeque,BlockingQueue,ConcurrentSkipListMap
刘万祥 发布于 3小时前 阅读 4

java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.engine.Configurat

Could not initialize class org.hibernate.validator.engine.ConfigurationImpl
风中帆 发布于 3小时前 阅读 2

Windows平台上实现P2P服务(四)

建立一个链式结构便于存储用户信息,以便今后处理登录和未登录的信息。首先我们建立一个用户信息的结构: /// <summary>客户端信息结构</summary> typedef struct _client *lp_client; /// <summary>客户端信息指针结构</summary> typedef struct _client { char userName[20]; //用户名称 char userPassword[20]; //用户口令 char appCode[20]; //应用编码 char machineCode[32]; //机器码 char runtimeCode[32]; //运行码 struct in_addr addr; //网址 u_short port; //通讯端口 lp_client next; //链表下一个 }; 如图所示,所谓链式结构就是左侧图示的方式,从上面的结构上看,最后那个next就是用于链接的,为了更好的操作这个链接,我们需要建立两个变量来便于操作和处理,这两个变量是根节点和末节点变量。 /// <summary>客户信息列表根节点</summary> lp_client rootItem = NULL; /// <summary>客户信息列表末节点</summary> lp_client lastItem = NULL; 下面提供一下整个代码,包含查询、增加、删除等操作。 UDPList.h #pragma once #include "targetver.h" /// <summary>信息结构的指针型</summary> typedef struct _message *lp_message; /// <su...
jamesvon 发布于 3小时前 阅读 4

bboss kafka组件使用介绍

bboss kafka组件使用介绍 本文使用的实例对应的gradle源码工程git访问地址: http://git.oschina.net/bboss/bestpractice testkafka子工程地址 http://git.oschina.net/bboss/bestpractice/tree/master/testkafka 1.导入bboss kafka组件 maven坐标 <dependency> <groupId>com.bbossgroups.plugins</groupId> <artifactId>bboss-plugin-kafka</artifactId> <version>5.0.3.1</version> </dependency> gradle坐标 compile 'com.bbossgroups.plugins:bboss-plugin-kafka:5.0.3.1' 2.使用kafka producer,发送消息 2.1 kafka producer配置 编写kafka.xml配置文件,放到classpath跟路径下面 <properties> <property name="productorPropes"> <propes> <property name="value.serializer" value="org.apache.kafka.common.serialization.StringSerializer"> <description> <![CDATA[ 指定序列化处理类,默认为kafka.serializer.DefaultEncoder,即byte[] ]]></description> </property> <property name="key.serializer" value="org.apache.kafka.common.serialization.LongSerializer"> <description> <![CDATA[ 指定序列化处理类,默认为k...
bboss 发布于 3小时前 阅读 11

mysql 只修改字段名

网上的垃圾太多了
木九天 发布于 3小时前 阅读 1

使用CSS修改HTML5 input placeholder颜色

/*改变textarea的placeholder默认颜色*/ textarea::-webkit-input-placeholder { color: @background_gray; } textarea:-moz-placeholder { color: @background_gray; } textarea::-moz-placeholder { color: @background_gray; } textarea:-ms-input-placeholder { color: @background_gray; } 参考网址:https://segmentfault.com/q/1010000000397925  
放开那个女孩 发布于 3小时前 阅读 3

数据库中间件 MyCAT 源码分析 —— SQL ON MongoDB

![wechat_mp](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. 主流程](#) - [3. 查询操作](#) - [4. 插入操作](#) - [5. 彩蛋](#) ------- # 1. 概述 可能你在看到这个标题会小小的吃惊,MyCAT 能使用 MongoDB 做数据节点。是的,没错,确实可以。 吼吼吼,让我们开启这段神奇的“旅途”。 本文主要分成四部分: 1. 总体流程,让你有个整体的认识 2. 查询操作 3. 插入操作 4. 彩蛋,😈彩蛋,🙂彩蛋 建议你看过这两篇文章(_非必须_): 1. [《MyCAT 源码分析 —— 【单库单表】插入》](http://www.yunai.me/MyCAT/single-db-single-table-insert/?self) 2. [《MyCAT 源码分析 —— 【单库单表】查询》](http://www.yunai.me/MyCAT/single-db-single-table-select/?self) # 2....
芋艿V 发布于 3天前 阅读 1191 评论 15 点赞 1

Golang依赖管理工具:glide从入门到精通使用

## 介绍 不论是开发Java还是你正在学习的Golang,都会遇到**依赖管理**问题。Java有牛逼轰轰的Maven和Gradle。 Golang亦有godep、govendor、glide、gvt、gopack等等,本文主要给大家介绍[gilde](https://github.com/Masterminds/glide)。 glide是Golang的包管理工具,是为了解决Golang依赖问题的。 为什么需要glide? 原因很简单,Go 语言原生包管理的缺陷。罗列一下golang的 get 子命令管理依赖有很多大缺陷: * 能拉取源码的平台很有限,绝大多数依赖的是 github.com * 不能区分版本,以至于令开发者以最后一项包名作为版本划分 * 依赖 列表/关系 无法持久化到本地,需要找出所有依赖包然后一个个 go get * 只能依赖本地全局仓库(GOPATH/GOROOT),无法将库放置于局部仓库($PROJECT_HOME/vendor) ## 安装 ### Golang环境设置 采用vendor目录特性,Go 1.5 做为试验特性加入(需要指定 GO15VENDOREXPERIMENT=1 环境变量),并在 Go 1.6 正式引入的一个概念。多数 go 依赖解决方案都基于它的。GO15VENDOREXPERIMENT 是 Go 1.5 版本新增的一个环境变量,如果将值改为 1 则表示启用。它可以将项目根目录名为 vendor 的目录添加到 Go 的库搜寻路径中,实现一个局部依赖的效果...
梦朝思夕 发布于 3天前 阅读 1448 评论 11 点赞 4

捋一捋JavaScript对象的继承

文章针对不理解继承的程序员朋友去剖析和理解继承.
Jill1231 发布于 3天前 阅读 1676 评论 5 点赞 6

【福利】蓝色巨人的云计算PaaS平台IBM Bluemix免费试用!

IBM Bluemix,包含认知、物联网、大数据分析、安全、DevOps、应用、应用整合、移动、计算、网络、存储等 11 大类共 140 多个服务的云计算平台。
IBM Bluemix

Spring思维导图,让Spring不再难懂(mvc篇)

>写在前面 生活就像海洋,只有意志坚强的人才能到达彼岸。已经很久没有发文章了呀,想必大家都挂念我了,哈哈。 温故而知新,今天一起来复习一下spring mvc的内容吧。 >spring mvc简介与运行原理 Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。 ![原理.png](http://upload-images.jianshu.io/upload_images/4120002-9409cf62de5e6d39.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * (1) Http请求:客户端请求提交到DispatcherServlet。 * (2) 寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。 * (3) 调用处理器:DispatcherServlet将请求提交到Controller。 * (4)(5)调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。 * (6)(7)处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。 * (8) Http响应:视图负责将结果显示到客户端。 >主要注解 ![spring mvc注解....
java思维导图 发布于 5天前 阅读 8144 评论 25 点赞 31

游戏服务器架构演进(完整版)

王者荣耀技术分析第三篇,服务器架构模型分析...
wier 发布于 5天前 阅读 5365 评论 36 点赞 18

穷人也能拥抱‘持续集成’与‘持续交付’

首先说一说为什么说穷人,笔者自己买了一台阿里云的ECS服务器,最开始是一台便宜的单核1G的服务器(其实前面还有更苦的,一把辛酸泪就不说了),苦了它了,里面跑了一堆服务,诸如Tomcat、Nginx、MySQL、Redis、RabbitMQ、JVM等等,发现本来就很吃力,后来又想搞个持续集成部署个Jenkins,结果搞挂了几次服务器,每次内存飙到95%(要知道Gitlab要求机器最好为4G),只能重启服务器了。又没钱升级配置,只能看看有什么服务比较好。
橙子先生 发布于 6天前 阅读 2925 评论 19 点赞 1 打赏 1

数据库中间件 MyCAT源码分析 —— 跨库两表Join

![wechat_mp](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. 主流程](#) - [3. ShareJoin](#) - [3.1 JoinParser](#) - [3.2 ShareJoin.processSQL(...)](#) - [3.3 BatchSQLJob](#) - [3.4 ShareDBJoinHandler](#) - [3.5 ShareRowOutPutDataHandler](#) - [4. 彩蛋](#) ------- # 1. 概述 MyCAT 支持跨库表 Join,目前版本仅支持跨库**两**表 Join。虽然如此,已经能够满足我们大部分的业务场景。况且,Join 过多的表可能带来的性能问题也是很麻烦的。 本文主要分享: 1. 整体流程、调用顺序图 2. 核心代码的分析 前置阅读:[《MyCAT 源码分析 —— 【单库单表】查询》](http://www.yunai.me/MyCAT/single-db-single-table-select/?yunai)。 OK,Let's Go。 # 2. 主流程 当执行...
芋艿V 发布于 1周前 阅读 1270 评论 1 点赞 2

你可能不知道的前端知识点之:IntersectionObserver

本文是我的 [你可能不知道的前端知识点](https://github.com/justjavac/the-front-end-knowledge-you-may-dont-know) 系列的第 5 个知识点。 ## 简介 - 你想跟踪 DOM 树里的一个元素,当它进入可视区域时得到通知。 - 你想实现延迟加载图片功能 - 你需要知道用户是否真的在看一个广告 banner。 你可以通过绑定 `scroll` 事件或者用一个周期性的定时器,然后在回调函数中调用元素的 [`getBoundingClientRect()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect) 获取元素位置实现这个功能。但是,这种实现方式性能极差,因为每次调用 `getBoundingClientRect()` 都会强制浏览器 [重新计算整个页面的布局](https://gist.github.com/paulirish/5d52fb081b3570c81e3a) ,可能给你的网站造成相当大的闪烁。 `IntersectionObserver` 就是为此而生的,它可以检测一个元素是否可见,`IntersectionObserver` 能让你知道一个被观测的元素什么时候进入或离开浏览器的视口。 ## 兼容性 - Chrome 51+(发布于 2016-05-25) - Android 5+ (Chrome 56 发布于 2017-02-06) - Edge 15 (2017-04-11) - iOS **不支持** ## Polyfill WICG 提供了一个 [p...
justjavac 发布于 1周前 阅读 953 点赞 3

opencv+python机读卡识别整合版

通过随意一张机读卡的照片,识别其中选择题题号,选项,以及相关数字识别
Digimon 发布于 1周前 阅读 2513 评论 10 点赞 16

如何理解并正确使用MySql索引

1、概述 索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。 注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构 2、索引的优点 1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度 2、帮助服务器避免排序和临时表 3、可以将随机I/O变为顺序I/O 3、索引的创建 3.1、主键索引 ALTER TABLE 'table_name' ADD PRIMARY KEY 'index_name' ('column'); 3.2、唯一索引 ALTER TABLE 'table_name' ADD UNIQUE 'index_name' ('column'); 3.3、普通索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column'); 3.4、全文索引 ALTER TABLE 'table_name' ADD FULLTEXT 'index_name' ('column'); 3.5、组合索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column1', 'column2', ...); 4、B+Tree的索引规则 创建一个测试的用户表 DROP TABLE IF EXISTS user_test; CREATE TABLE user_test( id int AUTO_INCREMENT PRIMARY KEY, user_name varchar(30) NOT NULL, sex bit(1) NOT NULL DEFAULT b'1', city varc...
FEINIK 发布于 2周前 阅读 4958 评论 22 点赞 26 打赏 2

捋一捋JavaScript创建对象

##创建对象 回顾前面我们谈到通过object构造函数创建单个对象 ``` // 创建一个object的实例,然后再为它添加属性和方法 var person = new Object(); person.name = "jill"; person.age = 18; person.job = "software Engineer"; person.sayName = function () { alert(this.name); } ``` 通过对象字面量创建单个对象 ``` var person = { name:"jill", age:18, job:"software Engineer", sayName:function () { alert(this.name); } } ``` 通过object构造函数或对象字面量创建单个对象的方式有个缺点:**使用同一个接口创建很多对象,会产生大量的重复代码** ###工厂模式 **解决了创建多个相似对象的问题** ``` function createPerson(name,age,job) { var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function () { alert(this.name); } return o; } var person1 = createPerson('jill',18,'software'); var person2 = createPerson('vane',23,'student'); ``` 工厂模式虽然解决了创建多个相似对象的问题,但却没有解决**对象识别的问题(即怎样知道一个对象的类型)** -------------------------------------------- ###构造函数模式 **解决...
Jill1231 发布于 2周前 阅读 2232 评论 19 点赞 11

MySQL基于gtid特性与xtrabackup的数据恢复

通过备份文件新建从库,将binlog跑到指定的gtid位置,可以将数据恢复到指定的时间点。
o翡翠谷o 发布于 2周前 阅读 1629 评论 2 点赞 2

深入JVM虚拟机之全书脑图

有的地方实在无法展开,文件太大了,压缩了70%才能上传
RippleChan 发布于 3周前 阅读 6324 评论 72 点赞 42

关于线程,还有这些是你需要知道的!

在日常开发中,线程常常被用作为提升程序效率的重要手段。在CoorChice的这篇文章中,CoorChice介绍了线程的基本运作。
CoorChice 发布于 3周前 阅读 3492 评论 23 点赞 17

对MySQL交换分区的实践

前言 在介绍交换分区之前,我们先了解一下 mysql 分区。 数据库的分区有两种:水平分区和垂直分区。而MySQL暂时不支持垂直分区,因此接下来说的都是水平分区。水平分区即:以行为单位对表进行分区。比如:按照时间分区,每一年一个分区等。 在MySQL中,分区是可以交换的,可以将一个分区表中的一个分区和一个普通表中的数据互换。   交换分区的实现 1、交换分区的语法 alter table pt exchange partition p with table nt; 解释: 将 分区表pt 的 分区p 和 一个普通表nt 中的数据 进行互换。 交换的前提条件: 普通表nt 不为临时表,且不是分区表。 表结构和分区表pt的结构一致。 普通表nt 没有外键引用。 普用表nt 若为非空。在MySQL5.6以及之前的版本,必须在分区的范围内;在MySQL5.7之后则可以不再其分区范围内,也依然会成功存入该分区中。 2、实验 交换分区 (1) 创建一个分区表,并插入数据 # 创建一个 分区表e CREATE TABLE e ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30) ) PARTITION BY RANGE (id) ( PARTITION p0 VALUES LESS THAN (50), PARTITION p1 VALUES LESS THAN (100), PARTITION p2 VALUES LES...
star_glm 发布于 3周前 阅读 1837 评论 4 点赞 4

从王者荣耀聊聊游戏的帧同步

通过王者荣耀,我们来聊一聊帧MOBA游戏的技术实现以及同步方式
wier 发布于 3周前 阅读 7150 评论 57 点赞 30

比特币深层技术原理浅析

这是一篇主要针对技术小白的文章。本文尽量使用通俗易懂但又不失要义的文字,带你深入剖析当前备受追捧的比特币背后的深层技术原理,最后会简要介绍一下业界市场的现状。
中成才 发布于 3周前 阅读 3622 评论 30 点赞 11 打赏 4

道哥:我人生有两大选择,为的却都是同一件事

视频在这里:https://v.qq.com/x/page/b0519geiro4.html 《初心》十集技术人物纪录片 | 第八集 由 InfoQ 二叉树 出品 吴瀚清,又称刺、aullik5、大风、道哥、小黑,现任阿里云首席安全研究员,云盾负责人。《白帽子讲Web安全》作者,微信公众号:道哥的黑板报。 少年时代 我从小到大一直都是学霸,除了上大学之后。 我出生在一个医生和教师的家庭,在湖南大学长大,周围的同学可能都是大学老师的孩子,这种环境的熏陶让我养成了在学习方面比较刻苦的习惯,考试总是拿第一第二。 但其实这种环境比较压抑人的个性,也就导致我的内心实际上还是有一点点的叛逆,在进入大学没人管之后,就开始叛逆,然后开始研究黑客技术。 我大学没有做对一件事情,可能唯一做对的事情就是把幻影(注:吴瀚清在大学期间创办的安全社区)做下去了。 我觉得幻影有它有运气的地方,也有它没有运气的地方,其实当时创办它没有那么复杂的想法,纯粹是出于技术上的一种狂热,所以就成立了这么一个团体。 我们没有收入来源,在当时遭遇了一些 DDOS 攻击,然后就把它给关掉了,到今天比较惋惜。 难能可贵的是其中有一些人把他们做的事情一直延续到了今天,这些人基本上都成为了现在这些安全公司的一些...
夕水溪下 发布于 3周前 阅读 2095 评论 9 点赞 4

Android基于UPnP/DLNA的智能设备媒体互联

有趣的 在一个项目工作中偶然接触到 UPnP -- 一个基于本地网络的即插即用设备互联协议标准,后来经了解发现 UPnP 是个很有趣的东西。这个协议有一些特性(详细信息可参考官方资料 http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v2.0.pdf) ⦁ 对等,没有主次 所有 UPnP 网络中的设备及可以提供服务,也可以主动发起数据传输,设备的角色取决于软件(不像 USB 协议那样的主从模式)。如果一个设备实现了 AVTransport 那么它可以提供媒体渲染服务,例如一台智能电视;如果设备实现了 ContentDirectory 那么它可以提供流媒体服务,例如开启媒体流的功能的 PC;如果设备是使用 ControlPoint 那么它就像是个智能遥控器,例如安装一些 DLNA 控制软件的手机;一台设备可以同时支持多个服务,例如Windows Media Player它即可以接受渲染推送来的媒体,也可以吧媒体推送到其他设备上播放(Play To)。UPnP网络中的设备没有一个Master,所有设备都是对等。 ⦁ 即插即用,零配置 这个即插即用不是硬件层面的(不像USB那样的串行总线设备拓展),而是通过本地网络实现。设备可以动态加入网络(通过SSDP发现设备),传达其功能(使用XML描述),并了解其他设备的存在和功能。...
KnightMobi 发布于 3周前 阅读 1195 评论 2 点赞 4

【干货】Apache Hive 2.1.1 安装配置超详细过程,配置hive、beeline、hwi、HCatalog、WebHCat等组件

    在Docker环境成功搭建了Apache Hadoop 2.8 分布式集群,并实现了NameNode HA、ResourceManager HA之后(详见我的另一篇博文:Apache Hadoop 2.8分布式集群详细搭建过程),接下来将搭建最新稳定版的Apache Hive 2.1.1,方便日常在自己电脑上测试hive配置和作业,同样的配置也可以应用于服务器上。以下是Apache Hive 2.1.1的安装配置详细过程 1、阅读Apache Hive官网说明文档,下载最新版本Hive        Hive是一个基于Hadoop的数据仓库工具,将HDFS中的结构化数据映射为数据表,并实现将类SQL脚本转换为MapReduce作业,从而实现用户只需像传统关系型数据库提供SQL语句,并能实现对Hadoop数据的分析和处理,门槛低,非常适合传统的基于关系型数据库的数据分析向基于Hadoop的分析进行转变。因此,Hive是Hadoop生态圈非常重要的一个工具。        安装配置Apache Hive,最直接的方式,便是阅读 Apache Hive官网的说明文档,能了解到很多有用的信息。Apache Hive 要求JDK 1.7及以上,Hadoop 2.x(从Hive 2.0.0开始便不再支持Hadoop 1.x),Hive 可部署于Linux、Mac、Windows环境。        从官网下载最新稳定版本的 Apache Hive 2.1.1 2、安装配置Apache Hi...
雪饼 发布于 3周前 阅读 1385 评论 1 点赞 2
顶部