- 博客(3)
- 资源 (6)
- 收藏
- 关注
原创 protobuf的使用
在项目中, 不同的模块用过到了不同的语言, 进行通信的时候, 原本采用的方法是在不同的模块定义相同的通信结构体, 但是随着系统变得越来越复杂, 这样的方法越来越不可行。Protobuf是一个跨语言、跨平台的具有可扩展机制的序列化数据工具。采用该工具我们可以定义一套模块间传输的结构体, 生成不同的语言的代码, 赖在模块之间传递信息。 Protobuf的源码: https://github.com/g
2018-02-25 15:17:38 317
原创 Golang channel 的实现原理
Channel 是golang语言自身提供的一种非常重要的语言特性, 它是实现任务执行队列、 协程间消息传递、高并发框架的基础。关于channel的用法的文章已经很多, 本文从channel源码的实现的角度, 讨论一下其实现原理。 关于channel放在: src/runtime/chan.go channel的关键的结构体放在hchan里面, 它记录了channel实现的关键信息。 ...
2018-02-25 13:48:26 3463
原创 redis IO多路复用技术
redis 是一个单线程却性能非常好的内存数据库, 主要用来作为缓存系统。 redis 采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。 LINUX IO多路复用原理 在linux下面, 常见的有5中网络IO方式, 具体可以参考如下的文章, 总结的很清楚, 我们就不再具体介绍: http://blog.csdn.net/lltaoyy/article/details/54
2018-02-04 18:38:22 13019 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人