技术分享 《分布式一致性raft算法实现原理》

Golang,技术分享 3,115 views
       这段时间跟同事聊了不少分布式系统中的常用算法协议,中间有聊到分布式一致性的话题,当然我们对一致性理解都是那种介绍的层次。  哈哈 , 后来用了心思去学习分布式一致性协议 raft,  现在有些心得,就拿出来给同事分享下。...
阅读全文 6

技术分享 《分布式一致性raft算法实现原理》

07-08 3,115 views

       这段时间跟同事聊了不少分布式系统中的常用算法协议,中间有聊到分布式一致性的话题,当然我们对一致性理解都是那种介绍的层次...
阅读全文 6

Golang使用zlib压缩和解压缩字符串

Golang 3,871 views
在python的时候就习惯使用zlib进行网页压缩。 golang下同样使用zlib进行压缩解压缩。  zlib官方给出的方法很简单,这里权当一个补充.  文章时常有修改,更新.  标注下golang zlib原文地址, http://xiaorui.cc/?p=3084 zlib.NewWriter()...
阅读全文 0

Golang使用zlib压缩和解压缩字符串

03-30 3,871 views

在python的时候就习惯使用zlib进行网页压缩。 golang下同样使用zlib进行压缩解压缩。  zlib官方给出的方法很简单,这里权当一个补充.  文章...
阅读全文 0

golang随机time.sleep的Duration问题

Golang 5,059 views
碰到一个Golang time.Sleep()的问题,这golang的time.sleep的功能貌似要比python ruby都要精细些,python的等待只是time.sleep()而已,而golang可以time.Sleep(10 * time.Second) 毫秒、秒分时等不同日期来搞… 大事不干,净整些没用的…   ...
阅读全文 0

golang随机time.sleep的Duration问题

03-23 5,059 views

碰到一个Golang time.Sleep()的问题,这golang的time.sleep的功能貌似要比python ruby都要精细些,python的等待只是time.sleep()而已,而golang可以time.Sl...
阅读全文 0

Golang使用redigo实现redis的分布式锁

Golang 4,657 views
有些分布式场景会有分布式锁的需求,可以为了原子操作,也可能为了性能的原因,不管是分布式锁市面是有不少解决方法的,比如etcd、consul、zookeeper… 初次之外redis这样的nosql也是可以实现分布式锁的。  python党喜欢用redis、etcd、consul来搞。 &nb...
阅读全文 0

Golang使用redigo实现redis的分布式锁

4,657 views

有些分布式场景会有分布式锁的需求,可以为了原子操作,也可能为了性能的原因,不管是分布式锁市面是有不少解决方法的,比如etcd、consul、zookeeper…...
阅读全文 0

golang使用yaml格式解析构建配置文件

Golang 5,499 views
还是那个golang监控agent那些事情,现在功能差不多了,唯独缺少信号处理及daemon服务化。 程序写的差不多了,但是这配置文件咋整? 难道把这些常亮要写在.go文件里面? 我对golang还没能理解到无缝reload的模式…  如果是写在配置文件就很简单了...
阅读全文 0

golang使用yaml格式解析构建配置文件

03-20 5,499 views

还是那个golang监控agent那些事情,现在功能差不多了,唯独缺少信号处理及daemon服务化。 程序写的差不多了,但是这配置文件咋整? 难道把这些常亮要写在.g...
阅读全文 0

Golang使用pprof监控性能及GC调优

Golang 6,340 views
这两天用golang在写一个监控的agent,发现长时间运行后会有内存泄露的情况,着实让人郁闷半天… 要解决golang泄露的问题,要理解goalng gc那是事情,再就是利用pprof监视golang的运行环境。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,...
阅读全文 3

Golang使用pprof监控性能及GC调优

6,340 views

这两天用golang在写一个监控的agent,发现长时间运行后会有内存泄露的情况,着实让人郁闷半天… 要解决golang泄露的问题,要理解goalng gc那是事情,...
阅读全文 3

Golang利用select实现goroutine的超时控制

Golang 4,363 views
简单的说下select是干什么的? select用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的处理机制。当你发起一些阻塞的请求后,你可以使用select机制轮训扫描fd,直到被监视的文件句柄有某一个或多个发生了状态改变。  该文章写的有...
阅读全文 1

Golang利用select实现goroutine的超时控制

03-19 4,363 views

简单的说下select是干什么的? select用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的处理机制。当你发起一些阻塞的请求后,你可以使...
阅读全文 1

