- 博客(8)
- 收藏
- 关注
原创 用t-io从零写一个像微信的IM(05):架构设计
关于架构将帅无能,累死三军;架构不行,耗死码农。架构之于软件,同地基之于大厦。地基腐则大厦塌,架构烂则软件败架构图架构解说1. 多级缓存两级是使用较多的一个流程,所谓两级缓存指的是本地缓存和分布式缓存,当本地缓存没有命中时,则去分布式缓存中获取数据;而本架构中说到了多级缓存,是将本地缓存又分为拦截器之前的缓存和业务数据缓存。拦截器之前的缓存指的是收到请求时,直接从请求路径中获取缓存,如果命中则直接返回;业务数据缓存比较大众,本文略过介绍2. 协议适配/转换web型的客户端,用webs
2020-12-30 11:05:42
256
3
原创 用t-io从零写一个像微信的IM(04):IM协议设计
协议设计原则1. 安全鉴权和授权是安全的两大要素,协议设计时,鉴权和授权是必须要考虑进去的2. 高效高效包括开发高效和运行高效,开发高效要求协议易懂、易编码、易解码,运行高效要求编解码算法高效、没有多余无用的体积3. 可扩展既能满足现有需求,在未来发生较大需求变更时,协议也能适应协议格式参考协议格式说明当5个字节的消息头满足不了消息元数据时,可以增设二级消息头,譬如命令码为9899时,有二级消息头,二级消息头里重新定义业务命令码碰到上传图片或文件的需求时,不建议走IM协议,而是走HT
2020-12-22 10:57:12
651
1
原创 用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-26 09:57:38
238
原创 用t-io从零写一个像微信的IM(02):团队组建
用t-io从零写一个像微信的IM(02):团队组建决心要做一个靠谱的IM,优秀的研发团队是必不可少的,对于研发工程师,定了几条择人标准必须熟练socket、多线程、数据结构、算法、HTTP协议完整地经历过大型互联网项目,并且这个项目在技术上是成功的有诚信、有担当、有毅力很幸运,刚被忍痛解散的技术部的核心员工完整地满足了以上几条择人标准(像牛吧云播这种大型直播平台,工程师手上没点真本领,还真做不出来),顺势而为,团队组建相对轻松总设计师:先让我顶上吧服务端主程:熟悉t-io,经历过热波直播
2020-11-17 19:02:51
154
原创 用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-16 14:38:27
338
1
转载 Mysql索引知识详谈
原文地址:https://www.t-io.org/11599848676441538561. 索引的重要性索引之于数据表,相当于检字表于汉语字典,设想让你在没有检字表的情况下从字典中找出一个“武”字,你会多么无助,如果用检字表,我们一眼就能找出它在第509页数据库服务器用索引去找到相应的记录,相当于我们使用检字表去找相应的字[外链图片转存失败(img-RukNbfD8-1566035...
2019-08-17 17:52:47
121
转载 Tio-Android简单使用篇
一、TioClient初始化1.获取IM服务器地址// 创建Tio客户端TioClient mClient = new TioClient();ImServerAddress address = mClient.requestAddress(null);String ip = address.getIp();int port = address.getPort();2.初始化T...
2019-08-14 09:10:22
1592
1
转载 代码分享:用java备份MySQL数据库
原文地址:https://www.t-io.org/11574564561408573441. 前言t-io官网的数据库都会定时备份,并且可以通过http直接下载到本地(这个当然需要特权,不是人人有这个操作权限),为了操作的灵活性,采用java来实现MySql的备份2. 核心代码package org.tio.sitexxx.service.tool;import java.io.Bu...
2019-08-13 13:43:35
92
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人