第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MassTransmit/RabbitMQ 在同一臺機器上有多個不同的實例

MassTransmit/RabbitMQ 在同一臺機器上有多個不同的實例

C#
桃花長相依 2023-07-09 17:43:44
我想知道是否可以在同一臺服務器上運行多個 MassTransmit 或 RabbitMQ 實例?;旧衔覀冇幸粋€在 RabbitMQ 之上使用 MassTransmit 的 .net 應用程序。不幸的是,我們的許多客戶在同一臺服務器上運行實時和測試環(huán)境,因此為了部署到現(xiàn)實世界,我們需要一種擁有多個實例或能夠在實時和測試之間隔離消息的方法。我可以在所有消息中包含一個標頭,并且每個消費者在使用消息之前檢查是否存在正確的標頭(例如標頭具有“實時”或“測試”。)顯然,這意味著從所有實例接收到的所有消息,無論它們是是否適合他們,這遠非理想。理想情況下,我希望能夠在客戶端站點上以最少的設置執(zhí)行某些操作,例如每個環(huán)境的虛擬子實例或目錄。
查看完整描述

1 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

有兩種方法可以解決此問題。

第一種方法是最明顯的 - 您需要使用虛擬主機。

從文檔中:

虛擬主機提供資源的邏輯分組和分離。物理資源的分離不是虛擬主機的目標,應被視為實現(xiàn)細節(jié)。

在您的 RMQ 實例中創(chuàng)建兩個虛擬主機,名為testprod,您在 MassTransit 端唯一需要做的就是更改 RMQ 連接字符串:

Bus.Factory.CreateUsingRabbitMq(cfg =>

{

? ? cfg.Host(new Uri("rabbitmq://localhost/test"), host =>

? ? {

? ? ? ? host.Username("username");

? ? ? ? host.Password("password");

? ? });

});?

所以您將用于rabbitmq://localhost/prod生產。當然,這些值不應該是硬編碼的,而是來自配置。


我相信虛擬主機完全可以滿足您的需求。


如果你確實需要完全獨立地運行測試環(huán)境,你可以在 Docker 容器中運行它。當您需要一個干凈的環(huán)境時,此選項將使您能夠殺死整個事情并從頭開始。您可以輕松地重新映射默認端口,以避免與生產實例發(fā)生沖突:


docker run -d --name test-rmq -p 5673:5672 -p 8080:15672 rabbitmq:3-management

如果您運行上面的命令,則可以通過 AMQP on 訪問新實例localhost:5673,并且管理插件將打開http://localhost:8080


查看完整回答
反對 回復 2023-07-09
  • 1 回答
  • 0 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號