簡體   English   中英

控制公共交通交換和綁定

[英]Control Masstransit Exchanges and Bindings

我正在使用大眾運輸。 我想避免為端點創建交換,而是希望端點隊列直接綁定到發布交換。

這是我的代碼

    cfg.Message<Notification>(x => { x.SetEntityName("NOTIFICATION_REQUEST"); });

    g.ReceiveEndpoint("notification-workerQ", e =>        
    {
         e.Consumer<NotificationConsumer>();
    });

這創造了

  • NOTIFICATION_REQUEST 交換
  • 通知-workerQ 交換
  • 通知-workerQ 隊列

有沒有辦法避免通知-workerQ 交換並將隊列直接綁定到 NOTIFICATION_REQUEST 交換?

附加問題

我被要求根本不創建交換,而是使用已經存在的主題交換,我將隊列綁定到使用路由鍵。

這意味着我的 notification-workerQ 應該使用“componentX.something.notification”之類的路由鍵綁定到 GENERIC_DROP 交換

也許像

    g.ReceiveEndpoint("notification-workerQ", e =>        
    {
         e.Consumer<NotificationConsumer>(x => 
         { 
            //THIS IS NOT WORKING CODE
            x.consumeFrom("GENERIC_DROP", "ROUTING_KEY") 
         });
    });

沒有辦法阻止 MassTransit 創建notification-workerQ交換,因為 MassTransit 總是為隊列創建匹配的交換。

但是,您可以通過配置接收端點,將現有的主題交換與路由鍵綁定,如下所示。

e.Bind("NOTIFICATION_REQUEST", x =>
{
    x.RoutingKey = "ROUTING_KEY";
    x.ExchangeType = ExchangeType.Topic;
});

還有一個示例展示了如何使用直接交換,主題交換的配置方式相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM