【发布时间】:2018-09-28 07:51:55
【问题描述】:
我正在研究 rabbitMQ 并使用 C# .net 客户端,发布者和订阅者组件由两个不同的团队设计和管理,他们致力于不同的解决方案。
设计发布者的团队 1 通过将类型 A 的消息转换为字节数组来发送它。 设计订阅者的 Team 2 收到 Team A 发布的字节数据,需要将其转换为 Type A 进行进一步处理。
演示消息类型
class Message
{
public string Name { get; set; } = "Publishing message to Q";
}
所以在这种情况下,两个团队是否都需要处理共享的“类型 A”,因为如果两个团队在他们的最后都保持相同的消息类型,那么它就不起作用了。
是否有可能使用 JSON 类型的消息结构存储在 RabbitMQ 中,以便系统可以跨平台使用它。我在互联网上搜索,发现 RabbitMQ 服务器只存储字节。
此外,我们的发布者客户端之一是基于 Java 构建的,因此当它使用 Java 客户端并在其自身端管理消息负载类型时如何与之通信。
我没有找到关于 rabbitMQ 的任何好的文档。
【问题讨论】:
-
为什么是字节数组?为什么不是 JSON?
-
@LutzHorn 因为根据 rabbitMQ 规范,它只接受 byte[] 数组来存储数据。
-
这是在哪里指定的?我使用 RabbitMQ 发送内容类型为
application/json的 JSON 文档。有关示例,请参见 stackoverflow.com/q/34200756/9455968。 -
嗨@LutzHorn,你提到的链接,它使用RabbitMQ管理插件Web界面发布数据。当我使用 RabbitMQ .net 客户端在 RabbitMQ 中发布数据时,此客户端仅公开仅适用于 byte[] 的方法。您也可以查看链接stackoverflow.com/questions/27840710/…
标签: rabbitmq