自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 用t-io从零写一个像微信的IM(05):架构设计

关于架构将帅无能,累死三军;架构不行,耗死码农。架构之于软件,同地基之于大厦。地基腐则大厦塌,架构烂则软件败架构图架构解说1. 多级缓存两级是使用较多的一个流程,所谓两级缓存指的是本地缓存和分布式缓存,当本地缓存没有命中时,则去分布式缓存中获取数据;而本架构中说到了多级缓存,是将本地缓存又分为拦截器之前的缓存和业务数据缓存。拦截器之前的缓存指的是收到请求时,直接从请求路径中获取缓存,如果命中则直接返回;业务数据缓存比较大众,本文略过介绍2. 协议适配/转换web型.

2020-12-30 16:52:55 254

原创 用t-io从零写一个像微信的IM(04):IM协议设计

协议设计原则1. 安全鉴权和授权是安全的两大要素,协议设计时,鉴权和授权是必须要考虑进去的2. 高效高效包括开发高效和运行高效,开发高效要求协议易懂、易编码、易解码,运行高效要求编解码算法高效、没有多余无用的体积3. 可扩展既能满足现有需求,在未来发生较大需求变更时,协议也能适应协议格式参考协议格式说明当5个字节的消息头满足不了消息元数据时,可以增设二级消息头,譬如命令码为9899时,有二级消息头,二级消息头里重新定义业务命令码 碰到上传图片或文件的需求时,不建议走

2020-12-22 18:44:21 174

原创 用t-io从零写一个像微信的IM(03):网络框架选择

用t-io从零写一个像微信的IM(03):网络框架选择 网络框架的选择主要指服务器端,毕竟IM的技术门槛都在服务器端(这并不是说客户端不难,只是相对而言技术门槛不是那么高) 这里先给出结论,我们选择的是t-io,这里有一份《t-io技术白皮书》,可以参考一下 给出结论后,来说说为什么选择t-io。以IM的需求来说明为什么说选择t-io是个不错的思路 1. 既要支持socket又要支持websocket 既要支持socket又要支持websocket的网络框架很多,但是我们想的更多的是,这两个协议能...

2020-11-30 11:02:46 129

原创 用t-io从零写一个像微信的IM(02):团队组建

用t-io从零写一个像微信的IM(02):团队组建 决心要做一个靠谱的IM,优秀的研发团队是必不可少的,对于研发工程师,定了几条择人标准 必须熟练socket、多线程、数据结构、算法、HTTP协议 完整地经历过大型互联网项目,并且这个项目在技术上是成功的 有诚信、有担当、有毅力 很幸运,刚被忍痛解散的技术部的核心员工完整地满足了以上几条择人标准(像牛吧云播这种大型直播平台,工程师手上没点真本领,还真做不出来),顺势而为,团队组建相对轻松 总设计师:先让我顶上吧 服务端主程:熟悉t-io,经历过...

2020-11-25 16:04:26 131

原创 用t-io从零写一个像微信的IM(01):大背景

用t-io从零写一个像微信的IM(01):大背景 2017年 t-io官方上线 为了演示t-io的能力,在官网上挂了一个网页版的IM 这版IM主要用于”试验”,架构上没做太多周全的考虑,很快就沦为了弃婴。某天,无心插柳地这一版的源代码私下发给了小超,小超把这一版的代码作了一些修改,开源出去了,这就是后来的j-im,j-im在码云上的star数还够可以的 2018年 上海一家公司找我们合作开发一款带IM功能的社交平台,虽然合作并未成行,但这重新坚定了我要写一个完整IM的决心 从这一年的9月开始,...

2020-11-17 09:38:33 179

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除