欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Rabbitmq集群-創(chuàng)新互聯(lián)

1、 rabbitmq介紹
RabbitMQ是一個開源的靠AMQP協(xié)議實(shí)現(xiàn)的服務(wù),服務(wù)器端用Erlang語言編寫,支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)不俗。
AMQP,即Advanced Message Queuing Protocol,高級消息隊(duì)列協(xié)議,是應(yīng)用層協(xié)議的一個開放標(biāo)準(zhǔn),為面向消息的中間件設(shè)計(jì)。消息中間件主要用于組件之間的解耦,消息的發(fā)送者無需知道消息使用者的存在,反之亦然。
它可以使對應(yīng)的客戶端(client)與對應(yīng)的消息中間件(broker)進(jìn)行交互。消息中間件從發(fā)布者(publisher)那里收到消息(發(fā)布消息的應(yīng)用,也稱為producer),然后將他們轉(zhuǎn)發(fā)給消費(fèi)者(consumers,處理消息的應(yīng)用)。由于AMQP是一個網(wǎng)絡(luò)協(xié)議,所以發(fā)布者、消費(fèi)者以及消息中間件可以部署到不同的物理機(jī)器上面
2、 消息隊(duì)列的概念
消息即是信息的載體。為了讓消息發(fā)送者和消息接收者都能夠明白消息所承載的信息(消息發(fā)送者需要知道如何構(gòu)造消息;消息接收者需要知道如何解析消息),它們就需要按照一種統(tǒng)一的格式描述消息,這種統(tǒng)一的格式稱之為消息協(xié)議。所以,有效的消息一定具有某一種格式;而沒有格式的消息是沒有意義的。
3、 消息隊(duì)列應(yīng)用的場景
消息隊(duì)列在實(shí)際應(yīng)用中常用的使用場景。異步處理,應(yīng)用解耦,流量削鋒和消息通訊四個場景
3.1異步處理
場景說明:如用戶注冊后,需要發(fā)送郵件和注冊短信,傳統(tǒng)的做法有兩種
1)串行方式:將注冊信息寫入數(shù)據(jù)庫成功后,發(fā)送注冊郵件,再發(fā)送注冊短信。以上三個任務(wù)全部完成后,返回給客戶端。
2)并行方式:將注冊信息寫入數(shù)據(jù)庫成功后,發(fā)送注冊郵件的同時,發(fā)送注冊短信。以上三個任務(wù)完成后,返回給客戶端。與串行的差別是,并行的方式可以提高處理的時間。
假設(shè)三個業(yè)務(wù)節(jié)點(diǎn)每個使用50毫秒鐘,不考慮網(wǎng)絡(luò)等其他開銷,則串行方式的時間是150毫秒,并行的時間可能是100毫秒。
如以上案例描述,傳統(tǒng)的方式系統(tǒng)的性能(并發(fā)量,吞吐量,響應(yīng)時間)會有瓶頸。如何解決這個問題呢?
引入消息隊(duì)列,將不是必須的業(yè)務(wù)邏輯,異步處理。改造后的架構(gòu)如下:
按照以上約定,用戶的響應(yīng)時間相當(dāng)于是注冊信息寫入數(shù)據(jù)庫的時間,也就是50毫秒。注冊郵件,發(fā)送短信寫入消息隊(duì)列后,直接返回,因此寫入消息隊(duì)列的速度很快,基本可以忽略,因此用戶的響應(yīng)時間可能是50毫秒。
3.2應(yīng)用解耦
場景說明:用戶下單后,訂單系統(tǒng)需要通知庫存系統(tǒng)。傳統(tǒng)的做法是,訂單系統(tǒng)調(diào)用庫存系統(tǒng)的接口
Rabbitmq集群
傳統(tǒng)模式的缺點(diǎn):假如庫存系統(tǒng)無法訪問,則訂單減庫存將失敗,從而導(dǎo)致訂單失敗,訂單系統(tǒng)與庫存系統(tǒng)耦合
如何解決以上問題呢?引入應(yīng)用消息隊(duì)列后的方案,如下圖:
Rabbitmq集群
訂單系統(tǒng):用戶下單后,訂單系統(tǒng)完成持久化處理,將消息寫入消息隊(duì)列,返回用戶訂單下單成功
庫存系統(tǒng):訂閱下單的消息,采用拉/推的方式,獲取下單信息,庫存系統(tǒng)根據(jù)下單信息,進(jìn)行庫存操作
假如:在下單時庫存系統(tǒng)不能正常使用。也不影響正常下單,因?yàn)橄聠魏螅唵蜗到y(tǒng)寫入消息隊(duì)列就不再關(guān)心其他的后續(xù)操作了。實(shí)現(xiàn)訂單系統(tǒng)與庫存系統(tǒng)的應(yīng)用解耦
3.3、流量削峰
流量削鋒也是消息隊(duì)列中的常用場景,一般在秒殺或團(tuán)搶活動中使用廣泛
應(yīng)用場景:秒殺活動,一般會因?yàn)榱髁窟^大,導(dǎo)致流量暴增,應(yīng)用掛掉。為解決這個問題,一般需要在應(yīng)用前端加入消息隊(duì)列。
a、可以控制活動的人數(shù)
b、可以緩解短時間內(nèi)高流量壓垮應(yīng)用
Rabbitmq集群
用戶的請求,服務(wù)器接收后,首先寫入消息隊(duì)列。假如消息隊(duì)列長度超過大數(shù)量,則直接拋棄用戶請求或跳轉(zhuǎn)到錯誤頁面。秒殺業(yè)務(wù)根據(jù)消息隊(duì)列中的請求信息,再做后續(xù)處理
3.4、日志處理
日志處理是指將消息隊(duì)列用在日志處理中,比如Kafka的應(yīng)用,解決大量日志傳輸?shù)膯栴}。架構(gòu)簡化如下
Rabbitmq集群
日志采集客戶端,負(fù)責(zé)日志數(shù)據(jù)采集,定時寫受寫入Kafka隊(duì)列
Kafka消息隊(duì)列,負(fù)責(zé)日志數(shù)據(jù)的接收,存儲和轉(zhuǎn)發(fā)
日志處理應(yīng)用:訂閱并消費(fèi)kafka隊(duì)列中的日志數(shù)據(jù)
3.5、消息通訊
消息通訊是指,消息隊(duì)列一般都內(nèi)置了高效的通信機(jī)制,因此也可以用在純的消息通訊。比如實(shí)現(xiàn)點(diǎn)對點(diǎn)消息隊(duì)列,或者聊天室等
點(diǎn)對點(diǎn)通訊:
Rabbitmq集群
客戶端A和客戶端B使用同一隊(duì)列,進(jìn)行消息通訊。
聊天室通訊:
Rabbitmq集群
客戶端A,客戶端B,客戶端N訂閱同一主題,進(jìn)行消息發(fā)布和接收。實(shí)現(xiàn)類似聊天室效果
4、 常見的消息隊(duì)列產(chǎn)品
4.1、redis
是一個Key-Value的NoSQL數(shù)據(jù)庫,開發(fā)維護(hù)很活躍,雖然它是一個Key-Value數(shù)據(jù)庫存儲系統(tǒng),但它本身支持MQ功能,所以完成可以當(dāng)做一個輕量級的隊(duì)列服務(wù)來使用。對于RabbitMQ和Redis的入隊(duì)和出隊(duì)操作,各執(zhí)行100萬次,每10萬次記錄一次執(zhí)行時間。測試數(shù)據(jù)分為128Bytes、512Bytes、1K和10K四個不同大小的數(shù)據(jù)。實(shí)驗(yàn)表明:入隊(duì)時,當(dāng)數(shù)據(jù)比較小時,Redis的性能要高于RabbitMQ,而如否數(shù)據(jù)大小超過了10K,Redis則慢的無法忍受;出隊(duì)時,無論數(shù)據(jù)大小,Redis都表現(xiàn)出非常好的性能,而RabbitMQ的出隊(duì)性能則遠(yuǎn)低于Redis。
4.2、 mecahceq
持久化消息隊(duì)列(簡稱mcq)是一個輕量級的消息隊(duì)列,特性如下:
簡單易用
處理速度快
多條隊(duì)列
并發(fā)性能好
與memcache的協(xié)議兼容。意味著只要裝了前者的extension即可不需要額外的插件
在zend framework中使用很方便 php開發(fā)框架
4.3、 MSMQ
這是微軟的產(chǎn)品里唯一被認(rèn)為有價值的東西關(guān)鍵是它并不復(fù)雜,除了接收和發(fā)送,沒有別的,它有一些硬性限制,比如大消息體積是4MB。
4.4、 ZeroMQ
ZeroMQ是一個非常輕量級的消息系統(tǒng),號稱最快的消息隊(duì)列系統(tǒng),專門為高吞吐量/低延遲的場景開發(fā),在金融界的應(yīng)用中經(jīng)常可以發(fā)現(xiàn)它。
與RabbitMQ相比,ZeroMQ支持許多高級消息場景,能夠?qū)崿F(xiàn)RabbitMQ不擅長的高級/復(fù)雜的隊(duì)列,但是你必須實(shí)現(xiàn)ZeroMQ框架中的各個塊(比如Socket或Device等)。
ZeroMQ具有一個獨(dú)特的非中間件的模式
你不需要安裝和運(yùn)行一個消息服務(wù)器或中間件,因?yàn)槟愕膽?yīng)用程序?qū)缪葸@個服務(wù)角色。你只需要簡單地引用ZeroMQ程序庫,可以使用NuGet安裝(微軟開發(fā)的.Net平臺),然后你就可以愉快地在應(yīng)用程序之間發(fā)送消息了。
但是ZeroMQ僅提供非持久性的隊(duì)列,即沒有地方可以觀察它是否有問題出現(xiàn),也就是說如果down機(jī),數(shù)據(jù)將會丟失。
4.5、 Jafka/Kafka
Jafka/Kafka(能將消息分散到不同的節(jié)點(diǎn)上)是LinkedIn于2010年12月開發(fā)并開源的一個分布式MQ系統(tǒng),現(xiàn)在是Apache的一個孵化項(xiàng)目,是一個高性能跨語言分布式Publish/Subscribe消息隊(duì)列系統(tǒng),而Jafka是在Kafka之上孵化而來的,即Kafka的一個升級版。具有以下特性:
1)快速持久化,可以在O(1)的系統(tǒng)開銷下進(jìn)行消息持久化;
2)高吞吐,在一臺普通的服務(wù)器上既可以打到10W/s的吞吐速率;
3)完全的分布式系統(tǒng),Broker、Producer、Consumer都原生自動支持分布式,自動實(shí)現(xiàn)復(fù)雜均衡;
4)支持Hadoop數(shù)據(jù)并行加載,統(tǒng)一了在線和離線的消息處理,對于像Hadoop一樣的日志數(shù)據(jù)和離線分析系統(tǒng),但又要求實(shí)時處理的限制,這是一個可行的解決方案。
5)相對于ActiveMQ是一個非常輕量級的消息系統(tǒng),除了性能非常好之外,還是一個工作良好的分布式系統(tǒng)
4.6、 Apache ActiveMQ
ActiveMQ居于(RabbitMQ&ZeroMQ)之間,類似于ZemoMQ,支持高級消息場景,支持?jǐn)?shù)據(jù)的持久化
ActiveMQ被譽(yù)為Java世界的中堅(jiān)力量。它有很長的歷史,且被廣泛使用。它還是跨平臺的,給那些非微軟平臺的產(chǎn)品提供了一個天然的集成接入點(diǎn)。
然而它只有跑過了MSMQ才有可能被考慮。如需配置ActiveMQ則需要在目標(biāo)機(jī)器上安裝Java環(huán)境。
類似于RabbitMQ,它易于實(shí)現(xiàn)高級場景,而且只需付出低消耗。它被譽(yù)為消息中間件的“瑞士軍刀”。
4.7、 RabbitMQ
RabbitMQ是使用Erlang編寫的一個開源消息隊(duì)列,本身支持很多的協(xié)議:AMQP(高級消息隊(duì)列協(xié)議), XMPP(可擴(kuò)展消息處理現(xiàn)場協(xié)議), SMTP(簡單郵件傳輸協(xié)議), STONP(簡單文本定向消息協(xié)議),也正是如此,使的它變的非常重量級,更適合于企業(yè)級的開發(fā)。
它實(shí)現(xiàn)了代理(Broker)架構(gòu),意味著消息在發(fā)送到客戶端之前可以在中央節(jié)點(diǎn)上排隊(duì)。此特性使得RabbitMQ易于使用和部署,適宜于很多場景如路由、負(fù)載均衡或消息持久化等,用消息隊(duì)列只需幾行代碼即可搞定。但是,這使得它的可擴(kuò)展性差,速度較慢,因?yàn)橹醒牍?jié)點(diǎn)增加了延遲,消息封裝后也比較大。如需配置RabbitMQ則需要在目標(biāo)機(jī)器上安裝Erlang環(huán)境
最終,上述同類產(chǎn)品:
1. 都有各自客戶端API或支持多種編程語言
2. 都有大量的文檔
3. 都提供了積極的支持
4. ActiveMQ、RabbitMQ、MSMQ、Redis都需要啟動服務(wù)進(jìn)程,這些都可以監(jiān)控 和配置,其他幾個就有問題了
5. 都相對提供了良好的可靠性(一致性)、擴(kuò)展性和負(fù)載均衡,當(dāng)然還有性能

