基础架构
yine
在通信领域深耕16+年,精通C/C++/Java/Go/lua/py等编程语言,精通各类运营商协议如:SIP/T1/E1/PRI/H.323/SMGP/CMPP/SGIP/CNGP等,精通开源通信框架如:FreeSWITCH/Asterisk/Kamailio/OpenSIPS/WebRTC/JsSIP的配置使用及模块扩展及源码修改,掌握VoIP领域的音视频编解码,压缩算法,PLC,FEC,NACK等丢包补偿技术,ICE技术,QoS技术等,掌握主流模拟及数字中继网关配置接入,掌握主流微服务,存储引擎、搜索引擎、分布式、并行计算等框架,曾从事IM核心系统、消息推送平台、VoIP媒体交换平台...
展开
-
Google代码风格样式
https://github.com/google/styleguide原创 2020-04-09 17:21:41 · 370 阅读 · 0 评论 -
Apollo 功能及源码讲解分析
详见:http://www.iocoder.cn/categories/Apollo/原创 2020-04-09 11:47:47 · 758 阅读 · 0 评论 -
HTTP/2笔记-流和多路复用
本部分将讲解HTTP/2协议中对流的定义和使用,其实就是在说HTTP/2是若何做到多路复用的。一。流和多路复用的关系1. 流的概念流(Stream),服务器和客户端在HTTP/2连接内用于交换帧数据的独立双向序列,逻辑上可看做一个较为完整的交互处理单元,即表达一次完整的资源请求-响应数据交换流程;一个业务处理单元,在一个流内进行处理完毕,这个流生命周期完结。特点如下:一个HTT...转载 2018-08-01 14:16:27 · 1409 阅读 · 0 评论 -
Protobuf 的 proto3 与 proto2 的区别
这是一篇学习笔记。在粗略的看了 Protobuf 的文档中关于 proto2 和 proto3 的说明后,记录下了几点 proto3 区别于 proto2 的地方。总的来说,proto3 比 proto2 支持更多语言但 更简洁。去掉了一些复杂的语法和特性,更强调约定而弱化语法。如果是首次使用 Protobuf ,建议使用 proto3 。 在第一行非空白非注释行,必须写: synt...转载 2018-08-01 14:50:38 · 1646 阅读 · 0 评论 -
Reactor模型
想象以下情形:长途客车在路途上,有人上车有人下车,但是乘客总是希望能够在客车上得到休息。传统的做法是:每隔一段时间(或每一个站),司机或售票员对每一个乘客询问是否下车。Reactor模式做法是:汽车是乘客访问的主体(Reactor),乘客上车后,到售票员(acceptor)处登记,之后乘客便可以休息睡觉去了,当到达乘客所要到达的目的地后,售票员将其唤醒即可。概念Reactor模式是基于...转载 2018-08-01 16:02:07 · 1568 阅读 · 0 评论 -
DUBBO: 解决异步调用返回值null的问题
dubbo异步调用变同步当consumer或provider配置async属性时,会有传递性,后面调用都会变异步,如果链路上有一个地方代码是同步方式,那么这个地方会返回null。解决:方法一:将所有链路上的代码改异步方式(Future);方法二:要么把异步改同步;方法一方式工作量可能较多,因为链路上的dubbo调用可能比较多,这里简单说下后一种方式在调用dubbo方法前,执...原创 2018-08-15 10:02:50 · 4884 阅读 · 2 评论 -
五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses /alphabetical)。我们在常见的开源协议如BSD,GPL,LGPL,MIT等都是OSI批准的协议。如...转载 2018-11-27 13:53:54 · 182 阅读 · 0 评论 -
数据结构 - 图
概念图的定义图(Graph)是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为: G(V,E)。其中,G 表示一个图,V 是图 G 中顶点的集合,E 是图 G 中边的集合。需要注意: 图中数据元素叫做顶点(Vertext)。 在图中,不允许没有顶点。若 V 是图的顶点的集合,那么,V 是非空 有穷集合。 图的任意两个顶点之间都可能有关系,它们的关...转载 2019-06-12 16:04:40 · 471 阅读 · 0 评论 -
领域驱动设计DDD+CQRS+DIP落地
在领域驱动设计的落地过程仁者见仁智者见智,这篇文章写的不错,值得参考:http://deepoove.com/blog/#/posts/69https://www.infoq.cn/article/alibaba-freshhema-ddd-practicehttps://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-archit...原创 2019-09-19 16:57:16 · 599 阅读 · 0 评论 -
HTTP/2笔记-帧
客户端和服务器端一旦握手协商成功接建立连接,端点之间可以基于HTTP/2协议传递交换帧数据了。一。帧通用格式下图为HTTP/2帧通用格式:帧头+负载的比特位通用结构:+-----------------------------------------------+| Length (24) |+---------...转载 2018-08-01 14:13:58 · 487 阅读 · 0 评论 -
DH算法原理
DH 是 Diffie-Hellman的首字母缩写,是Whitefield与Martin Hellman在1976年提出了一个的密钥交换协议。我个人倾向于称DH算法为 密钥协商协议而RSA算法是密钥交换算法。本篇分为几个部分,第一个部分介绍一下密钥交换的场景;第二部分介绍一下DH算法的的步骤,以及由该算法引出的一些问题;第三部分开始讲数学原理。数学原理可能涉及到数论、抽象代数,本篇尽量在每个公...转载 2018-08-01 11:40:02 · 29071 阅读 · 3 评论 -
微服务化的基石——持续集成
一、持续集成对于微服务的意义:拆之前要先解决合的问题在很多微服务化的文章中,很少会把持续集成放在第一篇,因为大多数的文章都会将如何拆的问题,例如拆的粒度,拆的时机,拆的方式。为什么需要拆呢?因为这是人类处理问题的本质方式:将一个大的复杂问题,变成很多个小问题解决。所以当一个系统复杂到一定程度,当维护一个系统的人数多到一定程度,解决问题的难度和沟通成本大大提高,因而需要拆成很多个工程,拆成很多个团队...转载 2018-02-27 20:29:33 · 493 阅读 · 0 评论 -
RFC文档:官网、中文RFC文档 及 HTTP/2相关文档
记录一下RFC的官方文档一、RFC官方网站: http://www.rfc-editor.org/ http://www.ietf.org/rfc.html RFC文档列表:http://www.rfc-editor.org/rfc/二、中文RFC文档: http://oss.org.cn/man/develop/rfc/defau...原创 2018-07-31 17:24:34 · 37029 阅读 · 7 评论 -
gRPC 服务端创建和调用原理解析
gRPC 是一个高性能、开源和通用的 RPC 框架,面向服务端和移动端,基于 HTTP/2 设计。由 Google 开发并开源,语言中立,当前支持 C、Java 和 Go 语言,其中 C 版本支持 C、C++、Node.js、C# 等。RPC 入门RPC 框架原理RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(...转载 2018-08-01 11:23:56 · 4964 阅读 · 0 评论 -
通用服务化方案
大家好,我今天的分享主要围绕以下几点,首先跟大家简要介绍一下微博服务化的演进过程,其次是微博自研跨语言RPC 框架 Motan 实现的一些关键技术要点,主要是跨语言方面,再次,结合目前市面上的一些Service Mesh 实现对比,给出基于 Motan-Go 的更符合微博场景的Weibo Mesh 实现。 最后,是我个人对于面向未来泛服务化架构的一些思考。一些同学对Service Mesh...转载 2018-08-01 11:26:00 · 1348 阅读 · 0 评论 -
gRPC服务发现&负载均衡
构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案:1、集中式LB(Proxy Model)在服务消费者和服务提供者之间有一个独立的LB,通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy等实现。LB上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,...转载 2018-08-01 11:28:30 · 5960 阅读 · 2 评论 -
谈谈 HTTP/2 的协议协商机制
在过去的几个月里,我写了很多有关 HTTP/2 的文章,也做过好几场相关分享。我在向大家介绍 HTTP/2 的过程中,有一些问题经常会被问到。例如要部署 HTTP/2 一定要先升级到 HTTPS 么?升级到 HTTP/2 之后,不支持 HTTP/2 的浏览器还能正常访问么?本文重点介绍 HTTP/2 的协商机制,明白了服务端和客户端如何协商出最终使用的 HTTP 协议版本,这两个问题就迎刃而解了。...转载 2018-08-01 11:35:34 · 1566 阅读 · 0 评论 -
SSL/TLS 握手过程详解
我们知道,HTTP 协议都是明文传输内容,在早期只展示静态内容时没有问题。伴随着互联网的快速发展,人们对于网络传输安全性的要求也越来越高,HTTPS 协议因此出现。如上图所示,在 HTTPS 加密中真正起作用的其实是 SSL/TLS 协议。SSL/TLS 协议作用在 HTTP 协议之下,对于上层应用来说,原来的发送接收数据流程不变,这就很好地兼容了老的 HTTP 协议,这也是软件开发中分层实现...转载 2018-08-01 11:37:08 · 797 阅读 · 0 评论 -
从业务的层面进行流量控制
之前产品线上发生过若干次因为tomcat连接池被耗尽而导致宕机的故障,而具体根源原因则各不尽相同。有因为调用和被调用的服务申请相同的分布式锁而导致死锁的,有因为发送内部或外部的JMS消息发生堵塞的,有因为某个存在性能问题的接口被较多调用导致的,还有某些超高频接口没有做好专门优化而导致的。。。 所有上述问题的本质解决,肯定是要针对各种问题根源,分别予以解决。解决死锁问题,外部接口原创 2015-08-21 15:00:51 · 2914 阅读 · 0 评论