关于golang regexp正则的使用方法

Golang 3,686 views
今天正好看到golang的正则模式,就针对常用的几个正则模式写个分享。 正则的基础我就不多说了,用法和原理都那么一回事。 Regexp也是兼容贪婪、非贪婪模式的匹配。  该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新 http:...
阅读全文 0

关于golang regexp正则的使用方法

03-16 3,686 views

今天正好看到golang的正则模式,就针对常用的几个正则模式写个分享。 正则的基础我就不多说了,用法和原理都那么一回事。 Regexp也是兼容贪婪、非贪婪模式...
阅读全文 0

使用golang log库包实现日志文件输出

Golang 6,131 views
这次聊聊golang日志模块的详细用法。golang的日志输出一般用的是标准库log库包。 话说Golang的log实现的功能跟别语言的日志没啥区别。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。 http://xiaorui.cc/?p=2972 ...
阅读全文 0

使用golang log库包实现日志文件输出

03-15 6,131 views

这次聊聊golang日志模块的详细用法。golang的日志输出一般用的是标准库log库包。 话说Golang的log实现的功能跟别语言的日志没啥区别。 该文章写的有些...
阅读全文 0

使用golang errors包自定义错误异常

Golang 3,726 views
发现Golang很多开源的package都是使用Error来定义错误异常,其实我自己更加的习惯利用返回的值进行判断。 虽然这么说,但Golang的error定义还是有意思的,合理就返回nil,不合理就返回Error的草错误。   该文章写的有些乱,欢迎来喷 ! 另外文章后续不...
阅读全文 0

使用golang errors包自定义错误异常

3,726 views

发现Golang很多开源的package都是使用Error来定义错误异常,其实我自己更加的习惯利用返回的值进行判断。 虽然这么说,但Golang的error定义还是有意思的,...
阅读全文 0

浅谈golang reflect反射调用函数

Golang 4,382 views
Golang也是有反射概念的,其实大多数语言,尤其那种动态语言都有反射的概念和用法。 在python里getattr,globals()可以通过反射自省的模式来还原对象半身的属性和方法。 废话一句,反射是干嘛的?  通过反射我们可以还原一个对像的属性,方法。 通俗的讲,在分布...
阅读全文 0

浅谈golang reflect反射调用函数

03-14 4,382 views

Golang也是有反射概念的,其实大多数语言,尤其那种动态语言都有反射的概念和用法。 在python里getattr,globals()可以通过反射自省的模式来还原对象半身的属...
阅读全文 0

关于golang package自定义包结构

Golang 4,298 views
我想说的是,好家伙Golang的项目构建稍有些繁琐呀,用户体验来说没有python、java那么简单方便。 在Google搜索golang package自定义包方面的资料,发现搜索的结果不是很令人满意。不是说的很浅,就是说的很深,都伸到编译器层面了,蒙圈… 该文章写的有...
阅读全文 0

关于golang package自定义包结构

03-13 4,298 views

我想说的是,好家伙Golang的项目构建稍有些繁琐呀,用户体验来说没有python、java那么简单方便。 在Google搜索golang package自定义包方面的资料,发现搜索的...
阅读全文 0

golang set集合实现去重及交叉并集计算

Golang 5,184 views
     还是需要吐槽下golang默认的标准库不是很全面,虽然可以通过map来实现简易的set集合,但这毕竟费工夫呀。不知道golang啥时候才能有个较完美的库包服务,类似python的pypi,node.js的npm… 该文章写的有些乱,欢迎来喷 ! 另外文章...
阅读全文 0

golang set集合实现去重及交叉并集计算

03-11 5,184 views

     还是需要吐槽下golang默认的标准库不是很全面,虽然可以通过map来实现简易的set集合,但这毕竟费工夫呀。不知道golang啥时候才能有个...
阅读全文 0

关于golang struct interface的理解使用

Golang 4,321 views
前端时间说了不少golang常用库包的使用,貌似没有详细说struct interface的概念。在说interface之前,我们知道在Golang 中是没有类class 的概念,golang是通过 interface 类型接口实现的继承多态的效果。 一个 interface 类型定义了一个方法集做接口。 使用golang...
阅读全文 0

关于golang struct interface的理解使用

4,321 views

前端时间说了不少golang常用库包的使用,貌似没有详细说struct interface的概念。在说interface之前,我们知道在Golang 中是没有类class 的概念,golang是通...
阅读全文 0

