訊息佇列之RabbitMQ
訊息佇列:是簡單的生產者和消費者模式,它的出現是讓各個服務板塊之間解耦和訊息通知。比如,我們一般生成服務板塊中的資料存在有:資料庫,靜態檔案,搜尋系統,hdfs等,那麼如果資料庫中的資料發生了變化,怎麼把這個訊息推送給其他的資料儲存單元呢?如果單純的用服務介面進行呼叫,就會表現各個板塊間耦合性太高,並且顯得冗餘。訊息佇列的出現很好的解決了這個問題,當一方面的資料出現了變化,作為訊息的提供者只需要向訊息佇列中傳送訊息,其他有訂閱關係的就可以進行相應的資料更新。
訊息佇列分類:
AMQP: 直白話就是定義了協議,只要滿足該協議就ok,可以跨語言 常見的有(rabbitMq)
JMS: 是java提供的一套api ,只能用java語言來進行呼叫(ActiveMq,rocketMq)
今天學的就是基於高併發的erlang語言開發的 rabbitMQ。
Linux下安裝rabbitmq(rabbitmq是基於erlang語言開發的所以首先要有erlang的環境)
1:安裝erlang語言開發環境(我這邊操作環境是centos6)
1.1:線上安裝:(採用yum來進行安裝)
yum install esl-erlang_17.3-1~centos~6_amd64.rpm
yum install esl-erlang-compat-R14B-1.el6.noarch.rpm
1.2:離線安裝:
先要有相應的erlang的安裝包(百度網盤:連結: https://pan.baidu.com/s/1yUULtPDHxj4-xuVXsRKcUw 提取碼: rvgk)我這裡提供了相應的安裝所需檔案
將該檔案上傳到linux系統,然後依次執行以下命令
rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps (npm 解壓安裝)
rpm -ivh esl-erlang17.3-1~centos~6amd64.rpm --force --nodeps
rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps 至此 erlang語言安裝完成
2:安裝rabbitmq(提取檔案: 連結: https://pan.baidu.com/s/1ZvQc30NJYdB3Gp1eTVbIWQ 提取碼: dbya )這邊安裝的是 3.4.1版本的
上傳後執行 :rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm 來安裝rabbitmq
設定配置檔案的訪問為任何人都可以訪問:cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
vi /etc/rabbitmq/rabbitmq.config
將其中的一行 %%{loopback_users,[]}, 修改為 {loopback_users,[]} 一定要注意去掉後面的逗號
3:可以開啟外掛管理 ,執行命令 rabbitmq-plugins enable rabbitmq_management 就可以用介面來管理了
4:啟動rabbit:service rabbit-server start
5:防火牆埠管理:
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT #開放埠號
/etc/rc.d/init.d/iptables save #儲存埠號設定資訊
chkconfig rabbitmq-server on #設定開機自啟動
至此rabbitmq就安裝好了,通過 http:192.168.13.253:15672/ 就可以訪問了
最後,為了高薪一起分享,一起學習,交流郵箱(可能不會答覆):[email protected]