創(chuàng)新新互聯(lián),憑借十多年的成都做網(wǎng)站、網(wǎng)站建設(shè)經(jīng)驗(yàn),本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有近千家案例。做網(wǎng)站建設(shè),選成都創(chuàng)新互聯(lián)

5、Rabbitmq基礎(chǔ)概念
應(yīng)用場景框架
Rabbitmq集群
RabbitMQ Server:也叫broker server,它不是運(yùn)送食物的卡車,而是一種傳輸服務(wù)。原話是RabbitMQ isn’t a food truck, it’s a delivery service. 他的角色就是維護(hù)一條從Producer到Consumer的路線,保證數(shù)據(jù)能夠按照指定的方式進(jìn)行傳輸。但是這個保證也不是100%的保證,但是對于普通的應(yīng)用來說這已經(jīng)足夠了。當(dāng)然對于商業(yè)系統(tǒng)來說,可以再做一層數(shù)據(jù)一致性的guard(監(jiān)控是否執(zhí)行成功),就可以徹底保證系統(tǒng)的一致性了。
Client A & B:也叫Producer,數(shù)據(jù)的發(fā)送方。Create messages and Publish (Send) them to a broker server (RabbitMQ)。一個Message有兩個部分:Payload(有效載荷)和Label(標(biāo)簽)。Payload顧名思義就是傳輸?shù)臄?shù)據(jù),Label是Exchange的名字或者說是一個tag,它描述了payload,而且RabbitMQ也是通過這個label來決定把這個Message發(fā)給哪個Consumer。AMQP僅僅描述了label,而RabbitMQ決定了如何使用這個label的規(guī)則。
Client 1,2,3:也叫Consumer,數(shù)據(jù)的接收方。Consumers attach to a broker server (RabbitMQ) and subscribe to a queue。把queue比作是一個有名字的郵箱。當(dāng)有Message到達(dá)某個郵箱后,RabbitMQ把它發(fā)送給它的某個訂閱者即Consumer。當(dāng)然可能會把同一個Message發(fā)送給很多的Consumer。在這個Message中,只有payload,label已經(jīng)被刪掉了。對于Consumer來說,它是不知道誰發(fā)送的這個信息的。就是協(xié)議本身不支持。但是當(dāng)然了如果Producer發(fā)送的payload包含了Producer的信息就另當(dāng)別論了。
對于一個數(shù)據(jù)從Producer到Consumer的正確傳遞,還有三個概念需要明確:exchanges, queues and bindings。
Exchanges:消息交換機(jī),它指定消息按什么規(guī)則,路由到哪個隊(duì)列
Queues:消息隊(duì)列載體,每個消息都會被投入到一個或多個隊(duì)列
Bindings:它的作用就是把exchange和queue按照路由規(guī)則綁定起來
Routing Key:路由關(guān)鍵字,exchange根據(jù)這個關(guān)鍵字進(jìn)行消息投遞
Connection:就是一個TCP的連接。
Producer和Consumer都是通過TCP連接到RabbitMQ Server的。以后我們可以看到,程序的起始處就是建立這個TCP連接。
Channel:虛擬連接。它建立在上述的TCP連接中。數(shù)據(jù)流動都是在Channel中進(jìn)行的。也就是說,一般情況是程序起始建立TCP連接,第二步就是建立這個Channel。
Vhost:虛擬主機(jī),一個broker里可以開設(shè)多個vhost,用作不同用戶的權(quán)限分離。每個virtual host本質(zhì)上都是一個RabbitMQ Server,擁有它自己的queue,exchagne,和bings rule等等。這保證了你可以在多個不同的application中使用RabbitMQ。
6、Channel的選擇
那么,為什么使用Channel,而不是直接使用TCP連接?
對于OS來說,建立和關(guān)閉TCP連接是有代價的,頻繁的建立關(guān)閉TCP連接對于系統(tǒng)的性能有很大的影響,而且TCP的連接數(shù)也有限制,這也限制了系統(tǒng)處理高并發(fā)的能力。但是,在TCP連接中建立Channel是沒有上述代價的。對于Producer或者Consumer來說,可以并發(fā)的使用多個Channel進(jìn)行Publish或者Receive。
7、消息隊(duì)列執(zhí)行過程
客戶端連接到消息隊(duì)列服務(wù)器,打開一個Channel。
客戶端聲明一個Exchange,并設(shè)置相關(guān)屬性。
客戶端聲明一個Queue,并設(shè)置相關(guān)屬性。
客戶端使用Routing key,在Exchange和Queue之間建立好綁定關(guān)系。
客戶端投遞消息到Exchange。
Exchange接收到消息后,就根據(jù)消息的key和已經(jīng)設(shè)置的Binding,進(jìn)行消息路由,將消息投遞到一個或多個隊(duì)列里。
8、消息持久化
RabbitMQ支持消息的持久化,也就是數(shù)據(jù)寫在磁盤上,為了數(shù)據(jù)安全考慮,大多數(shù)用戶都會選擇持久化。消息隊(duì)列持久化包括3個部分:
Exchange持久化,在聲明時指定durable => 1
Queue持久化,在聲明時指定durable => 1
消息持久化,在投遞時指定delivery_mode => 2(1是非持久化)
若Exchange和Queue都是持久化的,那么它們之間的Binding也是持久化的;而Exchange和Queue兩者之間有一個持久化,一個非持久化,就不允許建立綁定。
Consumer從durable queue中取回一條消息之后并發(fā)回了ack消息,RabbitMQ就會將其標(biāo)記,方便后續(xù)垃圾回收。如果一條持久化的消息沒有被consumer取走,RabbitMQ重啟之后會自動重建exchange和queue(以及bingding關(guān)系),消息通過持久化日志重建再次進(jìn)入對應(yīng)的queues,exchanges。
9、安裝rabbitmq

