國內(nèi)做ebay用哪個網(wǎng)站杭州網(wǎng)絡(luò)整合營銷公司
目錄
1.MQ引言
1.1 什么是MQ
1.2 MQ有哪些
1.3 不同MQ特點
2.RabbitMQ 的引言
2.1 RabbitMQ
2.2 RabbitMQ 的安裝
2.2.1 下載
2.2.2 下載的安裝包
2.2.3 安裝步驟
3. RabiitMQ 配置
3.1RabbitMQ 管理命令行
3.2 web管理界面介紹
3.2.1 overview概覽
3.2.2 Admin用戶和虛擬主機管理
1. 添加用戶
2. 創(chuàng)建虛擬主機
3. 綁定虛擬主機和用戶
1.MQ引言
1.1 什么是MQ
? MQ
(Message Quene) : 翻譯為消息隊列
,通過典型的生產(chǎn)者
和消費者
模型,生產(chǎn)者不斷向消息隊列中生產(chǎn)消息,消費者不斷的從隊列中獲取消息。因為消息的生產(chǎn)和消費都是異步的,而且只關(guān)心消息的發(fā)送和接收,沒有業(yè)務(wù)邏輯的侵入,輕松的實現(xiàn)系統(tǒng)間解耦。別名為消息中間件
通過利用高效可靠的消息傳遞機制進行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。
1.2 MQ有哪些
? 當今市面上有很多主流的消息中間件,如老牌的
ActiveMQ
、RabbitMQ
,炙手可熱的Kafka
,阿里巴巴自主開發(fā)RocketMQ
等。
1.3 不同MQ特點
# 1.ActiveMQActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。它是一個完全支持JMS規(guī)范的的消息中間件。豐富的API,多種集群架構(gòu)模式讓ActiveMQ在業(yè)界成為老牌的消息中間件,在中小型企業(yè)頗受歡迎! ? # 2.KafkaKafka是LinkedIn開源的分布式發(fā)布-訂閱消息系統(tǒng),目前歸屬于Apache頂級項目。Kafka主要特點是基于Pull的模式來處理消息消費,追求高吞吐量,一開始的目的就是用于日志收集和傳輸。0.8版本開始支持復(fù)制,不支持事務(wù),對消息的重復(fù)、丟失、錯誤沒有嚴格要求,適合產(chǎn)生大量數(shù)據(jù)的互聯(lián)網(wǎng)服務(wù)的數(shù)據(jù)收集業(yè)務(wù)。 ? # 3.RocketMQRocketMQ是阿里開源的消息中間件,它是純Java開發(fā),具有高吞吐量、高可用性、適合大規(guī)模分布式系統(tǒng)應(yīng)用的特點。RocketMQ思路起源于Kafka,但并不是Kafka的一個Copy,它對消息的可靠傳輸及事務(wù)性做了優(yōu)化,目前在阿里集團被廣泛應(yīng)用于交易、充值、流計算、消息推送、日志流式處理、binglog分發(fā)等場景。 ? # 4.RabbitMQRabbitMQ是使用Erlang語言開發(fā)的開源消息隊列系統(tǒng),基于AMQP協(xié)議來實現(xiàn)。AMQP的主要特征是面向消息、隊列、路由(包括點對點和發(fā)布/訂閱)、可靠性、安全。AMQP協(xié)議更多用在企業(yè)系統(tǒng)內(nèi)對數(shù)據(jù)一致性、穩(wěn)定性和可靠性要求很高的場景,對性能和吞吐量的要求還在其次。
RabbitMQ比Kafka可靠,Kafka更適合IO高吞吐的處理,一般應(yīng)用在大數(shù)據(jù)日志處理或?qū)崟r性(少量延遲),可靠性(少量丟數(shù)據(jù))要求稍低的場景使用,比如ELK日志收集。
2.RabbitMQ 的引言
2.1 RabbitMQ
基于
AMQP
協(xié)議,erlang語言開發(fā),是部署最廣泛的開源消息中間件,是最受歡迎的開源消息中間件之一。
官網(wǎng)
: RabbitMQ: One broker to queue them all | RabbitMQ
官方教程
: RabbitMQ: One broker to queue them all | RabbitMQ
# AMQP 協(xié)議AMQP(advanced message queuing protocol)`在2003年時被提出,最早用于解決金融領(lǐng)不同平臺之間的消息傳遞交互問題。顧名思義,AMQP是一種協(xié)議,更準確的說是一種binary wire-level protocol(鏈接協(xié)議)。這是其和JMS的本質(zhì)差別,AMQP不從API層進行限定,而是直接定義網(wǎng)絡(luò)交換的數(shù)據(jù)格式。這使得實現(xiàn)了AMQP的provider天然性就是跨平臺的。以下是AMQP協(xié)議模型:
2.2 RabbitMQ 的安裝
2.2.1 下載
官網(wǎng)下載地址
: Installing RabbitMQ | RabbitMQ
2.2.2 下載的安裝包
注意
:這里的安裝包是centos7安裝的包
2.2.3 安裝步驟
# 1.將rabbitmq安裝包上傳到linux系統(tǒng)中erlang-22.0.7-1.el7.x86_64.rpmrabbitmq-server-3.7.18-1.el7.noarch.rpm ? # 2.安裝Erlang依賴包rpm -ivh erlang-22.0.7-1.el7.x86_64.rpm ? # 3.安裝RabbitMQ安裝包(需要聯(lián)網(wǎng))yum install -y rabbitmq-server-3.7.18-1.el7.noarch.rpm注意:默認安裝完成后配置文件模板在:/usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example目錄中,需要 將配置文件復(fù)制到/etc/rabbitmq/目錄中,并修改名稱為rabbitmq.config # 4.復(fù)制配置文件cp /usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config ? # 5.查看配置文件位置ls /etc/rabbitmq/rabbitmq.config ? # 6.修改配置文件(參見下圖:)vim /etc/rabbitmq/rabbitmq.config
將上圖中配置文件中紅色部分去掉%%
,以及最后的,
逗號 修改為下圖:
# 7.執(zhí)行如下命令,啟動rabbitmq中的插件管理rabbitmq-plugins enable rabbitmq_management出現(xiàn)如下說明:Enabling plugins on node rabbit@localhost:rabbitmq_managementThe following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatchApplying plugin configuration to rabbit@localhost...The following plugins have been enabled:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch ?set 3 plugins.Offline change; changes will take effect at broker restart. ? # 8.啟動RabbitMQ的服務(wù)systemctl start rabbitmq-serversystemctl restart rabbitmq-serversystemctl stop rabbitmq-server? # 9.查看服務(wù)狀態(tài)(見下圖:)systemctl status rabbitmq-server● rabbitmq-server.service - RabbitMQ brokerLoaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)Active: active (running) since 三 2019-09-25 22:26:35 CST; 7s agoMain PID: 2904 (beam.smp)Status: "Initialized"CGroup: /system.slice/rabbitmq-server.service├─2904 /usr/lib64/erlang/erts-10.4.4/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs...├─3220 erl_child_setup 32768├─3243 inet_gethost 4└─3244 inet_gethost 4.........
# 10.關(guān)閉防火墻服務(wù)systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.systemctl stop firewalld ? ? # 11.訪問web管理界面http://10.15.0.8:15672/
# 12.登錄管理界面username: guestpassword: guest
3. RabiitMQ 配置
3.1RabbitMQ 管理命令行
# 1.服務(wù)啟動相關(guān)systemctl start|restart|stop|status rabbitmq-server ? # 2.管理命令行 用來在不使用web管理界面情況下命令操作RabbitMQrabbitmqctl help 可以查看更多命令 ? # 3.插件管理命令行rabbitmq-plugins enable|list|disable
3.2 web管理界面介紹
3.2.1 overview概覽
-
connections:無論生產(chǎn)者還是消費者,都需要與RabbitMQ建立連接后才可以完成消息的生產(chǎn)和消費,在這里可以查看連接情況
-
channels:通道,建立連接后,會形成通道,消息的投遞獲取依賴通道。
-
Exchanges:交換機,用來實現(xiàn)消息的路由
-
Queues:隊列,即消息隊列,消息存放在隊列中,等待消費,消費后被移除隊列。
3.2.2 Admin用戶和虛擬主機管理
1. 添加用戶
上面的Tags選項,其實是指定用戶的角色,可選的有以下幾個:
-
超級管理員(administrator)
可登陸管理控制臺,可查看所有的信息,并且可以對用戶,策略(policy)進行操作。
-
監(jiān)控者(monitoring)
可登陸管理控制臺,同時可以查看rabbitmq節(jié)點的相關(guān)信息(進程數(shù),內(nèi)存使用情況,磁盤使用情況等)
-
策略制定者(policymaker)
可登陸管理控制臺, 同時可以對policy進行管理。但無法查看節(jié)點的相關(guān)信息(上圖紅框標識的部分)。
-
普通管理者(management)
僅可登陸管理控制臺,無法看到節(jié)點信息,也無法對策略進行管理。
-
其他
無法登陸管理控制臺,通常就是普通的生產(chǎn)者和消費者。
2. 創(chuàng)建虛擬主機
# 虛擬主機為了讓各個用戶可以互不干擾的工作,RabbitMQ添加了虛擬主機(Virtual Hosts)的概念。其實就是一個獨立的訪問路徑,不同用戶使用不同路徑,各自有自己的隊列、交換機,互相不會影響。
3. 綁定虛擬主機和用戶
創(chuàng)建好虛擬主機,我們還要給用戶添加訪問權(quán)限:
點擊添加好的虛擬主機:
進入虛擬機設(shè)置界面: