如何从其他语言访问 Rebus?

How to access Rebus from other languages?

如何集成.net 世界以外的其他语言?例如,在 Java 或 C++ 中访问来自总线的消息?我是否必须改为在后端收听队列?有Rebus提供的通用Api吗?

虽然 Rebus 可能将自己推销为 "service bus"(*),但它实际上更像是一种具有共同抽象的 "driver",使 .NET 程序员能够使用各种 queues 和持久性技术,无需过多担心细节。

因此,Rebus 无法真正连接到,就像您无法连接到您用来与 Postgres 通信的 NpgsqlConnectionSqlConnection 或SQL 服务器数据库。

可以做的是在传输 and/or 持久性级别与 Rebus 交互,例如通过在交换消息时使用相同的 wire-level 格式。

这需要所选的传输(MSMQ、RabbitMQ、SQL 服务器等)可以与所需平台进行交互,然后您需要能够提供正确的 headers Rebus 将消息视为有效。

除了 .NET(.NET 4.5 + .NET Standard 1.3)之外,任何其他平台都没有官方的 Rebus 实现。

据我所知,还没有人尝试在任何其他平台上实际构建 Rebus-compatible 消息传递库。


(*) 实际上我通常使用 "messaging library" 这个词来描述它,因为我认为它带来的混淆和语义过载更少。

是的。我认为我们需要知道一个最小的消息格式,例如 PHP 的应用程序可以编写并直接发送到端点队列。在某些情况下,这会让生活变得轻松。