默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
初次做一个类似于IM长连接的位置共享系统,请大家赐教
阅读(36662) | 评论(4 收藏1 淘帖
我想做一个类似IM长连接功能的位置共享服务 查看了一些资料
初步设想是用Netty集群结合Kafka来做,但是有几点关键的概念不是很明确
我的初步设想如下

■消息推送接受服务(MessagesService)(接受长连接)
1.  让Netty跑在SpringBoot上,把SpringBoot做成DiscoveryClient注册到注册中心

■服务发现Service
2.  在做一个服务发现Service,也注册到注册中心,利用SpringCloud的功能去拉取MessagesService服务列表后自己做轮询策略,确定长连接提供服务器的IP地址及端口
(内网地址需要映射成外网地址)

■总体流程设想如下
手机客户端发送请求长连接IP及端口的获得请求
   →服务发现Service根据自己的轮询策略返回长连接提供Service的连接IP及端口
      →手机客户端根据返回的IP及服务端口利用Socket直连到MessageService,建立长连接通道


■ 问题
1. 这种方案有没有致命性的问题,如果有请提示一下
2. 所有的Netty服务器都要暴露给外网,提供外网IP和连接Port么,还是会在Netty服务器前搭建一个支持长连接的反向代理呢(Nginx可以做的到么)

真是第一次做没有经验,请老师给些指点


即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:即时通讯安全篇(七):用JWT技术解决IM系统Socket长连接的身份认证痛点下一篇:求助IM服务器无法主动发送消息给客户
推荐方案
评论 4
你的方案我看了,只说一点:在你单机方案做的成熟之前,一定不要考虑搞集群。
这种长连接通信项目,网络通信本身就已经很复杂了,再加上移动弱网的特殊性,是难上加难。
如果一起步,还要加上你集群的技术复杂性,你确定你能hold住这么多技术栈吗。。

所以,我的建议是:前期把什么够屁集群理论和架构都放一边,踏踏实实把单机或单实例实的稳稳当当后于说。另外,现在的通信服务端的并发可以做到很大,除非你要干死微信、qq这样的巨头,一般来说单实例的应用规模就很可观了,最多到时加一个高可用方案,就很好了。

总之,我理解的架构就是:产品到了什么阶段什么什么事,千万不要步子太大,蛋会扯的疼。架构就是就够用就好。真心跟你说这些。

另外,移动网的一些特性,你得好好掌握一下:
现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障
移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”
移动端IM开发者必读(二):史上最全移动弱网络优化方法总结

社区里的资料非常丰富,建议动手前,多看各种资料,动起手来就更有信心了。整理分类的资料在这里:http://www.52im.net/forum.php?mo ... id=8&fromop=all
长连接搞反向代理不合适吧,
反向代理的原理适合http这种短连接,
长连接完全不是那么回事呢,传统的web系统跟im这类的应用差别还是很大的,别混为一谈了呀
签名: 周末了,可以浪了
引用:Morgan 发表于 2018-12-01 19:21
长连接搞反向代理不合适吧,
反向代理的原理适合http这种短连接,
长连接完全不是那么回事呢,传统的web ...

谢谢您宝贵的意见
引用:Morgan 发表于 2018-12-01 19:21
长连接搞反向代理不合适吧,
反向代理的原理适合http这种短连接,
长连接完全不是那么回事呢,传统的web ...

好的 谢谢了
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部