> tim2.0.0 是一个去中心化的分布式im引擎,分布式数据存储,零依赖,支持nat穿透,支持大规模集群,支持多种数据库,支持海量数据流分发。tim2.0.0是作者通过长时间实践并结合 xmpp设计理念开发的im引擎。
>[来源《去中心化分布式即时通讯引擎tim2.0.0》](https://tlnet.top/article/22425130 "来源《去中心化分布式即时通讯引擎tim2.0.0》")
[tim官网与文档](https://tlnet.top/tim)
[tim源码地址](https://github.com/donnie4w/tim)
----------
### tim的特点
* 解决大规模节点集群问题,去中心化架构,无第三方服务依赖
* 解决海量通讯数据存储问题,分布式数据存储,支持数据库在线动态扩容
* 高性能,协议体积下,序列化效率高
* 支持所有的通讯模式,通过tim可以设计开发类似微信,抖音,QQ,阅后即焚等等app的通讯功能
* tim从底层设计支持流数据分发,通过tim可以支持类似抖音的 海量用户直播间 等功能
* 通过tim可以搭建通讯服务 云平台
* tim自带监控后台
### tim功能简介
1. 去中心化分布式架构,支持Nat穿透集群节点,天然分布式架构,无需特殊配置,无最小节点数限制,零依赖,支持大规模集群。
2. 支持多种数据库:TLDB,Mysql,PostgreSQL ,SQL Server,Oracle,Oceanbase等
3. 高度归纳IM通讯模式,从底层支持1:1,1:N,N:N 通讯模式
4. 从底层支持流数据发送,轻松支持直播,实时音视频等功能的开发
5. 重视数据安全,从账号到通讯数据,都进行换算或加密,保证用户信息安全
6. 实现分布式存储数据,解决海量数据存储的问题,支持动态扩容数据库节点。
7. 具备单机高性能特点,协议序列化效率高,体积小。
8. 从底层支持各种通讯类型,包括普通信息,撤回信息,信息阅后即焚等
9. 支持各种自定义用户状态,对标QQ等类型APP的状态功能
10. 支持群组,对标QQ,微信等类型APP群组功能
11. 支持多人实时流数据发送,对标抖音直播,视频连线,或多人实时视频会议等app的功能
12. 支持同账号多终端同时登录,并支持通过配置进行限制,对标QQ,微信多终端登录功能
13. 支持thrift压缩,json,big string,big binary等多种形式的客户端协议
### tim的性能
tim传输具备协议体积小,序列化效率高,定位快的特点
* 千人大群,千人同时在线,一个tim服务节点的场景,消息不延迟
* 万人大群,万人同时在线,一个tim服务节点的场景,消息延迟2-5秒
* 万人大群,万人同时在线,三个tim集群节点的场景,消息不延迟或延迟小于2秒
### tim的安全性
* tim支持安全协议通讯
* tim对用户属性资料及所有通讯数据都进行加密存储
* tim不存储用户账号等信息,tim是通过内置用户账号进行用户通讯
所以使用tim是信息安全的,即使内部开发人员,在不进行额外记录的情况下,也无法直接查询用户及通讯信息。当然,这是针对使用tim内置用户系统的情况,如果使用tim接入外部业务用户系统,则用户信息不受tim操作,但通讯信息依旧是加密存储的。
数据库存储示例截图:(乱码部分为加密数据)
![4760.jpg](https://static.golangjob.cn/231212/735f51937566c80c3f8aa0c05aae5bfd.jpg)
![23999.jpg](https://static.golangjob.cn/231212/a15fd4b04bf82f1b6ce34ef472aced12.jpg)
----------
### tim实践系列文章
1. [《tim实践系列——tim协议与其他格式协议的比较》](https://tlnet.top/article/22425142)
2. [《tim实践系列——tim设计来源与设计模式》](https://tlnet.top/article/22425137)
3. [《tim实践系列——如何使用TimMessage自定义各种消息》](https://tlnet.top/article/22425173)
4. [《tim实践系列——如何使用TimPrecence自定义各种用户状态》](https://tlnet.top/article/22425172)
5. 《tim实践系列——虚拟房间的作用和如何使用》
6. [《tim实践系列——用户如何实现 隐身,在线,忙碌等状态》](https://tlnet.top/article/22425175)
7. [《tim实践系列——消息特点和如何在实际业务中使用》](https://tlnet.top/article/22425174)
8. [《tim实践系列——tim如何限制一个账号多个终端登录》](https://tlnet.top/article/22425168)
9. 《tim实践系列——tim内置的账号系统与登录账号区别》
10. 《tim实践系列——内置的好友关系和群组》
11. 《tim实践系列——消息撤回,阅后即焚 等功能如何开发》
12. 《tim实践系列——用户之间如何实现文件传输》
13. 《tim实践系列——微信实时音视频开发》
14. 《tim实践系列——抖音直播间的开发》
15. 《tim实践系列——多人实时视频会议,抖音直播间在线多人视频连线》
16. 《tim实践系列——如何实现对公众号订阅号等系统栏目的实时订阅》
17. 《tim实践系列——去中心化分布式架构特点》
18. 《tim实践系列——分布式数据存储与动态数据库扩容》
19. 《tim实践系列——如何架构支持百亿级别在线用户的即时消息系统》
20. 《tim实践系列——接入自定义账号系统,配置关系型数据库》
21. 《tim实践系列——后台管理员接口的使用》
22. 《tim实践系列——账号安全措施》
23. 《tim实践系列——tim服务器如何限流,限制消息体大小,连接数,发信频率等》
24. 《tim实践系列——tim产生的数据统计与建议》
25. 《tim实践系列——tim配置系统参数要注意的地方》
26. 《tim实践系列——使用timjs实现的web版即时通讯项目webtim》
27. 《tim实践系列——使用tim无数据库模式实现web IM》
### tim监控后台
![14524.jpg](https://static.golangjob.cn/231212/f692e96f444637e9a48652e36c5ff3a2.jpg)
![5064.jpg](https://static.golangjob.cn/231212/1b1e360c12d1faf7ffb84a432ab5b78f.jpg)
----------
### webtim
webtim是tim的功能示例项目,使用 tim客户端timjs开发,除了流数据的使用,展示了基本的用户通讯与群功能,功能如 用户注册,用户上线,离线,加好友,基本通讯,离线数据,拉取聊天数据,建群,加群,退群,踢出群等等功能,当然部分接口没有示例的如拉黑,修改资料等,这些请在tim文档上查询或 等待后续 webtim的完善.
webtim的业务使用timjs完成,所有逻辑功能前端页面中处理完成。
webtim的源码地址:https://github.com/donnie4w/webtim
webtim在线访问地址:https://tim.tlnet.top
#### webtim的功能截图:
![29553.jpg](https://static.golangjob.cn/231212/34e7ad3fec1fa689bb3bdbc82f10fe8f.jpg)
![24955.jpg](https://static.golangjob.cn/231212/b5381cce7794915e86cacf0ecf8fd5f0.jpg)
![4183.jpg](https://static.golangjob.cn/231212/b327c38552b1a9b8510a3b2a25c18ee9.jpg)
![3559.jpg](https://static.golangjob.cn/231212/6df91f301c5cc1aacfa5315be1bbfc26.jpg)
![24280.jpg](https://static.golangjob.cn/231212/49b765907cc3d672f0732c39ee60f087.jpg)
----------
有任何问题或建议请Email:donnie4w@gmail.com或 https://tlnet.top/contact 发信给我,谢谢!
有疑问加站长微信联系(非本文作者)