例如,我有一些披萨送货服务。它可以做的事情的类型是
CreateOrder
CancelOrder
GetOrderStatus
例如。我的服务的API层可能会将它们公开为“单独的”端点,例如/order (POST)
,/order (DELETE)
等,并且它们以某种方式路由到处理请求的工作层。
可以让工作人员通过单个消息队列(消息类似于)接收请求吗?>
{ id: "47a4aa26-295c-4163-9701-b6c20863643a", type: "order-create", payload: { size: "xl", toppings: ["canadianBacon", "pineapple"] } }
和
)。{ id: "4278dd527-6c4f-4bee-b8f6-0871af0b39ce", type: "order-cancel", payload: { orderId: "dff1b7e4-0c07-4327-8590-ac71065f32e5", cancellationDate: "Mon Oct 14 2019 09:24:20 GMT-0700 (Pacific Daylight Time)" } }
而不是让消息的每个
type
都进入“单独的”队列(如果使用Azure服务总线,则不是其他类型的“单独的”抽象/基础结构,例如topic
[我喜欢这样的是,每当我想要我的披萨外卖服务具有一种新型的业务功能时,我只需定义一个新的type
和payload
合同并编写一个新的处理程序,就不需要创建任何新的基础架构/路由/等。
例如,我有一些披萨送货服务。它可以执行的操作类型例如是CreateOrder CancelOrder GetOrderStatus。我的服务的API层可能会将其公开为“ ...
我认为,只要您在工作层有多个使用者,并且您的队列具有至少一次传送方式,就应该有任何问题。