golang使用priority queue实现优先级队列

Golang 3,757 views
     我们知道类似优先级队列是使用heap堆栈来实现的。 优先级队列的用途我就不多说了,一般是用来做任务权重分配的。     下面priority_queue优先级库是在github.com找到的。 看了下他的源代码实现,得知他不是线程安全的。   ...
阅读全文 0

golang使用priority queue实现优先级队列

03-10 3,757 views

     我们知道类似优先级队列是使用heap堆栈来实现的。 优先级队列的用途我就不多说了,一般是用来做任务权重分配的。     下...
阅读全文 0

golang使用sync保证container/list链表线程安全

Golang 4,804 views
一边python,一边golang ! 时常因为工作切换语言造成了短路。container/list是golang语言内置的链表库。 对比其他语言的list,container/list该有的功能都有,就缺一个popLeft popRight方法。如果要实现pop方法需要去除value := list.Back() , 然后list.Remove(va...
阅读全文 0

golang使用sync保证container/list链表线程安全

4,804 views

一边python,一边golang ! 时常因为工作切换语言造成了短路。container/list是golang语言内置的链表库。 对比其他语言的list,container/list该有的功能都...
阅读全文 0

关于golang的panic recover异常错误处理

Golang 3,947 views
Golang这么时尚的语言是没有类似try..catch 这种异常处理机制,而是使用 panic 和 recover处理异常. 其实相当于python的raise。 golang的异常处理组合 panic,defer,recover,跟java中的try catch finially是类似的。 但是从语言的用户体验来说,不怎么好。 但考虑...
阅读全文 0

关于golang的panic recover异常错误处理

03-09 3,947 views

Golang这么时尚的语言是没有类似try..catch 这种异常处理机制,而是使用 panic 和 recover处理异常. 其实相当于python的raise。 golang的异常处理组合 panic...
阅读全文 0

解决golang开发socket服务时粘包半包bug

Golang 5,280 views
在使用golang做socket服务时,我想大多数人都会碰见粘包的问题。 以前用python做socket服务时就想写一篇关于tcp粘包的问题,后来因为单纯的tcp服务器开发功能实在烦杂,索性直接用http tornado进行通信了。 下面的资料有些是来自我个人的印象笔记,相关的参考引用链...
阅读全文 0

解决golang开发socket服务时粘包半包bug

03-08 5,280 views

在使用golang做socket服务时,我想大多数人都会碰见粘包的问题。 以前用python做socket服务时就想写一篇关于tcp粘包的问题,后来因为单纯的tcp服务器开发功...
阅读全文 0

golang strconv数据类型转换的用法

Golang 4,399 views
strconv是golang用来做数据类型转换的一个库。  介绍下strconv最常用的两个方法, 虽然没有解释语言那么自在可以str(int),int(string), 那还算简练。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。 http://x...
阅读全文 0

golang strconv数据类型转换的用法

4,399 views

strconv是golang用来做数据类型转换的一个库。  介绍下strconv最常用的两个方法, 虽然没有解释语言那么自在可以str(int),int(string), 那还算...
阅读全文 0

关于golang timer定时器的详细用法

Golang 4,770 views
上次写了一篇关于golang crontab的用爱疯,这次说下golang timer定时器的用法。  golang的time.NewTicker创建定时任务时,是阻塞同步的。如果不想因为同步阻塞了main线程,可以给每个定时函数分配一个goroutine协程。  该文章写的有些乱,欢迎来喷...
阅读全文 0

关于golang timer定时器的详细用法

03-06 4,770 views

上次写了一篇关于golang crontab的用爱疯,这次说下golang timer定时器的用法。  golang的time.NewTicker创建定时任务时,是阻塞同步的。如果不想因为...
阅读全文 0

golang解析创建复杂嵌套的json数据

Golang 5,087 views
Golang的json序列化果真是静态语言的范呀。各种的麻烦,各种的标准。 用pyhon的时候毫无顾忌,各种的数据各种的塞。 各个功能模块需要传递信息,一般是需要序列化的,常用的序列化模式有json、msgpack啥的。 这里就先扯扯golang的json模块。 对于相当复杂又各种嵌套...
阅读全文 1

golang解析创建复杂嵌套的json数据

5,087 views

Golang的json序列化果真是静态语言的范呀。各种的麻烦,各种的标准。 用pyhon的时候毫无顾忌,各种的数据各种的塞。 各个功能模块需要传递信息,一般是需要序...
阅读全文 1