C# Rabbitmq:要将同一对象发送到多个端点,我们应该使用基于主题的发布服务器和订阅服务器还是使用一个条件订阅服务器
我们有三种不同类型的对象: 1.ObjectA 2.反对意见 我们需要将这些对象信息发送到三个不同的API: 1.API A-我们只需要发送ObjectA。 2.API B-我们只需要发送ObjectB。 3.API AB-我们需要发送ObjectA和ObjectB 由于这些对象将以非常高的频率推送到我们的系统,并且需要异步处理,因此我们决定使用rabbitmq将它们推送到各自的API 我们有两个选择:C# Rabbitmq:要将同一对象发送到多个端点,我们应该使用基于主题的发布服务器和订阅服务器还是使用一个条件订阅服务器,c#,rabbitmq,C#,Rabbitmq,我们有三种不同类型的对象: 1.ObjectA 2.反对意见 我们需要将这些对象信息发送到三个不同的API: 1.API A-我们只需要发送ObjectA。 2.API B-我们只需要发送ObjectB。 3.API AB-我们需要发送ObjectA和ObjectB 由于这些对象将以非常高的频率推送到我们的系统,并且需要异步处理,因此我们决定使用rabbitmq将它们推送到各自的API 我们有两个选择: 创建一个使用者:对象将作为NameValueCollection推送,如果是对象A,则推送至
MyApi.ObjectA
和MyApi.ObjectB
使用适当的路由密钥意味着您可以完全将“路由”延迟到RabbitMQ
然后,您可以创建多个队列(每个消费者一个):
- 使用者A:binding key=
MyApi.ObjectA
- 使用者B:binding key=
MyApi.ObjectB
- 消费者AB:binding key=
MyApi.
拥有独立的队列也意味着您可以更轻松地控制队列的使用,并知道是否需要扩大规模。明白了。但是,如果使用者需要将一些公共信息与对象A和对象B一起发送到API,我们需要两次命中DB/cache。对吗?如果一个消费者将不同类型的消息(即ObjectA、objectB)解列,或者一个消费者仅将一种类型的消息解列,会有什么危害