在网上看到了很多代码储存socket连接都是写个map对象然后key是唯一id value是socket。这样写的话怎么实现集群呢,还有没有更好的写法?
在网上看到了很多代码储存socket连接都是写个map对象然后key是唯一id value是socket。这样写的话怎么实现集群呢,还有没有更好的写法?
8 回答6.6k 阅读
2 回答4.3k 阅读✓ 已解决
4 回答4.3k 阅读
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
7 回答1.8k 阅读
1 回答4.1k 阅读✓ 已解决
你首先要明白集群是什么意思。
集群简单的讲,就是使用很多个单体集合起来。但具体处理问题时,却是单体在处理。
讲到socket,会话也是一种资源,他是没办法大家一块处理的,必须具体到某个单体上面。
你可以将这个唯一的id放置到Redis上面,实现共享。但是socket是一个TCP连接,他是一种状态,是不能序列化的,也就是Redis上面可以有一个逻辑的引用。
比如:现在有A B C三个主机的集群,将所有的id都存储到共享的Redis里面。 具体使用时,从Redis中查询具体id所在的主机,然后再去通信。