本文是对上个月参加的技术沙龙总结,抱歉拖了这么长时间才更文,最近公司的事情有点忙,回家后根本就不想看到电脑,今天工做终于告一个段落,开始把以前的落下的文章补一补。java
先说说我为何参加这个技术沙龙。那天在csdn上闲逛,点击活动栏目,看到在南京有融云举办的线下沙龙活动。做为历来没有参加过线下沙龙活动的我,一直对这样的活动类型充满好奇,因此就点击了报名。在活动即将开始的前三天,我收到了短信通知和对应的参加码。算法
首先向你们简单介绍一个这个技术沙龙的主题——高质量、高并发的实时通讯架构设计与探索。json
活动概要
即时通信与实时音视频做为娱乐社交、电商购物、在线教育、生活服务、智能硬件等行业的核心功能,伴随着行业红利爆发,用户规模呈指数级增加,不断升级迭代架构,是保证用户体验的核心手段。网络
活动亮点
-
实时通讯架构设计技术干货分享架构
-
顶级技术专家面对面交流并发
沙龙主要是融云的几个工程师针对不一样的领域给出的一些解决方案分离。主要涉及sdk架构设计分享,日志系统的演变和问题解决分享,针对小游戏的实时交互通讯设计分享。高并发
其中让我印象比较深入的是最后一位讲师,为何呢。由于他讲到了一些个人知识盲区,起初的几位老师讲的也很是好,可是怎么说呢。讲的内容属于已知内容的一种精进,虽然学习到了新的知识,可是并不会产生什么太大的情绪波动。最后的这们讲师说到了Quic协议,在未参加本次论坛前,我根本就不知道Quic协议是什么,他的使用场景是什么,有什么样的好处。可是通过老师的讲解,我对此有了一个大概的了解,虽说在工做中不必定会使用到,可是横向知识向的提高也是能加提高重要的一环。当你真正碰到问题的时候,了解了技术方案越多,你才能够从中挑选出最符合当前场景的。学习
沙龙学习到的内容
第一点 protoibuf 和 json 的区别和好处
protoibuf 和 json 的区别和好处ui
Xml、Json是目前经常使用的数据交换格式,它们直接使用字段名称维护序列化后类实例中字段与数据之间的映射关系,通常用字符串的形式保存在序列化后的字节流中。消息和消息的定义相对独立,可读性较好。但序列化后的数据字节很大,序列化和反序列化的时间较长,数据传输效率不高。 Protobuf和Xml、Json序列化的方式不一样,采用了二进制字节的序列化方式,用字段索引和字段类型经过算法计算获得字段以前的关系映射,从而达到更高的时间效率和空间效率,特别适合对数据大小和传输速率比较敏感的场合使用。
protobuf的简单分析 优势:经过以上的时间效率和空间效率,能够看出protobuf的空间效率是JSON的2-5倍,时间效率要高,对于数据大小敏感,传输效率高的模块能够采用protobuf库架构设计
缺点:消息结构可读性不高,序列化后的字节序列为二进制序列不能简单的分析有效性;目前使用不普遍,只支持java,C++和Python;
第二点 了解quic协议的产生、优势、使用场景
一、quic是什么
Quic 全称 quick udp internet connection,即:快速UDP互联网连接。是由Google提出的基于UDP协议的多路并发传输协议。
二、quic的好处
1)经过减小往返次数,以缩短链接创建时间
(2)多路复用,解决HTTP/2队头阻塞问题
(3)使用FEC(前向纠错)恢复丢失的包,以减小超时重传
(4)使用一个随机数(CID)标志一个链接,取代传统IP + PORT的方式,使得切换网络环境如从4G到wifi仍然能使用以前的链接。
三、了解针对quic的实现库
服务端 caddy
客户端 quiche 或 quck-go
总结
经过这样的线下技术沙龙活动,能够帮助开发者拓展横向领域的知识面,分享技术,讨论知识,在时间容许的状况下,多参加参加拓宽本身的见识是看的挺好的。