今天想用RabbitMQ來進行信息的隊列管理,當然除此之外還有很多消息隊列,比如(kafka,memcachemq,redis list等等),下面說下爲什麼我選擇它?
一、RabbitMQ的優點
相對其它開源產品而言,RabbitMQ還是有很多優點的:
1、基於erlang語言開發具有高可用高併發的優點,適合集羣服務器
2、健壯、穩定、易用、跨平臺、支持多種語言、文檔齊全
3、有消息確認機制和持久化機制,可靠性高
二、 消息隊列及使用介紹
2.1 消息隊列(Message Queue)
把消息的內容放入到一個緩存區內,進行排隊,程序會逐一的進行調取並處理(就好比餐廳點餐進行排隊,逐一處理)
另外,還可以將較慢/較複雜的處理邏輯、有併發數量限制的處理邏輯)
2.2 使用場景
短信服務、電子郵件服務、圖片處理服務、好友動態推送服務等。
三、安裝使用注意事項
1、安裝erlang需要等待幾分鐘,如果出錯請查看日誌分析;
2、RabbitMQ 端口
默認端口:5672
web管理器端口:15672
[root@jump ~]# netstat -lntup|grep 5672
tcp 0 0 0.0.0.0:5672 0.0.0.0:* LISTEN 27282/beam.smp
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 27282/beam.smp
3、防火牆配置
防火牆開啓15672端口才能使用web管理平臺,初始密碼guest不安全,上線必須修改
4、RabbitMQ 【啓動、停止、查看】
1)後臺啓動
nohup sbin/rabbitmq-server start &
2) 停止rabbitmq服務
sbin/rabbitmqctl stop
3) 查看rabbitmq服務
ps -af |grep rabbitmq
四、RabbitMQ部署過程
1,安裝依賴關係所需軟件包
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc
2,安裝erlang
wget http://www.erlang.org/download/otp_src_R16B01.tar.gz && ./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll --without-javac && make && make install
3,創建軟連接
ln -s /usr/local/erlang/bin/erl /usr/local/bin/erl
4,添加環境變量
cat /etc/profile
export PATH=$PATH:/usr/local/erlang/bin/
5,下載RabbitMQ 軟件
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.5/rabbitmq-server-generic-unix-3.1.5.tar.gz && tar zxf rabbitmq-server-generic-unix-3.1.5.tar.gz && cd rabbitmq_server-3.1.5
#可以根據自己需要自行下載,這裏我下載的是二進制的文件,解壓即用
6,開啓web管理器
cd 到安裝目錄
sbin/rabbitmq-plugins enable rabbitmq_management
7,後臺啓動 RabbitMQ
第一種 : ./sbin/rabbitmq-server -detached ## 啓動RabbitMQ並從shell分離
第二種: nohup sbin/rabbitmq-server start & ##使用nohup 使程序在後臺運行
8,web登陸驗證
http://服務器IP:15672/#/ #默認用戶名密碼 guest
到這裏,rabbitmq服務端已經安裝完成,要想php操作rabbitmq,還需要安裝amqp擴展,參考我另篇文章