NewSQL 被定义为新一代的数据库。

...

最近买的云梯VPN挂了快两月了,现在还没好,也没发邮件通知等,提工单也不再有回复.

而在Go开发中,有一些包的导入是需要翻墙到谷歌源的.在运维小哥的协助下,使用privoxy解决了这个问题.

...

最近为项目系统中使用的Elasticsearch进行了升级。从原来1.4版本的Elasticsearch升级到5.x版本。

由于5.x版本的Elasticsearch不再支持1.4版本中的很多查询语法,所以不可避免的进行了查询层的重构。 每次Elasticsearch有重大版本升级的时候,会在官方文档中列出相应的改变,你需要认真阅读的

最近的任务是将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是动态语言。 静态类型:编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误。

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

这周对Rails项目中的ElasticSearch进行了总结并写成了文档,觉得有一些内容值得记录和分享。 这篇文章主要是在Rails项目中对索引,mapping的设置、管理操作的总结,不涉及搜索方面的内容。 源数据是存在MySQL中,ES的数据是MySQL写操作的时候进行了回调同步到ES中,这个应该和很多人的使用同步策略一样。

...

Go有指针类型含义和作用和C语言的指针是一样的,指向类型的地址,而且用途很广,但是你不能对指针进行运算。 比如C语言中的对指针的++ 运算或移位运算在Go中是没有的。

...

面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的程序编程范型,同时也是一种程序开发的方法。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。Go语言也是一种面向对象编程的语言,但是和传统的编程语言有一些不同。但是Go也有很多传统OOP语言的特点:

    ...

iteration variable重用
...

methods on...

描述:某个功能需要为数据库增加相关数据。大概逻辑是:根据表Company,根据某些条件往Department和DepartmentsUser表中插入数据。 然后将User表中满足筛选条件的status字段进行更改。

结果:需要超过一个小时才将整个脚本跑完,也就是这一小时都在影响线上数据库

...

最近遇到了一个坑,关于rails中的hash struct。问题不难,但非常容易让人忽略。