我是Azure Service Bus和MassTransit的新手,并且正在尝试将简单命令发送到队列,然后让使用者使用该命令。我可以成功地发送消息,然后让消费者使用它,但是我注意到也创建了一个相应的主题。我对此有些幼稚的理解是,只需要将一个主题用于事件发布和订阅即可。
这是设置我的IBus实例的地方,IMessageBus封装了MassTransit.IBus实例
class IngredientSerializer(serializers.ModelSerializer):
quantity = serializers.SerializerMethodField()
def get_quantity(self, ingredient_instance):
recipe = ingredient_instance.recipeingredient_set.all().first()
if recipe:
return recipe.quantity
else:
return None
class Meta:
model = Ingredient
fields = ['id', 'name', 'calories', 'quantity']
我观察到的行为是否正确,因为发送命令将始终在幕后创建主题,或者我是否错误地设置了服务总线?而且,如果确实需要创建主题,这是由于MassTransit的工作方式引起的,还是Azure Service Bus的某些基本要求?
This is what I see in service bus explorer after sending a command
答案 0 :(得分:0)
如果您不希望接收端点创建/订阅主题,则可以指定:
e.SubscribeMessageTopics = false;
默认情况下,所有消息类型都在代理上配置为支持发布。将其设置为false将禁用配置。