1. 程式人生 > >Centos6.5 安裝 RabbitMQ3.6.1

Centos6.5 安裝 RabbitMQ3.6.1

安裝編譯工具

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
  • 1

安裝Erlang

2.安裝

#解壓
tar xvf otp_src_18.3.tar.gz
cd otp_src_18.3

#配置 '--prefix'指定的安裝目錄
./configure --prefix=/usr/local/erlang --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac

#安裝
make && make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.配置erlang環境變數

vim /etc/profile

#在檔案末尾新增下面程式碼 'ERLANG_HOME'等於上一步'--prefix'指定的目錄
ERLANG_HOME=/usr/local/erlang
PATH=$ERLANG_HOME/bin:$PATH
export ERLANG_HOME
export PATH

#使環境變數生效
source /etc/profile

#輸入命令檢驗是否安裝成功
erl
#如下輸出表示安裝成功
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

這樣的輸出表示成功

安裝RabbitMQ

2.安裝 
RabbitMQ3.6版本無需make、make install 解壓就可以用

#解壓rabbitmq,官方給的包是xz壓縮包,所以需要使用xz命令
xz -d rabbitmq-server-generic-unix-3.6.1.tar.xz

#xz解壓後得到.tar包,再用tar命令解壓
tar -xvf rabbitmq-server-generic-unix-3.6.1.tar

#移動目錄 看個人喜好
cp -rf ./rabbitmq_server-3.6.1 /usr/local/
cd /usr/local/

#修改資料夾名
mv rabbitmq_server-3.6.1 rabbitmq-3.6.1

#開啟管理頁面外掛
cd ./rabbitmq-3.6.1/sbin/
./rabbitmq-plugins enable rabbitmq_management
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

3.啟動

#啟動命令,該命令ctrl+c後會關閉服務
./rabbitmq-server

#在後臺啟動Rabbit
./rabbitmq-server -detached

#關閉服務
./rabbitmqctl stop

#關閉服務(kill) 找到rabbitmq服務的pid   [不推薦]
ps -ef|grep rabbitmq
kill -9 ****
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4. 新增管理員賬號

#進入RabbitMQ安裝目錄
cd /usr/local/rabbitmq-3.6.1/sbin

#新增使用者
#rabbitmqctl add_user Username Password
./rabbitmqctl add_user rabbitadmin 123456

#分配使用者標籤
#rabbitmqctl set_user_tags User Tag
#[administrator]:管理員標籤
./rabbitmqctl set_user_tags rabbitadmin administrator
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
5.登入管理介面
瀏覽器輸入地址:http://伺服器IP地址:15672/ 
RabbitMQ管理平臺登入頁面

輸入第4部新增的賬號密碼登入 
管理頁面

其他

1.訪問不了 
安裝完成之後如果機器有iptables,需要開放埠

vim /etc/sysconfig/iptables
#RabbitMQ
-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5671 -j ACCEPT
#RabbitMQ
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

RabbitMQ常用埠(摘自網路) 
4369 (epmd), 
25672 (Erlang distribution) 
56725671 (AMQP 0-9-1 without and with TLS) 
15672 (if management plugin is enabled) 
6161361614 (if STOMP is enabled) 
18838883 (if MQTT is enabled)

2.Warning: PID file not written; -detached was passed 
提示這句話暫時沒處理,有空補上。

有問題歡迎提建議。

注:1、有的地方說要把py版本升級到2.7,這裡面並沒有升級,沒有問題。在安裝erlang的時候./configure後面的引數要接上,不然會啟動rabbitmq的時候會報ssl等錯誤。

  2、guest/guest一般來說是無法登入的,guest必須是localhost才能登入,所以得先用命令列新增使用者才能登入。

  3、

1、如果寫錯了host (如:factory.setHost("locathost"); )報錯:

Exception in thread "main" java.net.UnknownHostException: locathost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:588)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:612)
at com.aaa.test.Send.main(Send.java:19)

2、如果寫錯了HOST的IP(如:factory.setHost("192.168.1.10"); )無此地址, 報錯:

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:588)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:612)
at com.aaatest.Send.main(Send.java:19)

3、如果寫錯埠PORT(如:factory.setPort(5678);) 報錯:

Exception in thread "main" java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:588)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:612)
at com.aaa.test.Send.main(Send.java:19)

4、如果寫錯使用者名稱或者密碼,報錯:

Exception in thread "main" com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:338)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:590)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:612)
at com.aaa.test.Send.main(Send.java:19)

轉:http://blog.csdn.net/a15134566493/article/details/51393955