去中心化分布式即时通讯引擎tim v2.0.1 发布

donnie · · 699 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

> Tim即时通讯引擎的去中心化分布式架构具有去中心化、分布式数据存储、支持大规模用户、即时通讯、安全性和隐私保护、高可用性和容错性以及可扩展性和灵活性等特点。能够有效地解决大规模分布式系统的设计和实现问题,并提高系统的性能、可用性和扩展性。 #### tim v2.0.1版本的更新内容 1. 修复了已知bug 2. 增加了大字符串协议Big String 3. 增加了大字节流协议Big Binary 说明:big string,big binary 是一种无格式的松散数据协议,主要应用场景在一些特殊的场景下,对类似thrift,json等特定格式的协议无法支持的情况下使用。这种两种松散的协议,可以支持一个数据包被终端分包多次发送的情况。 #### tim实现的开源实践项目 webtim 1. webtim在线访问地址:https://tim.tlnet.top 2. webtim项目本地部署:https://github.com/donnie4w/webtim-deploy 说明:作者已经为windows,linux, macos等操作系统, 写好启动脚本,并打包放置相应的webtim执行文件。只需要执行start脚本,便可以在本地一键启动webtim。启动后,可以在本地通过tim后台管理系统与tldb后台管理系统查看相关的数据。在webtim-deploy项目readme中有介绍。通过数据,可以了解更多tim的实现机制。 * 在linux或macos上 ,本地部署webtim时,启动可能出现一些错误,如 * ![](https://tlnet.top/f/1705822912_9928.jpg) **数据库生成binlog文件的权限问题:可以有两种方法解决** 1. 一是文件增加权限,如:chmod -R 777 tldb/_data/bin ;再重新运行 ./start.sh 2. sudo运行,如 sudo ./start.sh ![](https://tlnet.top/f/1705823155_20244.jpg) 成功启动的全过程: ![](https://tlnet.top/f/1705823184_4192.jpg) 最后出现 webtim start [:6060] 说明本地成功启动webtim ### Tim的架构特点 1. 去中心化:Tim采用去中心化的分布式架构,没有中心节点或控制单元。每个节点都是独立的,具有高度自治的特征。这种架构方式可以降低单点故障的风险,提高系统的可靠性和安全性。 2. 分布式数据存储:Tim采用分布式存储算法,将数据分散存储在多个数据库节点上。这种存储方式可以提高数据的可靠性和安全性,并且能够更好地抵御数据丢失或损坏的问题。 3. 支持大规模用户:Tim能够支持大规模用户同时在线,并保证消息的及时送达。通过优化的协议和序列化技术,Tim能够高效地处理海量数据和请求,确保消息的快速传输和可靠交付。 4. 即时通讯:Tim作为即时通讯IM引擎,强调信息的及时性和可达性。它采用高效的传输协议和序列化技术,优化消息的传递和接收,确保用户能够即时地交流和互动。 5. 安全性和隐私保护:Tim重视用户信息的隐私和安全。通过加密技术和去中心化身份验证等手段,确保用户数据的安全和隐私不受侵犯。同时,内部开发人员也无法直接查询用户及通讯信息,增加了数据的安全性。 6. 高可用性和容错性:Tim具有高可用性和容错性。由于采用去中心化分布式架构,即使某个节点出现故障,其他节点仍能继续工作,确保整体服务的连续性。这种设计方式提高了系统的可靠性和稳定性。 7. 可扩展性和灵活性: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官网](https://tlnet.top/tim) * [TIM开发使用文档](https://tlnet.top/timdoc) * [TIM源码地址](https://github.com/donnie4w/tim) * [在线项目体验](https://tim.tlnet.top/) * [TIM下载地址](https://tlnet.top/download) #### [tim实践系列文章 (文章持续更新中...)](https://github.com/donnie4w/Tim-Practical-Article) 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/22425182) 5. [《tim实践系列——虚拟房间的作用和如何使用》](https://tlnet.top/article/22425182) 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信息安全与账号系统》](https://tlnet.top/article/22425171) 10. [《tim实践系列——内置的好友关系和群组》](https://tlnet.top/article/22425170) 11. [《tim实践系列——消息撤回,阅后即焚 等功能如何开发》](https://tlnet.top/article/22425181) 12. [《tim实践系列——去中心化分布式架构特点》](https://tlnet.top/article/22425179) 13. [《tim实践系列——分布式数据存储与动态数据库扩容》](https://tlnet.top/article/22425176) 14. [《tim实践系列——如何架构支持百亿级别在线用户的即时消息系统》](https://tlnet.top/article/22425157) 15. [《tim实践系列——接入外部账号系统,配置关系型数据库》](https://tlnet.top/article/22425156) 16. [《tim实践系列——tim的限流,报文长度,连接数,请求频率》](https://tlnet.top/article/22425178) 17. 《tim实践系列——后台管理员接口的使用》 18. 《tim实践系列——账号安全措施》 19. 《tim实践系列——用户之间如何实现文件传输》 20. 《tim实践系列——微信实时音视频开发》 21. 《tim实践系列——抖音直播间的开发》 22. 《tim实践系列——多人实时视频会议,抖音直播间在线多人视频连线》 23. 《tim实践系列——如何实现对公众号订阅号等系统栏目的实时订阅》 24. 《tim实践系列——tim产生的数据统计与建议》 25. 《tim实践系列——tim配置系统参数要注意的地方》 26. 《tim实践系列——使用tim无数据库模式实现web IM》 ---------- ### tim 相关工程项目 1. go客户端 timgo: https://github.com/donnie4w/timgo 2. java客户端 atim: https://github.com/donnie4w/atim 3. js客户端 timjs:https://github.com/donnie4w/timjs 4. 后台接口示例 admintim: https://github.com/donnie4w/admintim 5. webtim项目 https://github.com/donnie4w/webtim 访问地址: https://tim.tlnet.top 6. tim客户端协议 [tim-protocol](https://github.com/donnie4w/tim-protocol) 7. [《tim实践系列文章》](https://github.com/donnie4w/Tim-Practical-Article) ---------- ### tim带来多方面的优势和作用 1. 提高开发效率:TIM提供了丰富的功能模块和接口,简化了即时通讯应用的开发过程,减少了重复造轮子和从头开始摸索的时间。 2. 保障安全性能:TIM具备强大的安全机制,能够保障用户数据和通信内容的安全性,防止数据泄露和恶意攻击。 3. 提供稳定服务:TIM能够提供稳定可靠的即时通讯服务,确保用户沟通的连续性和可靠性。 4. 支持多种平台:TIM可以跨平台、跨设备使用,支持多种操作系统和终端设备,满足不同用户的需求。 5. 丰富的扩展性:去中心化分布式的TIM具备超强扩展性,能够根据项目的需求进行水平扩展,方便进行二次开发和功能升级。 6. 降低维护成本:TIM可以降低大量运维成本,TIM集群,与分布式数据存储都依赖TIM本身算法完成,无需人为部署。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

699 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传