微服务中的消息总线/队列

时间:2020-06-18 11:20:13

标签: .net microservices message-queue messaging

我们计划重写更大应用程序的后端。

其中之一是使用某种消息总线或消息队列系统。

我们正在寻找一个可以使用以下代码的框架。

var topic = "products";
var mq = MessageQueueFactory.CreateMessageQueue(topic);
ProductInformation result = await mq.Publish(new ProductInformationSearchRequest(1337));
// work with the result

类似的东西。 我知道这与系统在发出请求的相同功能中等待响应是不对的。

有些框架可以回答会话。但是您会有一个单独的Response-Queue。

我们的目标是将一些信息发送到队列中。框架找到了一个目的地,向该目的地发送消息,并在目的地响应后,我得到了我的结果。可能存在多个目的地(相同类型)。并非所有请求都需要回答。仅标记为这样做的。一个Message Broker或类似的代理也可以。

是否存在某些东西,或者我是否必须围绕某个东西构建包装器?通过这种架构,我们可以消除某些微服务目前具有的依赖性。 还是我们甚至需要更改体系结构才能使这样的系统正常工作?这甚至有意义吗?

顺便说一句:过去的方法是/现在是使用REST和API-网关在服务之间进行通信。

1 个答案:

答案 0 :(得分:0)

查看temporal.io。它允许编写看似同步调用,但内部完全异步的代码,使用队列,并在必要时保留调用状态。