ImFire即时通讯系统构建(前言)
2024-10-12 14:27:26
缘起termtalk
一切起源于我对蘑菇街termtalk开源IM系统源代码的好奇,termtalk简称tt。无论如何,都应该先向tt致敬,开源实属不易。看了一些分析tt架构的文章,感觉还不错,说是能支持高并发高可用的。听说有一些公司也借用了该开源代码做产品,那tt应该还是不错的。但是正等我去打开tt服务端源码向学习一下的时候,感觉代码中不尽如意的地方不少了。看得不算仔细,但是架构中单点服务的位置太多了,例如route server只有一个,im客户端发的每一个消息都会广播到所有的msg server而不是目标用户的msg server,这些都对整个系统有严重负面影响。
再造一个新的IM
再造一个im,这是一个重复造轮子的过程。想凭一己之力超越腾讯qq的那是不现实的,但是弄出一个轻量级多端im这个可以有。我主要基于如下理由开展这一项目:
- 国外有很多好的开源im,国内目前似乎没有(有的告诉我一下),tt算不错,但是问题还很多。
- 平时多在windows平台开发,接触其他平台(特别是linux)的机会不多,趁此机会练手。
- 深入实践架构设计。
命名为ImFire的IM
名字并不重要,正所谓“不看广告看疗效"。目前,这个项目还是在很初级的阶段,在之后的随笔中,我将陆续分享我在开发Imfire中的需求设计,架构设计,具体实现,和碰到的各种问题。望大家共同见证。
最新文章
- TCP/IP——链路层
- ASP.NET MVC随想录——锋利的KATANA
- CURL命令详解
- Ember.js入门教程、博文汇总
- #include <;cstdio>;
- Java从零开始学四十五(Socket编程基础)
- LightOJ1201 A Perfect Murder(树形DP)
- 【转】.NET开发者必备的11款免费工具
- y combinator 做的一个调查_可以学习一下
- python中实现多线程的几种方式
- sshd服务---暴力破解应对策略
- 采用malloc分别分配2KB个人空间,然后,realloc调整到6KB、1MB、3MB、10MB场地,分别这五内存“A”、“B”、“C”、“D”、“E”灌装
- UNIX基础--用户和基本账户管理
- 存储linux RAID6被重建成RAID5的数据恢复解决方案
- 解读Batch Normalization
- 1094 和为k的连续区间(暴力)
- 记录一个elasticsearch 的索引templates
- ehcache缓存配置与参数说明
- P1164小A点菜
- ovs QOS
热门文章
- Google Chrome调试js入门
- 生成模型(Generative Model)与判别模型(Discriminative Model)
- SharedPreferences.Editor 的apply()与commit()方法的区别
- C#设计模式-享元模式
- Nginx重写
- 阿里云centos7搭建wordpress环境
- python发送邮件及附件
- 自用迷你版的Deferred
- ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(1)用户注册
- 【开源】OSharp3.0框架解说系列(6.2):操作日志与数据日志