默认

通俗易懂:基于集群的移动端IM接入层负载均衡方案分享

查看数: 183128 | 评论数: 25 | 收藏 7
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-05-08 12:02

正文摘要:

1、前言 要开发一个真正能用于生产环境的移动端IM系统,难度还是比较大的,因为移动端IM系统是多种技术手段的综合应用:包括移动端网络编程、通信安全、高性能互联网架构等等,尤其在当下IM技术相对封闭、实践资料 ...

评论

ZJoker 发表于 2 年前
可不可以用nginx+openRestry的方式,套一层。实现动态负载均衡。直连接入层服务,如果机器服务很多的话,岂不是要很多的外网IP?
ZJoker 发表于 2 年前
有这么多外网ip给你用吗。看这结构,如果业务很大,接入层机器很多,岂不是要很多外网ip?有这么多外网ip给你用?
JackJiang 发表于 3 年前
引用:wzq1915414095 发表于 2022-01-16 21:03
大佬,我可不可以理解为,客户端在登陆的时候实际上不是直接去连接真实的IM服务端,而是先通过http请求获得 ...

是的,在正经的架构中,这台前置服务器,一般被称为LBS服务器,你看看这篇《谈谈移动端 IM 开发中登录请求的优化》文章中的LBS,道理是一模一样的。
wzq1915414095 发表于 3 年前
大佬,我可不可以理解为,客户端在登陆的时候实际上不是直接去连接真实的IM服务端,而是先通过http请求获得一个IM服务端的ip,然后再去通过http响应的ip地址去连接真正的IM服务端?
JackJiang 发表于 4 年前
引用:csj 发表于 2021-05-18 15:52
如果有很多服务器,这个时候client-A 并不知道client-B 挂在哪台服务器下。这个时候服务器要怎么进行转发 ...

是啊,很多人张口就是im集群的,哪有那么简单
csj 发表于 4 年前
引用:JackJiang 发表于 2021-05-18 14:38
在server-1和server-2间用rpc进行消息转发

如果有很多服务器,这个时候client-A 并不知道client-B 挂在哪台服务器下。这个时候服务器要怎么进行转发,广播,或者用redis 映射 用户挂载的服务器信息,但是这样下来群聊就变得很复杂了,IM集群好难啊
JackJiang 发表于 4 年前
引用:csj 发表于 2021-05-17 17:27
大佬们,如果client-A 挂在了server-1下面, clietn-B 挂在server-2下面 这个时候client-A和client-B怎么通 ...

在server-1和server-2间用rpc进行消息转发
csj 发表于 4 年前
大佬们,如果client-A 挂在了server-1下面, clietn-B 挂在server-2下面 这个时候client-A和client-B怎么通讯啊,这个时候服务做不了转发吧,如果是群聊这消息。。。我裂开
JackJiang 发表于 4 年前
引用:weixiaoyao 发表于 2021-03-30 18:24
我们主要做在线教育,学生稍微多点

能做成这个体量,不错啊
weixiaoyao 发表于 4 年前
引用:JackJiang 发表于 2021-03-29 17:23
你这个量对于市面上的im来说,不小啊

我们主要做在线教育,学生稍微多点
JackJiang 发表于 4 年前
引用:weixiaoyao 发表于 2021-03-29 15:43
我们目前也是用这种方案,20年的时候用户300多万,春节在线并发30多万 ~ 50万之间,基本稳定

你这个量对于市面上的im来说,不小啊
weixiaoyao 发表于 4 年前
我们目前也是用这种方案,20年的时候用户300多万,春节在线并发30多万 ~ 50万之间,基本稳定
JackJiang 发表于 6 年前
引用:一夕 发表于 2019-02-26 13:13
我们用户的量极少,都是政府和我们公司运维人员,真正的并发量在于下面的智能终端。

能把这样的架构理清搞通,很不错了
一夕 发表于 6 年前
引用:JackJiang 发表于 2019-02-26 13:10
你们的产品,现在运营用户规模有多少了?

我们用户的量极少,都是政府和我们公司运维人员,真正的并发量在于下面的智能终端。
JackJiang 发表于 6 年前
引用:一夕 发表于 2019-02-26 12:59
方案很赞,和当初我们的方案如出一辙,我们定义了一个【注册中心】【数据上报中心】用于解耦,进一步进行负 ...

你们的产品,现在运营用户规模有多少了?
一夕 发表于 6 年前
方案很赞,和当初我们的方案如出一辙,我们定义了一个【注册中心】【数据上报中心】用于解耦,进一步进行负载均衡
游客 发表于 6 年前
引用:JackJiang 发表于 2018-08-21 12:00
集群的情况下没有办法保证每次连接的都是同一台,也没有必要每次都连同一台服务器

感谢,多读了几遍理解了,其实就是说 某一次TCP长连接过程中,这次长连接的所有请求都是在同一台服务器上。但是这个用单机  tcp-im-server 的请求一致性怎么理解呢?
JackJiang 发表于 6 年前
引用:chiya 发表于 2018-08-21 10:53
文中:tcp-im-server怎么快速保证请求一致性?
单机。 这个怎么理解呢?对于同一个个client 保证每次长连 ...

集群的情况下没有办法保证每次连接的都是同一台,也没有必要每次都连同一台服务器
游客 发表于 6 年前
文中:tcp-im-server怎么快速保证请求一致性?
单机。 这个怎么理解呢?对于同一个个client 保证每次长连接都是同一个 server?

返回顶部