首页 > 编程知识 正文

websocket集群session共享,cookiesession共享

时间:2023-05-05 07:27:04 阅读:32045 作者:546

Websocket Session共享解析(方案1 ) Websocket Session不能直接序列化存储,而且用户请求时开始创建与群集中的a节点的链接,将该Session带到b节点后再保存用户

因此,为了使Session看起来像是共享的,我的解决方案采用了触发web套接字反向推送的订阅式队列。 想法如下图所示。

Websocket Session共享 思路图解释:模块1 :此处不做任何说明。 因为每个用户只创建一个Session,所以当用户再次链接到第二个节点时,第一个节点上的Session将关闭并销毁。 每个节点使用“静态”(static )成员变量映射当前节点的所有web套接字会话)。

模块2 )因为每个节点存储每个节点的所有Websocket Session,所以只需要确定当前节点上是否存在当前用户的Websocket Session,如果存在,则反转消息即可。

模块3 )如果有消息需要通过Websocket推送至相应的用户,但不知道该用户位于哪个节点,请通过任务调度模块将消息放入MQ中订阅然后推送。

Websocket Session共享解析(方案2 )实际共享的是在群集环境中通过轮询请求(例如HA/Nginx )来减轻节点压力,如果用户可能被分配到多个节点,则可以共享散列(例如IP ) 解析用户只分配给一个节点,Session共享不存在。 这样的中间件有很多。 正如我们的“伞神”提出的那样,只要采用蚂蚁“模块二”就可以解决。 还有很多其他的。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。