默认

一套亿级用户的IM架构技术干货(上篇):整体架构、服务拆分等

查看数: 364170 | 评论数: 39 | 收藏 15
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-03-15 13:50

正文摘要:

1、引言 经历过稍有些规模的IM系统开发的同行们都有体会,要想实现大规模并发IM(比如亿级用户和数十亿日消息量这样的规模),在架构设计上需要一些额外的考虑,尤其是要解决用户高并发、服务高可用,架构和实现细 ...

评论

myl 发表于 5 个月前
太干了
softbin 发表于 1 年前
实在,受益匪浅
ZJoker 发表于 2 年前
大佬,goim那套方案和这个比,看着goim好像简化了很多少东西。。。
苏门答腊伟 发表于 2 年前
引用:JackJiang 发表于 2021-06-15 14:47
就这么说,如果把login->router这两个东西合二为一,不拆分开,你仔细想想是不是就好理解了。
作者之所 ...

还是没想明白为什么存储router的ip/port,是个无状态的下游才对,login无论调用哪个router都是一样的,这里的存储是为了什么呢。
huitailang66 发表于 2 年前
这效率太高了吧
JackJiang 发表于 2 年前
引用:BrainWong 发表于 2022-09-29 23:01
膜拜膜拜,结合站上其他内容,内容很明白了。真想用C++撸出来,跑一跑是什么样子的

说干就干,不要等
BrainWong 发表于 2 年前
膜拜膜拜,结合站上其他内容,内容很明白了。真想用C++撸出来,跑一跑是什么样子的
二月风格 发表于 2 年前
引用:JackJiang 发表于 2022-09-06 22:24
是的,会有延迟,而且异步是不可控的。
如果要受控,应该用rpc

非常感谢大佬
JackJiang 发表于 2 年前
引用:二月风格 发表于 2022-09-06 22:08
从kafka消息写入到redis中会不会有一定延迟,造成消息实时性低的问题呢,主要这个过程是异步的

是的,会有延迟,而且异步是不可控的。
如果要受控,应该用rpc
二月风格 发表于 2 年前
引用:二月风格 发表于 2022-09-06 22:08
从kafka消息写入到redis中会不会有一定延迟,造成消息实时性低的问题呢,主要这个过程是异步的

想请教和学习一下大佬们的建议
二月风格 发表于 2 年前
从kafka消息写入到redis中会不会有一定延迟,造成消息实时性低的问题呢,主要这个过程是异步的
二月风格 发表于 2 年前
虚心请教,文中架构先写入kafka,通过kafka写入redis和mysql中,如果流量太大kakfa产生了消息堆积
用户刚登陆,从redis取到的最近数据会不会有缺失呢
营业中 发表于 2 年前
引用:zhyf888 发表于 2021-03-23 22:02
真是亿级?

真的是亿级的
nwuking 发表于 3 年前
这里的online服务是怎样设计,部署的时候是只部署一个,所有login都往这一个里记录吗?部署多个是不是要同步,那么这和一个有什么区别?如果多个不用同步,查找的时候是不是太慢了?

在线求解

JackJiang 发表于 3 年前
引用:LBY 发表于 2021-10-28 11:44
嗯,撇开文件存储,单纯是消息内容,IM服务直接访问数据库这种操作常见吗?这个分离的设计模式,感觉存储 ...

im里要存储的东西其实很简单,就那几样,相比传统的信息系统来说,简单多了,不用把它想什么啥哈的
LBY 发表于 3 年前
引用:JackJiang 发表于 2021-10-28 10:52
im里有各种文件的上传下载,这些都是存储,比如语音留言的AMR语音文件,图片消息对应的图片,大文件消息 ...

嗯,撇开文件存储,单纯是消息内容,IM服务直接访问数据库这种操作常见吗?这个分离的设计模式,感觉存储系统部分的工程实现不太好做
JackJiang 发表于 3 年前
引用:LBY 发表于 2021-10-28 10:39
想问站长一个问题:方案中,存储系统的意义有哪些?我们一般业务服务,都是直连数据库,做一些业务相关的数 ...

im里有各种文件的上传下载,这些都是存储,比如语音留言的AMR语音文件,图片消息对应的图片,大文件消息对应的文件,这些都需要存储管理起来
LBY 发表于 3 年前
想问站长一个问题:方案中,存储系统的意义有哪些?我们一般业务服务,都是直连数据库,做一些业务相关的数据库读写操作,如果把存储的逻辑单独出来,一来存储服务很难做到跟业务服务透明化(需要有一套很健全的存储请求规范才能适配业务服务的全方位请求),二来 存储服务与其他服务之间的通道带宽是否很容易成为瓶颈?
JackJiang 发表于 3 年前
引用:LBY 发表于 2021-10-19 14:11
如果login需要进行第三方系统鉴权请求,存在一定的延迟风险,是否应该考虑从 长链接保持服务中拆分出来呢? ...

你考虑的是对的,一般就是这样做的

返回顶部