netty 储存socket连接对象问题

在网上看到了很多代码储存socket连接都是写个map对象然后key是唯一id value是socket。这样写的话怎么实现集群呢,还有没有更好的写法?

阅读 2.9k
1 个回答

你首先要明白集群是什么意思。
集群简单的讲,就是使用很多个单体集合起来。但具体处理问题时,却是单体在处理。

讲到socket,会话也是一种资源,他是没办法大家一块处理的,必须具体到某个单体上面。

你可以将这个唯一的id放置到Redis上面,实现共享。但是socket是一个TCP连接,他是一种状态,是不能序列化的,也就是Redis上面可以有一个逻辑的引用。

比如:现在有A B C三个主机的集群,将所有的id都存储到共享的Redis里面。 具体使用时,从Redis中查询具体id所在的主机,然后再去通信。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题