文章出處
文章列表
學習一種技術需要先了解它,而想要學好一種技術,需要更多的了解它的組成,原理和實現機制!
RabbitMQ安裝介紹
RabbitMQ是由erlang語言開發的,所以必須先有安裝erlang,類似java安裝
RabbitMQ是C/S模式的,所以安裝rabbitMQ服務器,默認端口5672
提供了Web管理界面(默認端口15672),直接通過安裝插件的方式開啟它
RabbitMQ的一些術語
- Server(broker): 接受客戶端連接,實現AMQP消息隊列和路由功能的進程。
- Virtual Host:其實是一個虛擬概念,類似于權限控制組,一個Virtual Host里面可以有若干個Exchange和Queue,但是權限控制的最小粒度是Virtual Host
- Producer: 消息生產者
- Consumer: 消息消費者
- Queue: 存儲消息的隊列容器
- Message: 消費者真正需要的消息數據
- Connection: 一個tcp連接,相對比較耗資源
- Channel: 一個管道連接,是tcp連接內的連接(broker),使用現有的TCP連接進行數據傳輸
- Exchange: 消息路由,生產者發送消息并不是直接發送到隊列中的而是先到指定方式路由中,然后由路由根據路由key綁定的隊列發送到指定隊列中(某種算法求出對應的queue,如對消息取模)。
- Binding:對路由與隊列容器的綁定關系
- Routing key: 路由鍵,主要用來尋找隊列queue
- AMQP: 高級消息隊列協議,RabbitMQ是基于此協議實現的
- Users: RabbitMQ服務是基于C/S模式,通常連接都需要認證,就是設置密碼
一個最純粹的消息生產者
ConnectionFactory factory = new ConnectionFactory();//創建連接工廠對象 factory.HostName = "localhost";//指定主機名 //factory.Port = 5672;//指定端口號 //factory.VirtualHost = "amqp://localhost:5672";//指定RabbitMQ服務器的虛擬主機 //factory.UserName = "";//指定連接用戶名 //factory.Password = "";//指定連接用戶密碼 var conn = factory.CreateConnection();//創建連接 var channel = conn.CreateModel();//建立管道 channel.QueueDeclare("lind", false, false, false, null); channel.BasicPublish(
exchange: "",
routingKey: "lind",
basicProperties: null,
body: Encoding.UTF8.GetBytes("Hello Lind!"));
上面代碼是一個主機為localhost的rabbitmq服務器的lind隊列發送一條消息,內容為Hello Lind!
通過web管理可以看到內容
感謝各位對消息中間件的支持,下一講我們將介紹如何去消費消息!
文章列表
全站熱搜