首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个后端服务器之间的消息传递机制

多个后端服务器之间的消息传递机制
EN

Stack Overflow用户
提问于 2022-09-27 13:48:02
回答 1查看 105关注 0票数 0

不确定是否有特定的stackexchange门户来解决这个问题,但我想了解人们/企业通常使用什么来异步地在多个服务器之间进行通信。下面是我的建筑。

服务器1-我有一个烧瓶服务器运行socketIO以及HTTP端点(测试目前,将放在一个Gunicorn后面)。此服务器负责维护客户端套接字连接并在客户端和服务器之间中继消息。

服务器2-我有另一个“处理服务器”,它应该根据从客户端接收的消息进行计算,并且可能或不可能在这些消息的背面产生输出。这是另一个承载服务器1可以调用的端点的烧瓶/http服务器。

对于我的用例,我希望从服务器1发送消息到服务器2,而不是等待任何响应返回(因为服务器2可能不会产生任何响应),稍后如果服务器2决定产生什么,我需要服务器1来获取输出并通过套接字连接将其中继回客户端。

以下是我现在的想法

  1. --我在想,我可以以某种方式从服务器1到服务器2执行异步post请求调用(如果有类似异步请求的东西),然后从服务器2返回到服务器1(当/如果它产生了一些输出)。将来,当我有多台服务器1和服务器2时,我可能可以确保某些客户端是由特定服务器提供的服务,以维护consistency.
  2. Change服务器2的socketio启用,然后在服务器1和服务器2之间创建一个长期存在的套接字连接。同样,通过扩展,我需要确保客户端由特定的服务器服务,以便所有消息都发送到同一台服务器。我正在阅读的关于消息队列(kafka等)的
  3. 。那么也许可以用它吗?

我想了解你对如何设计这个的看法。

EN

回答 1

Stack Overflow用户

发布于 2022-10-10 01:31:33

如果我正确理解,服务器1用于将请求路由到适当的端点。但是来自服务器2的输出是客户机感兴趣的。那么,服务器1是否可能完全被负载均衡器所取代呢?

  1. --这是S1的许多责任,而不是让您的客户等待一个可能永远不会出现的请求,我会创建一个事件驱动的系统。因此,如果消息正确地发送到S2,S2就可以立即返回成功。然后让其他服务器将实际响应返回给客户端.

  1. ,我认为你在正确的轨道上。要在服务器1和服务器2之间进行通信,通常使用消息队列。它是异步的,因为服务器1不会等待服务器2的结果。一个很好的选择是RabbitMq (自托管)或SQS (AWS云)。

  1. 为什么需要将所有消息路由到同一台服务器?考虑使您的系统“无状态”-因此来自客户端的每个请求都需要包含完成请求所需的所有信息。这通常是用会话存储实现的,因此用户会话数据可以存储在缓存/DB上;客户端发送对存储数据的引用,然后服务器获取该数据并计算.

这将有助于了解谁是您的“客户端”前端应用程序,还是另一个服务器?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73868747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档