我们有一个桌面C#应用程序,它将与C中的Windows服务进行对话。我们需要使用RabbitMQ将复杂对象(具有许多实体)发送到此Windows服务。我们希望使用二进制格式化程序。但我们不想使用C#二进制格式化程序,因为C服务将无法在没有.Net库的情况下将其格式化。有没有一种方法可以使用RabbitMQ在C++和C#之间发送二进制数据?
如果我们在硬盘上复制二进制文件,并使用RabbitMQ将该文件的位置作为事件发送,这是一个好主意吗?如果我们需要将文件复制到磁盘并使用RabbitMQ而不是实际数据发送事件,那么这似乎不是RabbitMQ的好用途。
求主引导,使人得着属灵的恩赐。
1条答案
按热度按时间d4so4syb1#
你需要弄清楚的是如何序列化你的数据,以便它可以被C#和C++应用程序使用。Protocol Buffers是一个很好的解决方案。
有没有一种方法可以使用RabbitMQ在C++和C#之间发送二进制数据?
是的当然RabbitMQ将消息体视为不透明的二进制数据,因此您可以发送任何您想要的内容。
如果我们在硬盘上复制二进制文件,并使用RabbitMQ将该文件的位置作为事件发送,这是一个好主意吗?如果我们需要将文件复制到磁盘并使用RabbitMQ而不是实际数据发送事件,那么这似乎不是RabbitMQ的好用途。
这是Team RabbitMQ在数据量非常大或者您将在短时间内发送许多“大型”消息时的建议。例如,如果你的数据是10MiB,但你每分钟只发送几条消息,这可能是好的。您应该使用the PerfTest tool来模拟您的工作负载。您可以将消息大小指定为参数之一。