Rabbitmq 向web客户端公开消息队列?

Rabbitmq 向web客户端公开消息队列?,rabbitmq,message-queue,scalability,system-design,Rabbitmq,Message Queue,Scalability,System Design,考虑一个实时应用程序,其中web客户端与某个实体X建立持久连接 我们这里可能的选择是: 连接到web服务器,然后该服务器将消息发送到消息队列。 在本例中,实体X等于某个web服务器,该服务器随后将该消息转发到消息队列 直接连接到消息队列。 在这种情况下,web客户端直接连接到消息队列端点并推送消息 这里推荐的最佳实践是什么?消息队列位于标准企业体系结构的什么位置?此外,如果您知道最佳实践,请分享您是如何了解这些信息的(哪些资源/书籍包含这些知识?)。谢谢。当客户端是web浏览器时: 让我做一些问

考虑一个实时应用程序,其中web客户端与某个实体X建立持久连接

我们这里可能的选择是:

  • 连接到web服务器,然后该服务器将消息发送到消息队列。
    在本例中,实体X等于某个web服务器,该服务器随后将该消息转发到消息队列
  • 直接连接到消息队列。
    在这种情况下,web客户端直接连接到消息队列端点并推送消息

  • 这里推荐的最佳实践是什么?消息队列位于标准企业体系结构的什么位置?此外,如果您知道最佳实践,请分享您是如何了解这些信息的(哪些资源/书籍包含这些知识?)。谢谢。

    当客户端是web浏览器时:

    让我做一些问答,根据这些问答,你的问题可能会得到回答

    Q1:我们是否向客户公开应用程序数据库以进行简单的读取操作

    A1:否,我们希望控制向客户端公开的内容

    Q2:基于Q1,向客户端公开消息队列有意义吗

    A2:否,原因与A2相同

    当消息队列向WebClient公开时:

    Q1:如果消息队列提供程序需要从Rabbit Mq更改为Kafka,会发生什么情况

    A1:旧的移动应用程序将崩溃。需要更改Web客户端以与新队列兼容。(糟糕的架构

    Q2:是否有人可以在同一消息队列中点击其他主题/队列

    A2:是(糟糕的架构


    当客户端是另一个服务时:


    使用共享消息队列的服务间通信是许多应用程序用于异步通信的一种模式。

    我认为在这里正确的做法是选择2,否则,您的客户端将被耦合到某个消息队列工具,这可能是不可取的。
                       |=Backend=             
    (client) ----------|-(web server)-----------(messageq)------> process message
                       |             ^--backchannel connection
    
    
                       |=Backend=
    (client) ----------|-(messageq)------> process message
                       |