using RabbitMQ.Client;
var factory = new ConnectionFactory()
{
HostName = "127.0.0.1",
UserName = "guest",
Password = "guest",
VirtualHost = "/"
};
var connection = factory.CreateConnection();
即產生一個鏈接:
對於這段程式碼,如果在一個Web應用程式中不斷執行,在大並發請求下會產生大量的鏈接,這是不可取的。
如果再加上分散式部署,大量Web應用再加大量並發,鏈接資源就不夠用了。
因此,官網的建議,是用戶應該把它做成單例,一個應用盡量使用1個鏈接。
官方為了讓多個執行緒共享一個鏈接,又不互相影響,做出了通道的概念。
2、通道:
為了減少鏈接數,降低資源開銷,RabbitMQ設計了通道的概念。
1個鏈接可以創建無數個通道,然後主要的編碼,就是針對通道編碼。
using RabbitMQ.Client;
using System.Text;
using RabbitMQ.Client.Events;
var factory = new ConnectionFactory()
{
HostName = "127.0.0.1",
UserName = "guest",
Password = "guest",
VirtualHost = "/"
};
var connection = factory.CreateConnection();
var channel = connection.CreateModel();