written by Alex Stocks on 2016/02/05,版权所有,无授权不得转载
好多人以为我名字是于雨,其实是 2012 年使用微信时用的微信名字,后来入职阿里时也用作花名,现在已经成了我的常用名了。
从业十二年来一直在服务端基础架构研发一线,工作内容广泛,涵盖 RPC、NoSQL 存储、实时监控告警、即时通信、消息推送等方面。研究内容也挺广泛,2018 年到 2019 年在 Google 内搜索 RocksDB,个人的技术博客一直在 first page,我大概也是国内最早的 gogo protobuf 和 pulsar 研究和鼓吹者。
起家工作语言是 C/C++,2013 年在 chinaunix 上接触到 Go 语言,跟着 Go 官方博客开始学习,所以在 Go 语言方面我算是野路子出身,没有人正式带过我。个人热爱开源,从 2015 年为 Redis 贡献代码开始,2015 年使用 C++11 重构 Muduo,2016 年构建 dubbogo,2018 年接触 Pika。当时除了给 pika 修复 bug,主要构建 Pika 和 Redis 之间数据代理 PikaPort,PikaPort 先后在 360、新浪、脉脉、全民快乐、顺丰、快手、好未来等公司投入使用,直到今年为止不少新浪、好未来和快手等公司不少 DBA 还因为这个工具找我交流。
目前业余主要精力在 dubbogo 社区推动 dubbogo 项目。业余时间,除了 dubbogo 社区,还在即时通讯圈子与从业者进行技术交流,IM 方面个人有七八年实战项目经验积累。
个人以往写了一些博客,所有的博客林林总总都写在以上三家博客栏里,然而不打算接着在这三家的地盘写了,以后有文章只放在github博客系统。对于以往的博客,在本文作为一番综述,以作一个了结。我以往写博客的历史,分为两个阶段:
1 2010年工作至今,以上链接里的所有blog主要是关于个人对后台分布式知识的粗浅理解,几乎都是自己的原创,很少转载的几篇都标明了转载来源,但是不注重格式,所以就不搬到github blog上了,下面分别整理一下列出来,算作是梳理下自己的知识系统。
2 2008年到2010年,自己也在网易博客上写了一些图形学知识的blog:
这些blog主要是对OpenGL的一些研究与个人使用心得,这些文字被其他人到处转载很多,但是我也转载了很多其他人的博客,2010年之后更成为了我的杂货铺,再也没有更新文章且只放置一些我认为对我有用的blog。其内容繁杂且庞大,个人也没有余力去整理了,就留作为青春的回忆吧。
由于一些博客在多家的地盘放着,由于用户评论也不同,我就对blog做相应的修改,多版本就造成了数据不一致,故而在此都列出来
lisk
个人用C语言实现的一套linux基础库,花费三年有余
protobuf & flatbuffer
大概2014的时候,当时FlatBuffer刚出来一周,个人出于好奇心花费了一个周末将其代码通读了一遍,并做了一些测试,于是就有了下面以一些文章。时移世易,由于个人工作中也不是用FlatBuffer,后来再也没有碰过它,文章中的一些观点到现在是否还能成立,我不保证。
github: https://github.com/AlexStocks/flatbuffers
这两篇文章是介绍gogoprotobuf的一些关键语法,于2015年1月初写成,并马上被推荐到oschina.net的首页,其他一堆抄袭网站直接就复制粘贴过去,后来我于2015/12又做了扩充,新添加了三个命令说明,你在那些抄袭网站一定看不到 _^
数据结构
此文发出后,被intel中国社区的人看到,便把拙作稍作改变,又发到了intel技术社区,名字是《介绍一种服务器缓存结构 --- 多级 Hash》,下面有列出
后台分布式系统以及linux系统开发
Windows系统开发
显示dos命令ping和tracert等输出结果中的ip对应的地域名称
程序员应该知道的关于Windows API、CRT和STL二三事
计算机语言
图形学
下文链接是http://blog.csdn.net/menggucaoyuan/article/details/6365596,记忆中是2011-04-26 23:22(http://www.boyunjian.com/do/article/s.do?keyword=CUDA%20%E5%AE%89%E8%A3%85&pageno=7显示时间)我翻译自codeproject上的一篇教程文章,后来觉得文章实在不入流就删除了,从Wikipedia链接:https://zh.wikipedia.org/wiki/User:Wissning显示最后修改时间是2012年6月13日 (星期三) 07:14,这个时间应该是删除时间。不过既然有网站转载就说明它还有用,下面附上两个转载链接(但是二者都没声明是转载文章更没有指出转载来源_)。
其他
:
个人于闲暇时候喜欢学习一些新的语言并写一些小工具,下面按照语言分门别类之:
陈硕先生的muduo库依赖boost且使用了cmake,个人觉得既然有了C++11,就没必要让爱好者继续使用boost了,就用C++11重写了一遍。顺便删除了cmake(muduo只运行在unix类服务器上那就没必要用cmake),自己手工从零给其写了makefile替代之。
这个没什么好说的,不想多做解释
xorlist,对数据结构研究深入的人应该知道这个玩意的好处
https://github.com/AlexStocks/test/tree/master/goext/src/container/xorlist
redis数据冷备工具,懂行的人应该知道它会很好用
https://github.com/AlexStocks/test/tree/master/data_backup/scs-script
https://github.com/AlexStocks/test/tree/master/data_backup/bae-script
bloom & ketama algorithm
https://github.com/AlexStocks/test/tree/master/bloom
https://github.com/AlexStocks/test/tree/master/ketama/ketama
状态机fsm
无锁队列
https://github.com/AlexStocks/test/tree/master/ring-buffer
* protobuf
对protobuf的测试
给redis migrate命令提交的一个patch[redis migrate with password,即给migrate命令添加了一个密码验证功能]
https://github.com/antirez/redis/pull/2507
https://github.com/AlexStocks/redis/commit/30ef3fa99d60e86816f746ae0877f62e1de394df
如果说,开源是个好东西,那么懒惰就是程序员的第一美德。如果有满足需求的开源系统的不用,像我以前一样非要闭门造车再搞一个类似的玩意不可,貌似是一种罪过。个人也是经过北京众多好友一番劝告并自我思想斗争了两年后,接受了这一看法。
从2014年起自己从redis代码开始看起,边看边做笔记(经黄海大哥推荐,用的是网易笔记),然后再根据笔记整理出了一些博客文章。尔后就是nginx了,目前于大体流程稍有心得,个别细节有待慢慢补充之,很多笔记也有待整理。
现在鄙人写blog不似以往,需兼顾格式与版权,而个人记性实在不好,有的东西需反刍后改写好几次,以减少文章中的自相矛盾之处,实在觉得写一篇能让别人稍微能看的blog是种力气活。
好的开源系统还有很多,根据工作需要以及个人能力,慢慢啃吧。老罗语录:通往牛逼的路上,风景差的让人只想说脏话,但创业者在意的是远方。其实啃代码也一样,这活又脏又累且过程充满荆棘,但是我们的征途是星辰大海!
- 2016/02/05,于雨氏,于金箱堂。
- 2016/02/10,于金箱堂,添加了disqus评论功能。