RabbitMQ~消息的產生和管(guan)理(15672)
上一(yi)(yi)講(jiang)說了(le)rabbitmq在(zai)windows環境的(de)部署,而今(jin)天主要說一(yi)(yi)下消息(xi)在(zai)產(chan)生后,如何去查看消息(xi),事實上,rabbitmq為我(wo)們提供了(le)功能強大的(de)管理插(cha)件,我(wo)們只要開啟這個插(cha)件即可,它也是一(yi)(yi)個網站,端口是15672,走Http協議的(de),它每秒會從消息(xi)服務器中拉取最(zui)新(xin)的(de)消息(xi),以便讓我(wo)們看到最(zui)新(xin)的(de)queue!
一 開始消息管理系統
1 打開命令行工具
2 輸入下(xia)面指令(ling)來開啟消(xiao)息(xi)管理(li)系統
rabbitmq-plugins enable rabbitmq_management
3 在瀏覽器中輸入//127.0.0.1:15672,用戶名(ming)和密碼都是guest,然后就可以查(cha)看我們(men)的隊列信息(xi)了
二 像RabbitMQ推送消息
1 安裝C#對應的(de)包包
<packages> <package id="RabbitMQ.Client" version="3.6.6" targetFramework="net45" /> </packages>
2 編寫測試代碼
var factory = new ConnectionFactory() { HostName = "localhost" }; using (var connection = factory.CreateConnection()) { using (var channel = connection.CreateModel()) { //聲明queue channel.QueueDeclare(queue: "hello",//隊(dui)列名 durable: false,//是否持久化(hua) exclusive: false,//排它性(xing) autoDelete: false,//一旦(dan)客戶端連接斷開則自動(dong)刪除queue arguments: null);//如果安裝了隊列優先級(ji)插件則可以設置優先級(ji) string message = "Hello Lind!";//待(dai)發送的消息 var body = Encoding.UTF8.GetBytes(message); channel.BasicPublish(exchange: "",//exchange名稱 routingKey: "hello",//如果存在(zai)exchange,則消息被發送到名(ming)稱(cheng)為hello的queue的客戶端 basicProperties: null, body: body);//消息(xi)體 Console.WriteLine(" [x] Sent {0}", message); } }
三 RabbitMQ在命令行里的其它指令介紹
后臺管理15672系統,是通(tong)過向rabbitmq中開(kai)啟一個插件來(lai)實現的,而在命(ming)令(ling)行中我們還可以干很多(duo)事(shi),下(xia)面(mian)看一下(xia):
1). 服務器啟動與關閉
啟動: rabbitmq-server –detached
關閉:rabbitmqctl stop
若單機有多個實例,則在rabbitmqctlh后加–n 指定名稱
2). 插件管理
開啟某個插件:rabbitmq-pluginsenable xxx
關閉某個插件:rabbitmq-pluginsdisablexxx
注意:重啟服務器后生效。
3).virtual_host管理
新建virtual_host: rabbitmqctladd_vhost xxx
撤銷virtual_host:rabbitmqctl delete_vhost xxx
4). 用戶管理
新建用戶:rabbitmqctl add_user xxxpwd
刪除用戶: rabbitmqctl delete_user xxx
改密碼: rabbimqctlchange_password {username} {newpassword}
設置用戶角色:rabbitmqctlset_user_tags {username} {tag ...}
Tag可以為 administrator,monitoring, management
感謝各(ge)位的(de)閱讀(du),下(xia)一講我們將(jiang)介紹MQ里的(de)拉消息(xi)!