AMQP,即Advanced Message Queuing Protocol,高級消息隊列協議,是應用層協議的一個開放標準,爲面向消息的中間件設計。消息中間件主要用於組件之間的解耦,消息的發送者無需知道消息使用者的存在,反之亦然。
AMQP的主要特徵是面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全。
RabbitMQ是一個開源的AMQP實現,服務器端用Erlang語言編寫,支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。java
sudo yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget unixODBC-develshell
1 [origalom@developers ~]$ wget http://erlang.org/download/otp_src_20.1.tar.gz 2 [origalom@developers ~]$ tar -xzvf otp_src_20.1.tar.gz 3 [origalom@developers ~]$ cd otp_src_20.1 4 [origalom@developers ~]$ sudo ./configure --prefix=/opt/erlang --without-javac 5 [origalom@developers ~]$ sudo make && sudo make install
6 [origalom@developers ~]$ sudo vim /etc/profile
在底部添加配置:export ERLANG_HOME=/usr/local/erlang
export PATH=$PATH:$ERLANG_HOME/bin
7 [origalom@developers ~]$ source /etc/profile
安裝過程當中可能出現的問題(APPLICATIONS DISABLED內的部分):vim
(1)編譯時,出現錯誤:odbc : ODBC library - link check failed 瀏覽器
須要安裝unixODBC,調用命令sudo yum install unixODBC-devel
安全
進入erlang安裝目錄的bin目錄下,輸入erl,若是出現下面的內容,表示安裝成功:服務器
Erlang/OTP 20 [erts-9.1] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [hipe] [kernel-poll:false]async
Eshell V9.1 (abort with ^G)
1> tcp
1 [origalom@developers ~] cd ~ 2 [origalom@developers ~] wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.2/rabbitmq-server-generic-unix-3.7.2.tar.xz 3 [origalom@developers ~] xz -d rabbitmq-server-generic-unix-3.7.2.tar.xz 4 [origalom@developers ~] tar -xvf rabbitmq-server-generic-unix-3.7.2.tar 5 [origalom@developers ~] sudo mv rabbitmq_server-3.7.2/ /usr/local/rabbitmq 6 [origalom@developers ~] sudo vim /etc/profile 7 在最下面添加:export PATH=$PATH:/usr/local/rabbitmq/sbin 8 [origalom@developers ~] source /etc/profile 9 [origalom@developers ~] cd /usr/local/rabbitmq/sbin 10 [origalom@developers ~] rabbitmq-server -detached # 啓動rabbitmq
說明:若是按照上面操做事後,啓動時仍是提示rabbitmq-server:行85: erl: 未找到命令,則修改rabbitmq/sbin/rabbitmq-server文件,加上 export PATH=$PATH:/opt/erlang/bin環境變量便可。分佈式
其餘命令(sbin目錄下):ui
rabbitmqctl status #查看rabbitmq狀態
rabbitmqctl stop # 關閉rabbotmq服務
上面已經建立好了rabbitmq服務,下面爲了在網頁上進行顯示,能夠配置網頁插件。
1 [origalom@developers ~] cd /usr/local/rabbitmq/sbin 2 [origalom@developers ~] rabbitmq-plugins enable rabbitmq_management
這樣就能夠開啓網頁插件了。
開啓事後,在瀏覽器中輸入服務器IP:15672,就能夠看到RabbitMQ的WEB管理頁面了。
1 [origalom@developers ~] cd /usr/local/rabbitmq/sbin 2 [origalom@developers ~] rabbitmqctl add_user rabbit rabbit # 添加用戶 3 [origalom@developers ~] rabbitmqctl set_permissions -p / [用戶名] ".*" ".*" ".*" # 添加權限 4 [origalom@developers ~] rabbitmqctl set_user_tags [用戶名] [角色名] # 修改角色
角色分類:
① none: 不能訪問 management plugin
② management: 用戶能夠經過AMQP作的任何事外加:列出本身能夠經過AMQP登入的virtual hosts ,查看本身的virtual hosts中的queues, exchanges 和 bindings,查看和關閉本身的channels 和 connections,查看有關本身的virtual hosts的「全局」的統計信息,包含其餘用戶在這些virtual hosts中的活動。
③ policymaker: management能夠作的任何事外加:查看、建立和刪除本身的virtual hosts所屬的policies和parameters
④ monitoring: management能夠作的任何事外加:列出全部virtual hosts,包括他們不能登陸的virtual hosts,查看其餘用戶的connections和channels,查看節點級別的數據如clustering和memory使用狀況,查看真正的關於全部virtual hosts的全局的統計信息
⑤ administrator: policymaker和monitoring能夠作的任何事外加: 建立和刪除virtual hosts,查看、建立和刪除users,查看建立和刪除permissions,關閉其餘用戶的connections
配置防火牆,開放端口:
5672: tcp端口,amqp通訊端口,若是非單機操做狀況下,必開
15672 : tcp端口,網頁管理端口,若是須要進行網頁管理,則開放