我一开始的思路是本地存储连接的 channel,如果要找到某一个连接,就使用 MQ 进行广播,所有客户端拿到消息后,在本地进行查找,如果有 channel,则进行通讯。
一开始用阿里的 rocketmq,进行的消息广播,没啥问题,就是一天每个 topic2 块钱。
看了一下 rabbitmq,广播模式也是发给交换机下的某些队列,rabbitmq 能不能多个消费者同时消费一个队列
或者有什么别的办法,小弟万分感谢
1
q13859601 2018-11-30 12:27:58 +08:00 1
采用路由算法在连接的时候连接到指定 netty 服务器,然后通信的时候通过同样的算法直达 nettyserver,或者在注册的时候将连接信息保存到 zk 等介质存储,靠 mq 广播有点曲径救国吧,而且性能也很低下
|
2
cyhulk 2018-11-30 15:18:20 +08:00
用什么 mq 都不如用一个门面的 server 来的实在
|
3
skyFuture 2018-11-30 15:21:05 +08:00
netty 为啥叫做集群呢? netty 只是一个通信的框架呀~~
|
7
hcymk2 2018-11-30 17:00:46 +08:00
估计是前面加个负载均衡器(haproxy , nginx tcp proxy )
|
8
javen73 OP 感谢以上大佬,我还是老老实实用阿里的 rocketmq 做吧,后期再研究
|
9
goodspb 2018-11-30 18:19:42 +08:00 via iPhone
所以是问有哪些来源的 mq 吗?
|
10
honeycomb 2018-11-30 18:53:46 +08:00 via Android
@javen73 还有个类似的办法是把 channel 和 netty 的示例关联信息缓存到 Redis ( zoo keeper 也是差不多的道理),你要查的时候直接问 Redis 就可以了,这样一来开发的任务量应该不会很大
|
13
zhaishunqi 2018-12-10 13:12:57 +08:00
@Kaiv2 我们也是这么做的.channel 上线的时候,把对应关系存到 redis.后来要广播,直接那到对应的 netty 服务器,然后直接告诉它要广播就行了.
|