Rabbitmq集群

 24  yum  -y   localinstall  erlang-18.1-1.el6.x86_64.rpm   rabbitmq-server-3.6.6-1.el6.noarch.rpm   socat-1.7.3.2-2.el7.x86_64.rpm   (安裝rabbitmq)
  22  chkconfig  --add  rabbitmq-server     (加入開機(jī)自啟)
   25  chkconfig  rabbitmq-server on        (開啟rabbitmq開機(jī)自啟)
   26  /etc/init.d/rabbitmq-server  start        (開啟rabbitmq)
查看rebbitmq是否運(yùn)行
27  ps -ef | grep rabbitmq

Rabbitmq集群
30 rabbitmq-plugins enable rabbitmq_management
Rabbitmq集群
#開啟rabbitmq的web管理插件,用戶可以通過瀏覽器進(jìn)行訪問
31 rabbitmqctl add_user admin 123.com
Rabbitmq集群
#創(chuàng)建登錄用戶admin 密碼123.com
32 rabbitmqctl set_user_tags admin administrator
Rabbitmq集群
#將admin用戶添加到管理員組當(dāng)中

Rabbitmq集群
查看端口netstat -anpt | grep 15672

瀏覽器訪問IP地址:15672
Rabbitmq集群
Rabbitmq集群
10、Rabbitmq集群
(1.40-1.60的操作)
集群方式
Rabbitmq集群大概分為二種方式:

  1. 普通模式:默認(rèn)的集群模式。消息的實(shí)體只存在一個節(jié)點(diǎn)上
  2. 鏡像模式:把需要的隊(duì)列做成鏡像隊(duì)列,存在于多個節(jié)點(diǎn)。
    ha-mode:all 列隊(duì)到所有節(jié)點(diǎn)上
    exatly:隨機(jī)鏡像到其他節(jié)點(diǎn)上
    nodes:鏡像到指定節(jié)點(diǎn)上
    集群節(jié)點(diǎn)模式:
    1、 內(nèi)存節(jié)點(diǎn):工作在內(nèi)存上
    2、 磁盤節(jié)點(diǎn):工作在磁盤上
    例外:內(nèi)存節(jié)點(diǎn)和磁盤節(jié)點(diǎn)共同存在,提高了訪問速度有增加了持久化
    相比內(nèi)存節(jié)點(diǎn)雖然不寫入磁盤,但是它執(zhí)行比磁盤節(jié)點(diǎn)要好。集群中,只需要一個磁盤節(jié)點(diǎn)來保存狀態(tài) 就足夠了如果集群中只有內(nèi)存節(jié)點(diǎn),那么不能停止它們,否則所有的狀態(tài),消息等都會丟失。
    安裝rabbitmq
    Rabbitmq集群
    24  yum  -y   localinstall  erlang-18.1-1.el6.x86_64.rpm   rabbitmq-server-3.6.6-1.el6.noarch.rpm   socat-1.7.3.2-2.el7.x86_64.rpm   (安裝rabbitmq)
    22  chkconfig  --add  abbitmq-server     (加入開機(jī)自啟)
    25  chkconfig  rabbitmq-server on        (開啟rabbitmq開機(jī)自啟)
    26  /etc/init.d/rabbitmq-server  start        (開啟rabbitmq)
    查看rebbitmq是否運(yùn)行
    27  ps -ef | grep rabbitmq

    Rabbitmq集群

    [root@localhost ~]# vim /etc/hosts   (四臺主機(jī)都要操作)
    192.168.1.30  rabbitmq1
    192.168.1.40  rabbitmq2
    192.168.1.50  rabbitmq3
    192.168.1.60  rabbitmq4
    ##不想每臺都手寫可以使用scp
    [root@rabbitmq1 ~]# scp   /etc/hosts root@192.168.1.40:/etc/hosts ##提示輸入yes

