SpringCloud 中zuul网关怎么接入WebSocket并转发到对应服务,并进行负载均衡。

Enchanter, 2019-04-23 06:19:55
问题如题,网上是有一些资源和资料,但是都试过了,要么没效果,要么只有部分配置,不全面,Controller那里请求都进不来(不支持tcp),求大神能整理一跳详细的,从配置到控制层接入的最新全套教程。造福一下咱们广大搬砖群众。
...全文
2230 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
icbccwy 2019-08-16
  • 打赏
  • 举报
回复
可以加个好友,讨论一下zuul的解决办法吗
Enchanter, 2019-07-15
  • 打赏
  • 举报
回复 1
最终解决办法是,在网关这一层级设立webSocket服务,提前约定好服务号(1-20000)每个服务号对应一个模块方法,然后通过服务号解析去请求对应的服务和方法。大致是如此,不过弊端是,网关这一层,控流、鉴权、负载均衡等等就不能用框架的了,需要自定义逻辑去实现。
Enchanter, 2019-07-15
  • 打赏
  • 举报
回复
引用 4 楼 渔溪大王 的回复:
有更合适可行的方案了吗?

只能在网关这一层搭建WebSocket服务,然后通过网关的特性,去链接请求对应的服务方法
  • 打赏
  • 举报
回复
最好不要使用 zuul, 可以考虑 consul, zuul不支持tcp, 但是如果websocket不用tcp的话,就跟轮询没啥区别了 如果没法换掉zuul的话,可以把websocket当作一个独立的服务,推送就用队列接收和推送, 这样也没有什么问题
渔溪大王 2019-06-13
  • 打赏
  • 举报
回复
有更合适可行的方案了吗?
Enchanter, 2019-04-26
  • 打赏
  • 举报
回复
目前没有很好的解决方案,网上有一些需要前端socket.js配合才能实现的方案,耦合度太强,不适合我的架构思路。经过我冥思苦想,终于想出来了一个思路,WebSocket的通讯既然是双向的,就像情侣之间打电话,那么为什么还要分你我呢,谁跟谁打都一样,只要能通讯就可以了,那么为什么服务端不能架设在前端呢,由前端(比如node.js)来架设WebSocket的服务端,启动时到后端的制定接口把链接地址给到,然后后端通过地址去连接,当连接上后,再想怎么通讯就都可以了。
奋斗程序猿 2021-11-30
  • 举报
回复
@Enchanter, 这种的会出现多个后端连接到统一个nodejs的websocket服务端,然后消息推送,不就接收到多个了?
Enchanter, 2019-04-26
  • 打赏
  • 举报
回复
顶起来~~~~~~~~~~~~~~~~~~~
Enchanter, 2019-04-24
  • 打赏
  • 举报
回复
自己顶~不要沉,

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