Rabbit MQ 入門

Rabbit MQ是一個通用的消息中間件,支持AMQP,STOMP,MQTT等多種協議

安裝#

在mac OSX下可以使用如下命令來安裝 rabbitmq

brew install rabbitmq

基本命令#

 ls -al ~/rabbitmq/3.7.14/sbin/
total 1104
drwxr-xr-x  10 jet  admin     320 May 19 14:35 .
drwxr-xr-x  37 jet  wheel    1184 May 19 14:37 ..
-r-xr-xr-x   1 jet  admin  468026 Mar 29 05:47 cuttlefish
-r-xr-xr-x   1 jet  admin    2153 May 19 14:35 rabbitmq-defaults
-r-xr-xr-x   1 jet  admin    1245 Mar 29 05:47 rabbitmq-diagnostics
-r-xr-xr-x   1 jet  admin   16069 May 19 14:35 rabbitmq-env
-r-xr-xr-x   1 jet  admin    1241 Mar 29 05:47 rabbitmq-plugins         # manage rabbitmq plugins
-r-xr-xr-x   1 jet  admin   16467 Mar 29 05:47 rabbitmq-server
-r-xr-xr-x   1 jet  admin   40446 Mar 29 05:47 rabbitmqadmin
-r-xr-xr-x   1 jet  admin    1236 Mar 29 05:47 rabbitmqctl              # rabbitmq controller command line
  • 啓動rabbitmq
rabbitmq-server -detached #detached參數可以讓rabbitmq以守護進程的方式在後臺運行

啓動之後可以通過15271端口進行查看

Rabbit MQ 入門

 

  • 停止rabbitmq
rabbitmqctl shutdown
  • 查看rabbitmq狀態
rabbitmqctl status

Status of node rabbit@localhost ...
[{pid,25472},
 {running_applications,
     [{rabbitmq_stomp,"RabbitMQ STOMP plugin","3.7.14"},
      {rabbitmq_amqp1_0,"AMQP 1.0 support for RabbitMQ","3.7.14"},
      {rabbitmq_management,"RabbitMQ Management Console","3.7.14"},
      {rabbitmq_management_agent,"RabbitMQ Management Agent","3.7.14"},
      {rabbitmq_mqtt,"RabbitMQ MQTT Adapter","3.7.14"},
      {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.7.14"},
      {rabbit,"RabbitMQ","3.7.14"},
      {amqp_client,"RabbitMQ AMQP Client","3.7.14"},
      ......
 {listeners,
     [{clustering,25672,"::"},
      {amqp,5672,"127.0.0.1"},
      {mqtt,1883,"::"},
      {http,15672,"::"},
      {stomp,61613,"::"}]},
 }]
  • 配置文件 rabbitmq 的配置文件位於$RABBITMQ_HOME/etc/rabbitmq/rabbitmq.conf

Rabbitmq Plugins#

Rabbitmq 提供了很多插件,在使用插件之前可以使用enable命令啓用。已經安裝的插件可以通過如下命令查看

rabbitmq-plugins list
Listing plugins with pattern ".*" ...
WARNING - plugins currently enabled but missing: rabbitmq_management_visualiser

 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: * = running on rabbit@localhost
 |/
[E*] rabbitmq_amqp1_0                  3.7.14
[  ] rabbitmq_auth_backend_cache       3.7.14
[  ] rabbitmq_auth_backend_http        3.7.14
[  ] rabbitmq_auth_backend_ldap        3.7.14
[  ] rabbitmq_auth_mechanism_ssl       3.7.14
[  ] rabbitmq_consistent_hash_exchange 3.7.14
......
[  ] rabbitmq_tracing                  3.7.14
[  ] rabbitmq_trust_store              3.7.14
[e*] rabbitmq_web_dispatch             3.7.14
[  ] rabbitmq_web_mqtt                 3.7.14
[  ] rabbitmq_web_mqtt_examples        3.7.14
[  ] rabbitmq_web_stomp                3.7.14
[  ] rabbitmq_web_stomp_examples       3.7.14

啓用ui管理工具

rabbitmq-plugins enable rabbitmq_management

禁用

rabbitmq-plugins disable rabbitmq_management

啓停插件無需重啓rabbitmq即可自動生效

Rabbitmq 消息#

Rabbitmq 包括producer, exchange, consumer三部分。

  • producer: 生產者,負責生產消息
  • consumer: 消費者,負責消費監聽到的消息
  • exchange: 負責路由消息,消息交換 其中exchange包括以下四種類型:

Rabbit MQ 入門

 

  • direct exchange: 消息會根據路由key, 路由到指定的隊列
  • fanout exchange: 廣播, 消息會發送到綁定此exchange的所有消息隊列
  • topic exchange: 類似於direct exchange,不過消息可以通過模式匹配,一個消息可能匹配到一個以上的消息隊列
  • header exchange: 根據消息頭進行匹配過濾
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章