文章出處

 rabbitmq里有一些概念我們要清楚,如vhost,channel,exchange,queue等,而前段時間在部署rabbitmq環境時啟用了虛擬主機vhost,感覺他主要是起到了消息隔離的作用,下面分別再說一下它們的知識。

VHost

vhost去做第一層的區分,虛擬主機,工作組等,它默認是/

添加自己項目的Vhost

添加成功后,在列表里可以顯示

添加建立一個用戶,設置密碼

 

把用戶添加到對應的VHost組里,注意連接時也要使用VHost參數,如果沒有特別設置,可以不指定它,默認就是/

channel

創建了客戶端到Broker之間的連接后,客戶端還是不能發送消息的。需要為每一個Connection創建Channel,AMQP協議規定只有通過Channel才能執行AMQP的命令。一個Connection可以包含多個Channel。之所以需要Channel,是因為TCP連接的建立和釋放都是十分昂貴的,如果一個客戶端每一個線程都需要與Broker交互,如果每一個線程都建立一個TCP連接,暫且不考慮TCP連接是否浪費,就算操作系統也無法承受每秒建立如此多的TCP連接

Exchange

有多種類型,我們在發布和訂閱時,要指定這些類型,一般我們會使用性能更好的direc,或者更靈活的,支持通配符的topic

在客戶端連接時,需要指定一下VHost

            exchangeName = options.ExchangeName;
            mqServerHost = options.MqServerHost;
            userName = options.UserName;
            password = options.Password;
            var factory = new ConnectionFactory()
            {
                Uri = new Uri(mqServerHost)
            };
            factory.VirtualHost = options.VirtualHost;

好了,本講主要介紹了如何去配置VHost和如何去連接它!

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()