- 博客(85)
- 资源 (5)
- 收藏
- 关注
原创 nats streaming发布
我这里分析的是由nats streaming启动nats的,不连接外部nats1.在nats streaming第一章,已经说明nats streaming会启动客户端连接nats,然后注册消息回调,包括客户端连接,订阅,发布等消息回调2.订阅客户端发送订阅消息,服务端调用readLoop()进行消息读取,c.parse消息解析,processMsg(解析出事件,这里是解析出发布事件,消息...
2020-10-19 19:05:42
323
原创 nats streaming消息发布
1.首先客户端连接,连接之后会发送discover消息类型,消息是发送给nats server(不是nats streaming server)。这里会返回得到nats streaming server所有消息类型的对象(pub,sub,unsub,subClose等),客户端发送消息就是发送到对应object对象。这些对象是由nats streaming server发送给nats server保存的,具体发送如下,2.发布消息,根据上一步得到的消息类型对象,发布pub消息(变量pubPr
2020-10-19 19:01:56
577
原创 2015.8.3-2015.8.7 读书笔记 ats源码阅读
main函数: 1,关于软件版本信息的初始化工作,类AppVersionInfo 2,关于一些文件路径的初始化工作,类Layout 3,更改当前工作目录chdir,运行参数获取process_args,流缓冲区设置4,初始化DiagsConfig结构体,创建Diags,好像是一个日志管理服务(有待进一步考证)5,调用initialize_process_
2020-04-12 11:39:41
335
原创 nats streaming订阅
我这里分析的是由nats streaming启动nats的,不连接外部nats1.在nats streaming第一章,已经说明nats streaming会启动客户端连接nats,然后注册消息回调,包括客户端连接,订阅,发布等消息回调2.订阅客户端发送订阅消息,服务端调用readLoop()进行消息读取,c.parse消息解析,->(c *client) processSub-&g...
2020-04-12 11:37:36
574
原创 nats streaming简介与初始化
NATS是一个开源、轻量级、高性能的分布式消息中间件,实现了高可伸缩性和优雅的Publish/Subscribe模型,但他不保证消息的到达,持久性等特性,nats streaming即为解决这一问题,附一张官方两者架构图。启动过程:1.parseFlags启动参数的处理2.RunServerWithOpts初始化准备: 1)启动参数获取,启动日志系统 ...
2020-04-06 21:40:15
1160
原创 nats 客户端消息发送
parser.parse解析消息,通过状态机流转,得到是pub消息,调用client.processPub处理,解析 得到subobject对象,一些合法性校验状态机切换,获取剩余消息内容进入client.processInboundMsg进行消息处理分支选择client,跳转进入processInboundClientMsg,一些合法性校验之后进入processMsgResults,...
2020-03-14 21:11:00
640
原创 nats 订阅
1。client.goreadLoop()循环读取客户端发送消息2。parser.goparse(buf []byte) 解析读取的数据,for循环循环解析每个字节,通过状态机流转,比如针对订阅,先判断首字母是否是s或者S,然后赋予状态OP_S,接着分析第二个字节是否是u或者U,一步步分析最终得到订阅完整消息。3。订阅最终状态机SUB_ARG,处理函数processSub,存放订阅...
2020-03-11 22:35:09
428
原创 nats 服务端源码阅读第一章
正在上传…重新上传取消转存失败重新上传取消正在上传…重新上传取消1。第一处server.ConfigureOptions为参数的初始化过程。2。第二处server.NewServer为服务初始化过程。3。第三处server.Run为服务启动。第二处服务初始化过程: 1)。生成服务端信息结构体 struct server。server.clients为后续客户...
2020-03-10 22:45:07
564
转载 王垠:编程宗派之我见
转载至:微信公众号 infoq http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650993843&idx=1&sn=2c614ba3c0815ebac9a707629a88c021&scene=4#wechat_redirect面向对象编程如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所谓
2016-11-06 21:18:45
637
转载 可配置化软件架构探析及实操秘诀
转载至:微信公众号 待字闺中 http://mp.weixin.qq.com/s?__biz=MjM5ODIzNDQ3Mw==&mid=2649965996&idx=1&sn=617c19cc1cfeb28ebd7aed1bbad0a7ff&scene=0#rd下一代软件架构是服务化、组件化、可配置化,可配置化成为了软件架构的最高级别。可配置化架构是软件架构努力的方向。可配
2016-11-06 21:16:04
5897
转载 程序员简易成长指南:从菜鸟码农到架构师
转载至:微信公众号 infoq http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650993847&idx=1&sn=5777f5c5274f07bac3aa115b7e42541a&scene=0#rd如何更高效地学习?很多新人程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后这类问题大多
2016-11-06 21:14:01
598
转载 SQL语句优化技巧
转载至:http://www.jianshu.com/p/25c958196a0b1、应尽量避免在 where 子句中使用!=或2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t
2016-11-06 21:05:52
365
转载 业内公认难题,如何解决小文件存储
转载至:微信公众号 运维帮http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=2651297096&idx=1&sn=abff6586e14f1536e06c66fa5774b073&scene=0#wechat_redirect作者简介陈闯,花名“战士雷欧”,白山云科技超级攻城狮。Linux内核、nginx
2016-11-06 21:02:59
1714
转载 分布式事务解决之道
转载至:微信公众号 首都在线云计算 http://mp.weixin.qq.com/s?__biz=MzA3MDI2NzIzMw==&mid=508953959&idx=1&sn=28a62ffc731b8136479b360140ed4481&scene=1&srcid=0910SaHtA5k79kMm5Hi2XM6M#rd分布式事务解决之道——丁浪
2016-11-06 20:53:24
391
转载 基于组件的开发思路
转载至:http://chinese-darren.iteye.com/blog/18455511. 4个基本特性:组件,组件之间的协同,组件插座,组件的使用者。2. 高度的以体系结构为中心。3. 业务组件5要素:组件粒度层次、体系结构视点、分布层、功能类(或层)和开发生命周期视点。4. 五种粒度层次:语言类、分布式组件、业务组件、系统级组件、系统级组件联盟。
2016-11-06 20:50:33
3106
转载 没有免费用户却飞速发展,Uber技术栈全解析!
转载至:微信公众号 infoq http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994162&idx=1&sn=9fe3c9497139d0189a6300a53ecd6393&chksm=bdbf0da18ac884b71f337d1091295eb35be3eb7cb73a93d620c0af351edbfcd0f63a522c
2016-11-06 20:49:35
1440
转载 编写可靠shell脚本的八个建议
转载至:https://segmentfault.com/a/1190000006900083这八个建议,来源于键者几年来编写 shell 脚本的一些经验和教训。事实上开始写的时候还不止这几条,后来思索再三,去掉几条无关痛痒的,最后剩下八条。毫不夸张地说,每条都是精挑细选的,虽然有几点算是老生常谈了。1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个
2016-11-06 20:45:46
335
转载 天天写「业务代码」,如何成为「技术大牛」?
转载至:微信公众号 infoq http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994277&idx=1&sn=f0d3c25d805503264a78ab5eeb29044d&chksm=bdbf0e368ac88720da10e901457fdbee77a90a426c20a3b95316fcbc6c8ab7b1afbd5595
2016-11-06 20:43:11
568
转载 互联网架构为什么要做服务化?
转载至:微信公众号 架构师之路 http://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959519&idx=1&sn=065074b135fc9cb243abe897261e1a72&scene=4#wechat_redirect近期参加一些业界的技术大会,“微服务架构”的话题非常之火,也在一些场合聊过服务化架构实践,最近几期文章期望用通
2016-11-06 20:32:17
379
转载 Unix目录结构的来历
转载至:http://www.ruanyifeng.com/blog/2012/02/a_history_of_unix_directory_structure.html作者: 阮一峰日期: 2012年2月 6日Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但
2016-11-06 19:45:17
237
转载 分库分表的几种常见形式以及可能遇到的难题
转载至:微信公众号 infoq http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994413&idx=1&sn=24a01089ee47793b5d82381b04a34499&chksm=bdbf0ebe8ac887a8a75a0cd9226bb7e0427f1a77c43323d14dc6932c7dc77555531bce5d
2016-11-06 19:43:25
361
转载 日消息量突破50亿,小米是如何设计高可用推送系统的?
转载至: in、http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994440&idx=1&sn=4d14a4f9e5adac3f2cddfff2ea7e7427&chksm=bdbf0f5b8ac8864daefffa1862cfb02fc41788727441a1ec4932fd49468305273849a9aa8b90&sc
2016-11-06 19:40:55
489
转载 技术的正宗与野路子
转载至:http://zhangtielei.com/posts/blog-programmer-learn.html黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙。这段描写出自《倚天屠龙记》第三十八回。“九阴神抓”本是《九阴真经》中的上乘武功,但当初梅超风夫妇由于拿到的《九阴真经》
2016-11-06 19:33:26
398
转载 微信为什么不丢消息
转载至:微信公众 号 架构师之路 架构师之路 架构师之路 架构师之路 架构师之路 架构师之路 架构师之路 架构师之路架构师之路架构师之路架构师之路架构师之路架构师之路架构师之路架构师之路http://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959606&idx=1&sn=f9561231dd33bcd055
2016-11-06 19:31:15
2416
转载 整天说Code Review重要,你知道应该关注哪些关键点吗?
转载至:微信公众号 聊聊架构 http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=2659598372&idx=1&sn=7a3ebbd7eff29c30a2076d5123262701&chksm=8be99536bc9e1c20c48f0c4cd5f6c450170c68a76a24033653841d903068aacae2fd1db4f
2016-11-06 19:25:55
3253
转载 每个程序员书柜必备的编程书籍
转载至:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994619&idx=1&sn=8cfc677078260fcb70a728cefe51628b&chksm=bdbf0fe88ac886fe3b17e070d0d26c2c68d802cccb5e56d431835fba27c30e76f6fb26030322&scene=0
2016-11-06 19:19:35
2974
转载 大规模Nginx平台化实践,京东能提供哪些参考经验?
转载至:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994600&idx=1&sn=8b9587680e933a750d3bf5760b0491ca&chksm=bdbf0ffb8ac886ed51c3f69627487f90033e4eb723793d0a892e349293f4bea8b447c77e5b05&scene=0
2016-11-06 19:17:53
650
转载 高并发下的幂等策略分析
转载至:http://www.guokr.com/article/47868/?f=wx&page=2双十一,零点刚开始,小明就迫不及待地点击提交订单按钮,1秒,2秒,3秒,没反应,小明有点心慌,又快速地点击了两下,提示下单成功。随后小明到我的订单列表中一看,发现有三个相同的订单,小明一脸黑线。什么是幂等性HTTP/1.1中对幂等性的定义是:Methods ca
2016-08-29 14:21:10
7938
3
转载 饿了么:业务井喷时,订单系统架构这样演进
转载至:http://mt.sohu.com/20160825/n465871529.shtml本文根据石佳宁在InfoQ举办的2016ArchSummit全球架构师(深圳)峰会上的演讲整理而成。 老司机简介 石佳宁,饿了么后台支撑研发部负责人,目前任职于饿了么,现任平台研发中心-后台支撑部门负责人,主要负责饿了么外卖订单、统一客服系统、BD销售以及管理工 具、代理
2016-08-29 10:01:35
5808
转载 关于视频随机拖动的原理分析
转载至:微信公众号 技术范本来想说说关于mp4和一些常见视频文件格式方面的历史。现在想想没啥必要,毕竟本文是在讲关于mp4点播拖动方面的技术细节。绪论,前言神马的显得有点多余。说起MP4,不得不提“Digital container format”的概念。维基百科给出解释:A container or wrapper format
2016-08-16 23:02:39
1175
转载 十分钟搞清字符集和字符编码
转载至:微信公众号 技术范什么是字符集在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来的文件,在我们本地打开又乱码了。于是为了实现转换标准,各种字符集标准
2016-08-16 22:53:21
298
转载 Linux 下 C++ 异常处理技巧
转载至:http://www.oschina.net/code/snippet_222150_18256简介: 处理 C++ 中的异常会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们。学习各种利用异常的方法,您就可以生产更可靠的应用程序。保留异常来源信息在 C++中,无论何时在处理程序内捕获一个异常,关于该异常来源的信息都是不为人知的。异常的具体来源可
2016-08-06 23:12:12
3223
转载 如何在高并发分布式系统中生成全局唯一Id
转载至:http://www.cnblogs.com/heyuquan/archive/2013/08/16/global-guid-identity-maxId.html1、 使用数据库自增Id优势:编码简单,无需考虑记录唯一标识的问题。缺陷:1) 在大表做水平分表时,就不能使用自增Id,因为Insert的记录插入到哪个分表依分表规则判定决定,若是自增Id,各个
2016-07-21 15:59:54
678
转载 C++中临时对象及返回值优化
转载至:http://www.cnblogs.com/xkfz007/archive/2012/07/21/2602110.html http://www.cnblogs.com/xkfz007/articles/2506022.html 什么是临时对象? C++真正的临时对
2016-07-21 14:03:14
982
转载 大型网站图片服务器架构的演进
在主流的Web站点中,图片往往是不可或缺的页面元素,尤其在大型网站中,几乎都将面临“海量图片资源”的存储、访问等相关技术问题。在针对图片服务器的架构扩展中,也会历经很多曲折甚至是血泪教训(尤其是早期规划不足,造成后期架构上很难兼容和扩展)。本文将以一个真实垂直门户网站的发展历程,向大家娓娓道来。构建在Windows平台之上的网站,往往会被业内众多技术认为很“保守”,甚至会有点。很大
2016-07-04 22:42:24
261
转载 你用的Nginx还很低性能么,来看看此篇文章!
转载至:微信公众号:可道技术一、为什么选择Nginx搭建Web服务器Apache和Nginx是目前使用最火的两种Web服务器,Apache出现比Nginx早。Apache HTTP Server(简称Apache)是世界使用排名第一的Web服务器软件,音译为阿帕奇,是Apache软件基金会的一个开放源码Web服务器,可以运行几乎所有的计算机平台,其次开放的API接口,任何组织和个人
2016-07-04 22:24:05
5681
转载 OpenResty做CDN如何把302跳转处理成给用户传最终响应内容(200状态码)
转载至:微信公众号:可道技术需求说明使用OpenResty(Nginx+Lua)做CDN组件,遇到一个需求,需要把源站响应的302跳转处理掉,就是自动在CDN把302消化掉而把200响应内容发送给用户,简单点说就是不让302走到请求客户端那边。解决方案—— error_page感谢方腾同学的指点。这里已一个优酷视频的302跳转为例,直接上代码:server { listen 80;
2016-07-04 22:19:21
5270
转载 CDN中运用OpenResty做有效访问时间校验
转载至:微信公众号 可道技术需求说明需要对URL参数中的timestamp字段的值做时间校验,例如半个小时内允许访问,超过指定时长禁止访问。需要实现一个开关,配置是否开启校验,以及校验的时间长度需要配置。解决方案—— OpenResty使用OR来实现。* 在init阶段实现配置装载* 在access阶段做校验1.nginx.conf的http段配置添加lua_code_cache
2016-07-04 22:05:00
1833
转载 几种TCP连接中出现RST的情况
转载至:2016-05-20 costaxu 编:纸鸢 可道技术 微信公众号:可道技术编者说明客户反馈,有节点服务端给客户端发送异常RST包,在排查过程中找到了如下文章做知识补充,顺便转发分享出来。转发自开源中国博文。原文应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/
2016-07-04 21:13:28
592
转载 cache源码分析四 初始化与元数据同步
转载至:http://blog.chinaunix.net/uid-23242010-id-2953692.html之前我们讨论过,cache的索引在trafficserver启动时,会从磁盘加载到内存中。这里有两个问题。 问题1:内存中的索引被更新后,与磁盘中保存的部分已经不一致,我们称之为脏了,这时需要将索引写回至磁盘中去。 问题2:设想
2016-07-03 23:35:08
377
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人