在rabbitmq1上查看cookie節(jié)點(diǎn)信息并復(fù)制
##安裝集群的時候需要節(jié)點(diǎn)cookie信息一致
Rabbitmq集群

rabbitmq2,3和4上將文件cookie信息和rabbitmq1改成相同

[root@rabbitmq2 ~]# echo  MIIPQWTLIDGVGKMDWQFX > /var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq3 ~]#echo  MIIPQWTLIDGVGKMDWQFX > /var/lib/rabbitmq/.erlang.cookie   
[root@rabbitmq4 ~]#echo  MIIPQWTLIDGVGKMDWQFX > /var/lib/rabbitmq/.erlang.cookie

配置完成后reboot重啟虛擬機(jī),
##注意:2和3需要手動重啟,重啟完成后主機(jī)名會變?yōu)閞abbitmq1、2、3,啟動不了的開機(jī)界面會一直停留在這個地方5-6分鐘恢復(fù),可以再次手動重啟一下就不會這樣了
Rabbitmq集群
[root@rabbitmq1 ~]# ps -ef | grep rabbit ##重啟完成后查看是否啟動
Rabbitmq集群
在rabbitmq1上操作
45 rabbitmqctl stop_app
Rabbitmq集群
46 rabbitmqctl reset
Rabbitmq集群
47 rabbitmqctl start_app
Rabbitmq集群
##設(shè)置完成后會提示節(jié)點(diǎn)名稱并復(fù)制

