web集群部署(实例大于等于2个),nginx作为中间件时候,后端websocket有时候消息无法传递给客户端
来源:互联网 发布:淘宝成功之处 编辑:程序博客网 时间:2024/06/15 02:55
最近公司有一个需求:新订单需要及时提醒到后台管理者,基于这一点我决定采用Websocket来实现。
当我把项目部署到生产环境的时候发现一个问题:
建立了Websocket连接后,每当有新的订单发起,客户端都会受到新订单提醒。这时候就遇到一个问题,新订单进来之后 客户端有时候会有提醒 有时候却没有提醒,并且 Websocket 状态一直是开启。
经过一系列排查发现,我的web项目做了 集群部署 分别占用 8500,8501,8502 端口 ,客户端请求nginx的时候 会随机分配一个 实例 进行websocket 连接。在这种情况下 如果客户端的连接 不是和一开始建立连接的实例一样的话,是监听不到消息的。
因此我的解决方案是 修改nginx 的轮询策略 ,改为 ip_hash,一个ip的用户就分到指定的一台实例。
如果有大佬有更好的解决方案 请留言
阅读全文
1 0
- web集群部署(实例大于等于2个),nginx作为中间件时候,后端websocket有时候消息无法传递给客户端
- 2、Java WebSocket实现服务端主动发消息给客户端
- 消息中间件 kafka+zookeeper 集群部署、测试与应用(1)
- 消息中间件kafka+zookeeper集群部署、测试与应用
- 消息中间件kafka+zookeeper集群部署、测试与应用
- zookeeper+activemq配置消息中间件集群 spring客户端连接
- springboot-websocket作为客户端
- NGINX作为WebSocket代理
- NGINX作为WebSocket代理
- 如何在php后端及时推送消息给客户端
- 如何在php后端及时推送消息给客户端
- json数组作为参数传递给java时候object问题
- 东方通消息中间件(TongLINK/Q)开发实例和java客户端实现
- ActiveMQ消息队列的应用 C#客户端 Web后端
- 一台机器部署多个JBoss中间件(2)
- nginx代理web,后端无法获取用户真实IP
- 以Apollo服务器作为中间件,模拟MQTT客户端,MQTT订阅接受消息
- webSocket--web客户端方面
- member template成员模板笔记----C++学习之路
- 模式识别期中复习
- 20171109 自省
- laravel构架下phpunit安装爬坑记录
- HTML打开摄像头,进行拍照上传
- web集群部署(实例大于等于2个),nginx作为中间件时候,后端websocket有时候消息无法传递给客户端
- 通过 hover 来改变 border 颜色大小的时候,标签位置发生移动的问题
- 不玩没用的,双十一搞促销十万人民币送起来
- C++中使用clock()函数测试程序时间
- iOS 一一 frame和Bounds 以及frame和bounds区别
- 20171109Link
- 171108 逆向-SWPU(re200)
- 码农晋升修炼指南,这些方法你要知道
- RecyclerView的极尽升华:BaseRecyclerViewFragment