最近的任务是将elasticsearch集群由低版本的1.4.2升级到5.5.2版本。由于跨的版本比较多,查看了一下elasticsearch文档,Breaking changes 非常多,所以这会是一次改动很大的升级。

...

使用过ubuntu的人儿们可能都遇到过这类问题,明显这种问题是一个类型,而不是单一的由于某一个固定的因素引起的。

本人也用过ubuntu系统很长一段时间了,多次遇到了这类问题,多次修复后,我还是发现每次都是需要去查资料,所以打算记录下来,以免以后还是要去查半天。同时分享个大家。

首先,出现这种问题的原因是:无法解析或打开软件包的列表或是状态文件。我曾经在安装java8的时候由于网速过慢直接在终端中断了,后来也有这样的问题,但是在终端输入sudo...

众所周知,我们能使用Golang轻松编写并发程序。Golang利用goroutine,让我们编写并发程序变得容易。并发程序中重要的问题之一就是如何正确的处理“竞争资源”或“共享资源”。Golang为我们提供了锁的机制。这篇文章,就简单介绍Golang中锁的使用方法。并且进行错误的使用方法和正确的使用方法的代码示例对比。文章的所以代码示例在:https://github.com/pathbox/learning-go/tree/master/src/lock

我们看第一个栗子:

现在线上有一个elasticsearch集群搜索服务有三台elasticsearch实例(es1、es2、es3),打算将其升级为5台(增加es4、es5)。这篇文章主要是对整个操作的过程记录,以及出现的问题总结,包括移动数据量所需要的时间。因为,一开始由于不知道线上数据量全部分配完需要多少时间,如果从凌晨开始操作,到早上8点都还没有同步完,这样会影响到白天线上业务的正常使用。

准备阶段

...

如果调用第三方接口,请别忘了超时机制

周末的时候,线上出了问题。是由于IPIP服务商的服务器出了问题,我们调的接口迟迟没有返回值。...

在Rails controller中可以定义回调方法。回调方法是一个队列,满足先进先出的执行顺序。但我们知道,回调有before_action, after_action,...

多个条件进行操作的时候,难免遇到冲突

比如触发器,不同的触发器的触发条件如果有冲突,顺序不同,影响不同。如果A触发器先执行更改记录,会导致B触发器条件不满足而无法执行。如果让B先执行,则两者都可以顺利执行。

...

从同事接手了一个项目。这个项目是用了<go-socket.io>这个库,仿照socket.io的功能,和前端进行交互。因为之前是用socket.io做的后端,但是 觉得性能不够用了,就改用Go来进行重构。重构之后,发生内存泄露的现象。这个项目峰值大概维护1w-1.5w个socket长连接,一开始内存消耗量大概到2g-3g。...

我喜欢在<hosts>文件里给ip地址定义域名名称。比如一台测试服务器的ip地址是<192.168.100.1>

...

在数据库层面建立唯一索引,是最好的防止数据重复的方法,即使是在高并发的情况下

在Rails...

我们知道,Ruby是动态语言。 静态类型:编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误。

动态类型:编译的时候不知道每一个变量的类型,因为类型错误而不能做的事情是运行时错误。...