MassTransit命令使用者创建一个主题。它是否正确?

时间:2019-05-23 12:48:47

标签: azureservicebus masstransit azure-servicebus-queues

我是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

1 个答案:

答案 0 :(得分:0)

如果您不希望接收端点创建/订阅主题,则可以指定:

e.SubscribeMessageTopics = false;

默认情况下,所有消息类型都在代理上配置为支持发布。将其设置为false将禁用配置。