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