本人安裝的rabbitmq環境相關文件,可在本人提供的百度云盤資源進行下載。
鏈接:https://pan.baidu.com/s/1bnofK3l 密碼:whdm
消息隊列又稱為MQ,應用程序間的消息通信工具,其有利于程序解耦、多語言集成、異步通信、擴展和簡單負載均衡等,是生產-消費者模型的典型代表。常見MQ產品有RabbitMQ ZeroMQ Kafka等等。
RabbitMQ,老牌MQ產品,基于erlang語言,實現對AMQP等協議的支持,重量級,適合企業級應用開發;
Kafka,linkedin開源MQ產品,追求高吞吐量,適合于大量數據的收集業務,如互聯網業務產生的大量日志數據;
ZeroMQ,號稱最快的MQ,提供了一套異步消息通信庫,可實現RabbitMQ不能實現的高級復雜隊列;
Kafka和RabbitMQ都需要搭建消息代理服務器,采用中間件模式。ZeroMQ采用非中間件模式,不需要搭建消息代理服務器;
接下來的一段時間,我會把主要的業余時間花費在研究這幾款MQ產品之上,暫時水平有限,關于它們的具體的使用場景與差異,還需要一點一點研究。今天先上一篇簡單的RabbitMQ安裝教程,系統為centos7。
RabbitMQ采用erlang語言實現。erlang是一門被設計用來編寫并發、實時、分布式系統的新語言,原本是為了電話交換機開發的語言。下面源碼編譯安裝。
1. 下載源碼
http://www.erlang.org/download.html 下載最新版的erlang安裝包。
2. 解壓安裝
$ tar xvf otp_src_19.1.tar.gz
$ ./configure --prefix=/usr/local/erlang --without-javac
$ make
$ make install
3. 配置環境變量
在/etc/profile.d/下新建erlang.sh
$ vim /etc/profile.d/erlang.sh
加入如下內容:
PATH=$PATH:/usr/local/erlang/bin
export PATH
如下使環境變量生效
$ source /etc/profile.d/erlang.sh
4. 簡單體驗
Hello World程序體驗:
$ vim hello.erl
%% HellWorld example
%% We define a module called foo
-module(hello).
%% Export the function print that has 0 arguments
-export([print/0]).
print() ->
io:format("Hello World!~n").
$ erlc hello.erl // 編譯
$ erl // 交互命令行模式執行
效果如下:
實驗成功!
1. 安裝依賴項
每個人的系統默認有些軟件已經安裝,本人這里需要安裝三個依賴項
$ yum install -y libxslt rsync zip
2. 下載rabbitmq二進制包
$ cd /usr/local
$ wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5.tar.xz
3. 安裝
使用二進制包安裝很輕松,如下:
$ cd /usr/local/
$ tar Jxvf rabbitmq-server-3.6.5.tar.xz -C .
$ ln -s rabbitmq_server-3.6.5 rabbitmq
rabbit安裝目錄為/usr/local/rabbitmq
4. 配置環境變量
在/etc/profile.d/新建rabbitmq.sh
$ vim /etc/profile.d/rabbitmq.sh
添加如下內容:
PATH=$PATH:/usr/local/rabbitmq/sbin
export PATH
如下使環境變量生效
$ source /etc/profile.d/rabbitmq.sh
5. 關于rabbitmq操作
a. 啟動
前臺運行:
$ rabbitmq-server
后臺運行:
$ rabbitmq-server -detached
b. 關閉
$ rabbitmqctl stop
c. 查看狀態
$ rabbitmqctl status
RabbitMQ提供了一套插件機制,方便功能擴展。這里介紹一個最常用插件rabbitmq_management。這款插件提供了完善的管理和監控功能,提供了各項指標,具體會在之后文章介紹。首先體驗一下,如下方法開啟。
1.啟用插件
通過rabbitmq-plugin管理插件,啟用rabbitmq_management插件方法如下:
$ rabbitmq-plugins enable rabbitmq_management
此時使用默認用戶guest、密碼guest,即可登錄訪問http://localhost:15672。但此時無法遠程訪問,但實際場景多為遠程。
下面解決遠程訪問問題:
2. 確認關閉防火墻
如無法遠程登錄訪問http://host:15672,請確認防火墻已關閉。本人系統防火墻已開啟,關閉方法如下:
$ iptables -F
本人系統centos7,不同系統的機制需自己確認。
3. 環境變量
RabbitMQ三種環境變量:
》系統內置
》rabbitmq-env.conf設定變量
》shell環境變量
優先級: shell環境變量 > rabbit-env.conf > 系統內置
此處通過rabbit-env.conf設定,RabbitMQ安裝目錄下etc/rabbitmq/rabbitmq-env.conf:
$ cd /usr/local/rabbitmq/
$ vim etc/rabbitmq/rabbitmq-env.conf
如下指定rabbitmq配置文件:
RABBITMQ_CONFIG_FILE=/usr/local/rabbitmq/etc/rabbitmq/rabbitmq
上述環境變量指定rabbitmq配置文件,需添加后綴.config,即真實文件為/usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config:
4. 配置遠程訪問
關于啟用guest遠程訪問權限,官網http://www.rabbitmq.com/access-control.html,有如下一段話:
按此要求修改RabbitMQ配置文件,如下:
$ vim etc/rabbitmq/rabbitmq.config
添加如下內容:
[{rabbit, [
{tcp_listeners, [5672]},
{loopback_users, []}
]}].
此時,訪問http://remote_ip:15672,如下:
默認的用戶名guest、密碼guest,登錄進入效果如下:
上面就是RabbitMQ運行時狀態的總覽信息。
到此,RabbitMQ安裝一切OK!
關于RabbitMQ的簡單安裝就這么多,具體配置、使用與監控等更系統技能和其他MQ相關知識只能待續嘍 ...
參考文檔:
關于Erlang入門
http://www.erlang.org/downloads
http://www.csdn.net/article/2015-10-26/2826038-Erlang
http://www.csdn.net/article/2015-10-26/2826038-Erlang
關于mq
http://www.rabbitmq.com/access-control.html
http://www.infoq.com/cn/articles/kafka-analysis-part-1/
https://www.zhihu.com/question/22480085
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。