在rabbitmq2、3,4上加入節(jié)點(diǎn)(2,3和4操作相同)

[root@rabbitmq2 ~]# rabbitmqctl  stop_app
Stopping node rabbit@rabbitmq2 ...
[root@rabbitmq2 ~]# rabbitmqctl  reset
Resetting node rabbit@rabbitmq2 ...
[root@rabbitmq2 ~]# rabbitmqctl   join_cluster --ram rabbit@rabbitmq1
Clustering node rabbit@rabbitmq2 with rabbit@rabbitmq1 ...
##-join_cluter加入集群 --ram 以內(nèi)存節(jié)點(diǎn)方式加入后面跟節(jié)點(diǎn)名rabbit@rabbitmq1
[root@rabbitmq2 ~]# rabbitmqctl  start_app
Starting node rabbit@rabbitmq2 ...
[root@rabbitmq2 ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  amqp_client
  rabbitmq_management_agent
  rabbitmq_management
Applying plugin configuration to rabbit@rabbitmq2... started 6 plugins.
##開啟rabbitmq插件,不打開的話,就不能使用瀏覽器訪問rabbit頁面進(jìn)行管理

回到rabbitmq1上創(chuàng)建管理用戶和查看集群狀態(tài)

[root@rabbitmq1 ~]# rabbitmqctl add_user admin redhat
Creating user "admin" ...
[root@rabbitmq1 ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
##創(chuàng)建用戶admin密碼為redhat,并加入到管理員組中
[root@rabbitmq1 ~]# rabbitmq-plugins enable rabbitmq_management
Plugin configuration unchanged.

Applying plugin configuration to rabbit@rabbitmq1... nothing to do.
[root@rabbitmq1 ~]# rabbitmqctl cluster_status   ##查看節(jié)點(diǎn)狀態(tài)

##rabbit1工作模式為磁盤節(jié)點(diǎn)  rabbit2、3,4為ram內(nèi)存節(jié)點(diǎn)模式
##running_nodes:正在運(yùn)行的節(jié)點(diǎn)
##cluster_name:節(jié)點(diǎn)名稱
##alarms:發(fā)生問題時rabbit1、2、3,4會進(jìn)行報(bào)警

Rabbitmq集群
瀏覽器訪問進(jìn)行管理:
http://192.168.1.30:15672 用戶名為admin密碼redhat
Rabbitmq集群
Rabbitmq集群
點(diǎn)擊vxgp后在下面找到premissions選項(xiàng)設(shè)置為admin用戶權(quán)限訪問
Rabbitmq集群
設(shè)置完成后再次查看
Rabbitmq集群
設(shè)置匹配策略
Rabbitmq集群
發(fā)布消息:
Rabbitmq集群
Rabbitmq集群

設(shè)置發(fā)布消息內(nèi)容
Rabbitmq集群
Rabbitmq集群
可以看到已經(jīng)有通知了
Rabbitmq集群

添加rabbitmq節(jié)點(diǎn):rabbitmq4 192.168.83.4
rabbitmq1、2、3添加hosts主機(jī)都添加192.168.83.4 rabbitmq4

rabbitmq4安裝同上面安裝一樣
[root@localhost ~]# chkconfig rabbitmq-server on
[root@localhost ~]# /etc/init.d/rabbitmq-server  start 
[root@localhost ~]# echo  MIIPQWTLIDGVGKMDWQFX > /var/lib/rabbitmq/.erlang.cookie
[root@localhost ~]# reboot
[root@rabbitmq4 ~]# rabbitmqctl  stop_app
[root@rabbitmq4 ~]# rabbitmqctl  reset
[root@rabbitmq4 ~]#  rabbitmqctl join_cluster --ram rabbit@rabbitmq1

刪除節(jié)點(diǎn):
##在rabbitmq4上先停止節(jié)點(diǎn)
[root@rabbitmq1 ~]# rabbitmqctl stop_app
回到主節(jié)點(diǎn)上rabbitmq1
[root@rabbitmq1 ~]# rabbitmqctl -n rabbit@rabbitmq1 forget_cluster_node rabbit@rabbitmq4
Removing node rabbit@rabbitmq4 from cluster ...
##-n 指定節(jié)點(diǎn)名稱
#=forget_cluster_node 后面跟要刪除的節(jié)點(diǎn)名稱
Rabbitmq集群

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享題目:Rabbitmq集群-創(chuàng)新互聯(lián)
文章鏈接:http://www.chinadenli.net/article12/djddgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)做網(wǎng)站企業(yè)建站網(wǎng)站內(nèi)鏈響應(yīng)式網(wǎng)站微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)