自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

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