默认

跟着源码学IM(四):拿起键盘就是干,教你徒手开发一套分布式IM系统

查看数: 144727 | 评论数: 21 | 收藏 15
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-10-14 12:43

正文摘要:

本文由原作者“crossoverJie(陈杰)”原创分享,即时通讯网收录时有改动和修订,感谢原作者。 0、系列文章 《跟着源码学IM(一):手把手教你用Netty实现心跳机制、断线重连机制》《跟着源码学IM(二):自已开发IM很 ...

评论

panz 发表于 1 年前
非常感谢,获益良多
52imuser 发表于 1 年前
不错不错,学习第三天
小农之子 发表于 3 年前
非常不错,赞
JackJiang 发表于 3 年前
引用:逍遥小子 发表于 2021-05-06 18:22
像现在流行的微服务,有微服务网关这个中间件,个人感觉在http无状态连接场景用的多。
倒是没有广泛见过 ...

你读一下这篇《谈谈移动端 IM 开发中登录请求的优化》,注意一下LBS这个东西
逍遥小子 发表于 3 年前
引用:JackJiang 发表于 2021-05-06 13:54
所谓的网关,只是个名字,并不是什么标准,没有严格定义

像现在流行的微服务,有微服务网关这个中间件,个人感觉在http无状态连接场景用的多。
倒是没有广泛见过tcp网关这个概念。请教下楼主,im架构里面是不是接入层大部分都是用tcp-server集群来实现接入层的?而不是网关。
  楼主你说的没有严格定义是不是这两个是同一个概念
JackJiang 发表于 3 年前
引用:逍遥小子 发表于 2021-05-06 12:22
你好,楼主,请问client router 架构适合用网关作为入口嘛?

所谓的网关,只是个名字,并不是什么标准,没有严格定义
逍遥小子 发表于 3 年前
你好,楼主,请问client router 架构适合用网关作为入口嘛?
JackJiang 发表于 3 年前
引用:云飞落灯花 发表于 2021-04-23 10:27
你说的对,当socket断开的时候可以尝试 通过http找zk把存活的拉下来,或者本地内存在随机连接一个。

...

前者可以扩展为LBS负载均衡架构,这是中大型IM系统里必备的
云飞落灯花 发表于 3 年前
引用:JackJiang 发表于 2021-04-22 23:36
im由两种服务组成:socket长连接和http短连接,socket长连接是可以实时双向通信的,它就可以解决你疑问里 ...

你说的对,当socket断开的时候可以尝试 通过http找zk把存活的拉下来,或者本地内存在随机连接一个。

想问一下 这种架构 client->router  然后在直连server 跟 client直接连域名的方式拿到ip再去练server 这两种有什么区别 那个更好呢
JackJiang 发表于 3 年前
引用:云飞落灯花 发表于 2021-04-22 20:36
作为一枚im新手,刚才看到之后一直在思考,这个架构的client端是不是不能是 ios、pc、桌面版、小程序呢?
...

im由两种服务组成:socket长连接和http短连接,socket长连接是可以实时双向通信的,它就可以解决你疑问里的问题了。
云飞落灯花 发表于 3 年前
作为一枚im新手,刚才看到之后一直在思考,这个架构的client端是不是不能是 ios、pc、桌面版、小程序呢?
因为我理解,改架构的 router 主要作用是使用zk发现服务,然后拿到ip端口号在直连server。ios、pc这种应该是无法使用router层吧?
想到这突然想起来,可以通过http请求router,然后各个client在分别实现内存缓存,但好像没办法监听宕机或者加机器的情况吧。好纠结。
JackJiang 发表于 4 年前
引用:陪白 发表于 2020-10-21 09:36
大佬 请问一下 如果数据多了,也就是历史聊天记录是通过定时任务删除的吗?如果是的话,定时时间一般是几 ...

准确地说是定时转储,存到冷数据表里,供产品运营后台查阅。定时时间按自已app的运行情况来定啦,消息堆积在服务端性能可承受范围就可以
陪白 发表于 4 年前
引用:JackJiang 发表于 2020-10-20 15:39
作者的实现里,发消息是通过http来实现的

大佬 请问一下 如果数据多了,也就是历史聊天记录是通过定时任务删除的吗?如果是的话,定时时间一般是几点?
JackJiang 发表于 4 年前
引用:陪白 发表于 2020-10-20 14:28
请问一下 这个系统的设计哪里有问题?瓶颈在哪里?能详细说一下不

作者的实现里,发消息是通过http来实现的
陪白 发表于 4 年前

请问一下 这个系统的设计哪里有问题?瓶颈在哪里?能详细说一下不
JackJiang 发表于 4 年前
引用:王逸宸 发表于 2020-09-14 10:41
自己调试玩玩没事,高并发下,这样不行,会影响性能

是的
JackJiang 发表于 4 年前
引用:burukeYou 发表于 2019-12-31 15:05
**** 作者被禁止或删除 内容自动屏蔽 ****

肯定会有影响。实话实说,本文作者应该是第一次写im,不足的地方比较明显。
不过,对于新手来说,原理比代码更重要。
总之,还是要感谢原作者的分享。
王逸宸 发表于 4 年前
引用:burukeYou 发表于 2019-12-31 15:05
**** 作者被禁止或删除 内容自动屏蔽 ****

自己调试玩玩没事,高并发下,这样不行,会影响性能
burukeYou 发表于 5 年前
为什么发送聊天消息要走http,不走tcp,性能会有影响吗

返回顶部