中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

誰教我做啊誰會做網(wǎng)站啊整站排名服務(wù)

誰教我做啊誰會做網(wǎng)站啊,整站排名服務(wù),中國專業(yè)室內(nèi)設(shè)計公司排名,行業(yè)網(wǎng)站策劃方案前言:前面一章內(nèi)容太多,寫了kafka,這里就寫一下同類產(chǎn)品rabbitmq,rabbitmq內(nèi)容較少,正好用來過度一下,概念還是會用一些例子來說明,實際部署的內(nèi)容會放在概念之后。 1、基礎(chǔ)概念 1.1、MQ消息隊…

前言:前面一章內(nèi)容太多,寫了kafka,這里就寫一下同類產(chǎn)品rabbitmq,rabbitmq內(nèi)容較少,正好用來過度一下,概念還是會用一些例子來說明,實際部署的內(nèi)容會放在概念之后。

1、基礎(chǔ)概念

1.1、MQ消息隊列簡介

MQ 全稱為Message Queue, 消息隊列。是一種應(yīng)用程序?qū)?/span>應(yīng)用程序的通信方法。應(yīng)用程序通過讀寫出入隊列的消息(針對應(yīng)用程序的數(shù)據(jù))來通信,而無需專用連接來鏈接它們。消息傳遞指的是程序之間,通過在消息中發(fā)送數(shù)據(jù)進行通信,而不是通過直接調(diào)用彼此來通信。隊列的使用除去了接收和發(fā)送應(yīng)用程序,同時執(zhí)行的要求。 在項目中,將一些無需即時返回且耗時的操作提取出來,進行了異步處理,而這種異步處理的方式,大大的節(jié)省了服務(wù)器的請求響應(yīng)時間,從而提高了系統(tǒng)的吞吐量。

想象你在一家快餐店里點餐。通常情況下,你會排隊等待點餐和取餐,這可能會花費很長時間,特別是在高峰時段?,F(xiàn)在,快餐店引入了一個新的系統(tǒng):你可以在點餐時拿到一個號碼牌,然后繼續(xù)坐下或者做其他事情。當你的餐點準備好時,店員會按照號碼牌號叫你去取。這樣一來,你不必在柜臺前等待,可以自由地做其他事情,而店員也能夠更高效地處理點餐和準備食物,避免了大家在柜臺前的擁堵和等待。

在這個比喻中:

  • 號碼牌就像消息隊列中的消息,每個點餐的顧客(應(yīng)用程序)都有一個唯一的號碼(消息),用來標識自己的訂單(任務(wù))。
  • 店員就像消息隊列的處理程序,負責處理顧客(應(yīng)用程序)的訂單(任務(wù)),并通知顧客(應(yīng)用程序)何時可以取餐(任務(wù)完成)。
  • 等待時間減少,就像消息隊列能夠減少應(yīng)用程序之間直接等待的時間,提高系統(tǒng)的效率和吞吐量

1.2、消息隊列核心功能

解耦(將不同的系統(tǒng)分離開):避免操作等待時長不同的倆個系統(tǒng)互相浪費資源

冗余(存儲):主要是用于存儲請求

擴展性:擴充消息隊列應(yīng)對可能的數(shù)據(jù)流

削峰:核心功能,即時流量,閑時處理

可恢復(fù)性:數(shù)據(jù)丟失可以恢復(fù)

順序保證:保證訪問順序

緩沖:作為大量數(shù)據(jù)(消息)的暫存點

異步通信:減少應(yīng)用程序之間直接等待的時間

1.3、消息隊列分類

1)P2P模式(安全)

Point-to-Point(P2P)點到點,P2P模式包含三個角色:

1.消息隊列(Queue)

2.發(fā)送者(Sender)

3.接收者(Receiver)。

每個消息都被發(fā)送到一個特定的隊列,接收者從隊列中獲取消息。隊列保留著消息,直到它們被消費或超時。 P2P的特點如下:

? 每個消息只有一個消費者(Consumer),即一旦被消費,消息就不再在消息隊列中

? 發(fā)送者和接收者之間在時間上沒有依賴性,也就是說當發(fā)送者發(fā)送了消息之后,不管接收者有沒有正在運行它不會影響到消息被發(fā)送到隊列 ? 接收者在成功接收消息之后,需向隊列應(yīng)答成功。

? 如果希望發(fā)送的每個消息都會被成功處理的話,那么需要P2P模式

2)Pub/Sub模式(并發(fā))

Pub/Sub模式包含三個角色:

主題(Topic)

發(fā)布者(Publisher)

訂閱者(Subscriber) 。

多個發(fā)布者將消息發(fā)送到Topic,系統(tǒng)將這些消息傳遞給多個訂閱者。Pub/Sub的特點如下:

? 每個消息可以有多個消費者 ? 發(fā)布者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須創(chuàng)建一個訂閱者之后,才能消費發(fā)布者的消息

? 為了消費消息,訂閱者必須保持運行的狀態(tài) ? 如果希望發(fā)送的消息可以不被做任何處理、或者只被一個消息者處理、或者可以被多個消費者處理的話,那么可以采用Pub/Sub模型

主要是應(yīng)對超高并發(fā),成本遠高于第一種。

1.4、同類產(chǎn)品

Kafka:屬于Apache,上一章內(nèi)容

RabbitMQ:RabbitMQ是使用Erlang語言開發(fā)的開源消息隊列系統(tǒng),基于AMQP協(xié)議來實現(xiàn),RabbitMQ比Kafka可靠。

RocketMQ:RocketMQ是阿里開源的消息中間件,它是純Java開發(fā),阿里用的多。

1.5、RabbitMQ簡介

RabbitMQ是一個在AMQP(Advanced Message Queuing Protocol )基礎(chǔ)上實現(xiàn)的,可復(fù)用的企業(yè)消息系統(tǒng)。它可以用于大型軟件系統(tǒng),各個模塊之間的高效通信,支持高并發(fā),支持可擴展。它支持多種客戶端如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX,持久化,用于在分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息,在易用性、擴展性、高可用性等方面表現(xiàn)不俗。

RabbitMQ是使用Erlang編寫的一個開源的消息隊列,本身支持很多的協(xié)議:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它變的非常重量級,更適合于企業(yè)級的開發(fā)。它同時實現(xiàn)了一個Broker構(gòu)架,這意味著消息在發(fā)送給客戶端時先在中心隊列排隊,對路由(Routing)、負載均衡(Load balance)或者數(shù)據(jù)持久化都有很好的支持。

1.6、RabbitMQ架構(gòu)圖示

RabbitMQ從整體上來看是一個典型的生產(chǎn)者消費者模型,主要負責接收、存儲和轉(zhuǎn)發(fā)消息

1.7、基礎(chǔ)術(shù)語

這部分內(nèi)容在工作中基本用不上,只是輔助理解一下

Message (消息):消息由消息頭和消息體組成。消息體是不透明的,包含一些可選屬性,如路由鍵 (routing-key)、優(yōu)先級 (priority)、持久性存儲 (delivery-mode) 等。

Publisher (消息生產(chǎn)者):發(fā)布者是向交換器發(fā)送消息的客戶端程序,例如一個Java或PHP程序。

Exchange (交換器):交換器接收發(fā)布者發(fā)送的消息,并根據(jù)規(guī)則將消息路由到一個或多個隊列中去。消息必須經(jīng)過交換器才能進入隊列。

Queue (消息隊列):隊列用于存儲消息,直到消費者連接并將其取走。隊列是消息的容器和終點,可以由一個或多個發(fā)布者投遞消息。

Binding (綁定):綁定定義了交換器和隊列之間的關(guān)聯(lián)規(guī)則?;诼酚涉I,綁定將消息從交換器路由到相應(yīng)的隊列中。

Virtual Host (虛擬主機):虛擬主機是獨立的消息服務(wù)器區(qū)域,包含交換器、隊列及相關(guān)對象。每個虛擬主機有自己的身份認證和加密環(huán)境,可以看作是RabbitMQ的一個小型實例。

Broker (代理):代理是RabbitMQ的服務(wù)器實體,類似于在Linux上創(chuàng)建的虛擬機。

Connection (連接):連接是RabbitMQ服務(wù)器和應(yīng)用程序服務(wù)之間的TCP連接。

Channel (信道):信道是在TCP連接內(nèi)創(chuàng)建的虛擬連接,用于在服務(wù)器和客戶端之間傳遞消息。一條TCP連接可以包含多個信道,用于并行地發(fā)送、接收和訂閱消息。

Consumer (消息消費者):消費者是從消息隊列中獲取消息的客戶端應(yīng)用程序,與生產(chǎn)者類似,是處理消息的程序。

消息是像是裝在信封里的郵件,它由消息頭和消息體組成。消息體是不透明的,包含了一些可選屬性,如郵件的送達地址、優(yōu)先級別、是否需要特殊保護等。發(fā)布者就像是寄信人,負責將信封(消息)投遞到郵箱(交換器)里。你可以把發(fā)布者想象成是發(fā)送電子郵件的Java或PHP程序。交換器是一個智能的郵局,它接收發(fā)布者寄來的信件(消息),然后根據(jù)地址(路由鍵)將這些信件發(fā)送到正確的郵箱(隊列)里。消息必須先經(jīng)過交換器,才能最終進入隊列中等待被取走。隊列就像是一個裝滿信件的郵箱,它保存信件直到有消費者來取走。隊列不僅是存儲消息的地方,也是消息的目的地。一個消息可以被寄到一個或多個郵箱里,這取決于發(fā)布者的設(shè)定。消息會一直留在隊列里,直到有消費者連接到隊列并把它取走為止。綁定就像是一條明確的送達規(guī)則,連接了郵箱(隊列)和寄信人(交換器)。通過綁定,可以根據(jù)地址(路由鍵)將交換器和隊列聯(lián)系起來,使交換器像是一個根據(jù)地址送信的郵遞員。虛擬主機就像是一片獨立的郵政區(qū)域,其中包含了若干個交換器、隊列和相關(guān)的物件。每個虛擬主機都有自己獨特的身份認證和安全加密環(huán)境。在RabbitMQ中,虛擬主機可以看作是一個完整的消息服務(wù)器,擁有自己的郵箱、郵遞員和規(guī)則。代理可以理解為RabbitMQ的實際運行服務(wù)器,就像是在計算機系統(tǒng)中創(chuàng)建的一個虛擬郵局。連接是建立在RabbitMQ服務(wù)器和應(yīng)用程序服務(wù)之間的通道,就像是打開了一條電線,讓信件可以在兩者之間傳遞。信道是連接中的虛擬通道,可以理解為一條獨立的光纖。在一條連接上可以創(chuàng)建多個信道,每個信道獨立處理消息的發(fā)送、接收和訂閱。消費者就像是一個專門去郵箱里取信的人,它表示一個從隊列中取走消息的客戶端程序。消費者和發(fā)布者類似,只不過它們的工作是接收和處理消息。

1.8、RabbitMQ的通信過程

這是關(guān)于RabbitMQ通信過程的整理:

  1. 生產(chǎn)者 P1 發(fā)送消息: P1生產(chǎn)消息并將其發(fā)送到RabbitMQ服務(wù)器的 Exchange。

  2. Exchange 接收消息: Exchange接收到消息后,根據(jù)消息的 ROUTING KEY 將消息路由到匹配的 Queue1。

  3. Queue1 接收消息: Queue1收到消息并將其存儲,準備發(fā)送給訂閱者。

  4. 消費者 C1 訂閱消息: 訂閱者 C1 已經(jīng)訂閱了 Queue1 中的消息。

  5. C1 接收消息: Queue1將消息發(fā)送給訂閱者 C1,C1接收到消息并進行處理。

  6. C1 發(fā)送 ACK 確認: C1處理完消息后,向 Queue1 發(fā)送 ACK 確認消息,表示已成功接收并處理了消息。

  7. Queue1 收到 ACK: Queue1收到 ACK 后,確認消息已成功傳遞給訂閱者,并可以安全地刪除隊列中緩存的此條消息。

這個流程展示了RabbitMQ中消息從生產(chǎn)者到消費者的完整傳遞過程,包括消息的路由、存儲和確認處理。

2、單機部署RabbitMQ

2.1、基礎(chǔ)環(huán)境

環(huán)境已更換國內(nèi)源與epel源,三臺之間域名解析已配置,防火墻和selinux已關(guān)閉。

主機名需配置完畢重新加載,否則后續(xù)無法設(shè)置節(jié)點!!!

IP角色/主機名/域名
192.168.188.128rabbitmq1
192.168.188.129rabbitmq2
192.168.188.130rabbitmq3

2.2、安裝Erlang

這里官網(wǎng)推薦的方式為配置erlang源,然后使用yum下載,這種方式適用于外網(wǎng)環(huán)境較穩(wěn)定的操作環(huán)境

[root@rabbitmq1 ~]# wget https://objects.githubusercontent.com/github-production-release-asset-2e65be/47679505/a5e9b597-d9aa-44a2-960f-670142bae779?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240705%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240705T132027Z&X-Amz-Expires=300&X-Amz-Signature=4b4e673b94952cf24ce0086e6a957ea2e584553fda51bacae46a8031b502b189&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=47679505&response-content-disposition=attachment%3B%20filename%3Derlang-23.3.4.18-1.el7.x86_64.rpm&response-content-type=application%2Foctet-stream
[root@rabbitmq1 ~]# yum install -y  erlang-23.3.4.18-1.el7.x86_64.rpm

2.3、安裝RabbitMQ

這里有時候會斷連,多試幾次

[root@rabbitmq1 ~]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.13/rabbitmq-server-3.7.13-1.el7.noarch.rpm
[root@rabbitmq1 ~]# yum install -y rabbitmq-server-3.7.13-1.el7.noarch.rpm

2.4、修改配置文件

[root@rabbitmq1 ~]# cp /usr/share/doc/rabbitmq-server-3.7.13/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
[root@rabbitmq1 ~]# vim /etc/rabbitmq/rabbitmq.config#    去掉注釋%%和逗號,如下圖所示,此處為開啟默認賬號

2.5、安裝插件并啟動服務(wù)

?安裝啟動rabbitmq管理插件,啟動rabbitmq,查看節(jié)點狀態(tài)

[root@rabbitmq1 ~]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@rabbitmq1:
rabbitmq_management
The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch
Applying plugin configuration to rabbit@rabbitmq1...
The following plugins have been enabled:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatchset 3 plugins.
Offline change; changes will take effect at broker restart.
[root@rabbitmq1 ~]# systemctl restart rabbitmq-server
[root@rabbitmq1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq1 ...
[{nodes,[{disc,[rabbit@rabbitmq1]}]},{running_nodes,[rabbit@rabbitmq1]},{cluster_name,<<"rabbit@rabbitmq1">>},{partitions,[]},{alarms,[{rabbit@rabbitmq1,[]}]}]

2.6、使用瀏覽器訪問

訪問rabbitmq服務(wù)器的15672端口,默認用戶名/密碼:guest/guest

2.7、web頁面管理

這里為開發(fā)人員使用,運維盡量不要去這個頁面,這里需要開發(fā)人員根據(jù)項目需要配置,運維只負責搭建環(huán)境!!!

添加用戶

2.8、 使用命令行進行管理

執(zhí)行以下操作

[root@rabbitmq1 ~]# rabbitmqctl list_queues#    查看所有的隊列Timeout: 60.0 seconds ...
Listing queues for vhost / ...
[root@rabbitmq1 ~]# rabbitmqctl reset#    清除所有的隊列Error: this command requires the 'rabbit' app to be stopped on the target node. Stop it with 'rabbitmqctl stop_app'.
Arguments given:resetUsage:
rabbitmqctl [-n <node>] [-l] [-q] reset
[root@rabbitmq1 ~]# rabbitmqctl add_user yonghuming zheshimima#    添加用戶,語法看命令拼音部分Adding user "yonghuming" ...
[root@rabbitmq1 ~]# rabbitmqctl set_user_tags yonghuming administrator#    分配角色為管理員Setting tags for user "yonghuming" to [administrator] ...

返回web頁面查看新增賬號

授權(quán)用戶操作步驟如下

[root@rabbitmq1 ~]# rabbitmqctl add_vhost xunizhujimingzi#    新增虛擬主機Adding vhost "xunizhujimingzi" ...[root@rabbitmq1 ~]# rabbitmqctl set_permissions -p xunizhujimingzi yonghuming ".*" ".*" ".*"
Setting permissions for user "yonghuming" in vhost "xunizhujimingzi" ...#    將新虛擬主機授權(quán)給新用戶,后面三個”*”代表用戶擁有配置、寫、讀全部權(quán)限

返回web頁面查看?

查看虛擬主機選項卡

3、RabbitMQ集群部署

3.1、簡介

消息中間件RabbitMQ,一般以集群方式部署, 主要提供消息的接受和發(fā)送,實現(xiàn)各微服務(wù)之間的消息異步。可以與負載均衡結(jié)合形成RabbitMQ+HA架構(gòu)

3.2、原理介紹

1)cookie

RabbitMQ底層是通過Erlang架構(gòu)來實現(xiàn)的,所以rabbitmqctl會啟動Erlang節(jié)點,并基于Erlang節(jié)點來使用Erlang系統(tǒng)連接RabbitMQ節(jié)點,在連接過程中需要正確的Erlang Cookie和節(jié)點名稱,Erlang節(jié)點通過交換Erlang Cookie以獲得認證來實現(xiàn)分布式,所以部署Rabbitmq分布式集群時要先安裝Erlang,并把其中一個服務(wù)的cookie復(fù)制到另外的節(jié)點

2)內(nèi)存節(jié)點和磁盤節(jié)點

RabbitMQ集群中,各個RabbitMQ為對等節(jié)點,即每個節(jié)點均提供給客戶端連接,進行消息的接收和發(fā)送。節(jié)點分為內(nèi)存節(jié)點和磁盤節(jié)點,區(qū)別是消息存儲的位置不同,一般都建立為磁盤節(jié)點,為了防止機器重啟后的消息消失

3)普通模式和鏡像模式

RabbitMQ的傳統(tǒng)集群模式一般分為兩種,普通模式和鏡像模式。消息隊列通過RabbitMQ HA鏡像隊列進行消息隊列實體復(fù)制。

普通模式

普通模式下,以兩個節(jié)點(rabbit01、rabbit02)為例來進行說明。對于消息隊列來說,消息實體只存在于其中一個節(jié)點rabbit01(或者rabbit02),rabbit01和rabbit02兩個節(jié)點僅有相同的元數(shù)據(jù),即隊列的結(jié)構(gòu)。當消息進入rabbit01節(jié)點的Queue后,consumer從rabbit02節(jié)點消費時,RabbitMQ會臨時在rabbit01、rabbit02間進行消息傳輸,把A中的消息實體取出并經(jīng)過B發(fā)送給consumer。所以consumer應(yīng)盡量連接每一個節(jié)點,從中取消息。即對于同一個邏輯隊列,要在多個節(jié)點建立物理Queue。否則無論consumer連rabbit01或rabbit02,出口總在rabbit01,會產(chǎn)生瓶頸

鏡像模式

鏡像模式下,將需要消費的隊列變?yōu)殓R像隊列,存在于多個節(jié)點,這樣就可以實現(xiàn)RabbitMQ的HA高可用性。作用就是消息實體會主動在鏡像節(jié)點之間實現(xiàn)同步,而不是像普通模式那樣,在consumer消費數(shù)據(jù)時臨時讀取。缺點就是,集群內(nèi)部的同步通訊會占用大量的網(wǎng)絡(luò)帶寬。

3.3、環(huán)境要求

1、所有節(jié)點需要再同一個局域網(wǎng)內(nèi);

2、所有節(jié)點需要有相同的 erlang cookie,否則不能正常通信,為了實現(xiàn)cookie內(nèi)容一致,采用scp的方式進行。

3、準備三臺虛擬機,配置相同

4、集群中所有節(jié)點都需要hosts文件解析

使用上一個示例的環(huán)境繼續(xù)操作

三臺全部安裝安裝Erlang,安裝rabbitmq,修改配置文件同上一示例

3.4、安裝插件并啟動服務(wù)

[root@rabbitmq2 ~]# rabbitmq-plugins enable rabbitmq_management
[root@rabbitmq3 ~]# rabbitmq-plugins enable rabbitmq_management

?此處不要啟動!!!一定要保證三臺機器的cookie內(nèi)容一致

找到erlang cookie文件的位置,源碼包部署一般會存在.erlang.cookie文件;rpm包部署一般是在/var/lib/rabbitmq/.erlang.cookie。將 node1 的該文件使用rsync或者是scp復(fù)制到 node2、node3,文件權(quán)限需要是400。

[root@rabbitmq1 ~]# scp -r /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq1 ~]# scp -r /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq1 ~]# cat /var/lib/rabbitmq/.erlang.cookie#    此處必須檢查是否完全一致[root@rabbitmq2 ~]# cat /var/lib/rabbitmq/.erlang.cookie[root@rabbitmq3 ~]# cat /var/lib/rabbitmq/.erlang.cookie

啟動rabbitmq

[root@rabbitmq1 ~]# systemctl restart rabbitmq-server
[root@rabbitmq2 ~]# systemctl restart rabbitmq-server
[root@rabbitmq3 ~]# systemctl restart rabbitmq-server

僅關(guān)閉2,3節(jié)點的對外連接(集群功能),不關(guān)閉rabbitmq服務(wù)

[root@rabbitmq2 ~]# rabbitmqctl stop[root@rabbitmq3 ~]# rabbitmqctl stop

將2,3暫時設(shè)置為獨立節(jié)點運行

[root@rabbitmq2 ~]# rabbitmq-server -detached[root@rabbitmq3 ~]# rabbitmq-server -detached#    忽略此處pid文件不可寫的警告,這個警告不影響后續(xù)操作

查看各個節(jié)點狀態(tài)

[root@rabbitmq1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq1 ...
[{nodes,[{disc,[rabbit@rabbitmq1]}]},{running_nodes,[rabbit@rabbitmq1]},{cluster_name,<<"rabbit@rabbitmq1">>},{partitions,[]},{alarms,[{rabbit@rabbitmq1,[]}]}]#    2,3此處省略。每臺主機看到的只有一個的server信息。目前尚未組合成集群

添加用戶并為其授權(quán),此時每個節(jié)點是單獨的一臺RabbitMQ,下面來將他們組成集群。

1
[root@rabbitmq1 ~]# rabbitmqctl add_user  admin admin
Adding user "admin" ...
User "admin" already exists
[root@rabbitmq1 ~]# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
[root@rabbitmq1 ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
[root@rabbitmq1 ~]# 2
[root@rabbitmq2 ~]# rabbitmqctl add_user  admin admin
Adding user "admin" ...
[root@rabbitmq2 ~]# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
[root@rabbitmq2 ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
[root@rabbitmq2 ~]# 3
[root@rabbitmq3 ~]# rabbitmqctl add_user  admin admin
Adding user "admin" ...
[root@rabbitmq3 ~]# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
[root@rabbitmq3 ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
[root@rabbitmq3 ~]# 

最后一步組成集群

rabbitmq-server 啟動時,會一起啟動:節(jié)點和應(yīng)用,它預(yù)先設(shè)置RabbitMQ應(yīng)用為standalone(脫機)模式。要將一個節(jié)點加入到現(xiàn)有的集群中,你需要停止這個應(yīng)用,并將節(jié)點設(shè)置為原始狀態(tài)。如果使用rabbitmqctl stop,應(yīng)用和節(jié)點都將被關(guān)閉。所以使用rabbitmqctl stop_app僅僅關(guān)閉應(yīng)用。(停應(yīng)用,不停止節(jié)點)

此處以磁盤節(jié)點示例

2
[root@rabbitmq2 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbitmq2 ...
[root@rabbitmq2 ~]# rabbitmqctl join_cluster rabbit@rabbitmq1
Clustering node rabbit@rabbitmq2 with rabbit@rabbitmq1
[root@rabbitmq2 ~]# rabbitmqctl start_app
Starting node rabbit@rabbitmq2 ...completed with 3 plugins.3
[root@rabbitmq3 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbitmq3 ...
[root@rabbitmq3 ~]# rabbitmqctl join_cluster rabbit@rabbitmq1
Clustering node rabbit@rabbitmq3 with rabbit@rabbitmq1
[root@rabbitmq3 ~]# rabbitmqctl start_app
Starting node rabbit@rabbitmq3 ...completed with 3 plugins.

此時集群狀態(tài)

[root@rabbitmq1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq1 ...
[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]},{running_nodes,[rabbit@rabbitmq3,rabbit@rabbitmq2,rabbit@rabbitmq1]},{cluster_name,<<"rabbit@rabbitmq1">>},{partitions,[]},{alarms,[{rabbit@rabbitmq3,[]},{rabbit@rabbitmq2,[]},{rabbit@rabbitmq1,[]}]}]

正常工作中此時移交admin/admin賬號給開發(fā)組即可

4、Rabbitmq+HAproxy

此處保留haproxy配置文件模板供復(fù)制粘貼使用

global log         127.0.0.1 local2chroot      /var/lib/haproxypidfile     /var/run/haproxy.pidmaxconn     4000user        haproxygroup       haproxydaemonstats socket /var/lib/haproxy/statsdefaults log        global mode       tcp option     tcplog option     dontlognull retries    3 option redispatch maxconn 2000 contimeout      5s clitimeout      120s srvtimeout      120s listen rabbitmq_cluster 0.0.0.0:80#作為代理的服務(wù)器的IP和端口mode      tcp balance roundrobin server rabbit1  192.168.188.128:15672 check inter 5000 rise 2 fall 2 server rabbit2  192.168.188.129:15672 check inter 5000 rise 2 fall 2        server rabbit3  192.168.188.130:15672 check inter 2000 rise 2 fall 3listen monitorbind 0.0.0.0:8100#監(jiān)控頁面的訪問端口mode httpoption httplogstats enablestats uri /rabbitmqstatsstats refresh 30sstats auth admin:admin       

http://www.risenshineclean.com/news/45319.html

相關(guān)文章:

  • wordpress 查看訪客站長工具seo綜合查詢源碼
  • 百度云盤做網(wǎng)站空間百度上怎么打廣告宣傳
  • 紹興市中等專業(yè)學校網(wǎng)站軟文外鏈代發(fā)
  • 開發(fā)企業(yè)門戶網(wǎng)站友情鏈接賺錢
  • 中組部兩學一做網(wǎng)站如何建網(wǎng)站教程
  • 安徽 網(wǎng)站制作線上推廣平臺
  • jsp網(wǎng)站建設(shè)期末作業(yè)廣州疫情最新情況
  • 網(wǎng)站建設(shè)5000費用運營網(wǎng)站
  • 長春網(wǎng)站建設(shè) 信賴吉網(wǎng)傳媒什么是競價推廣
  • wordpress自定義主頁廣告優(yōu)化師發(fā)展前景
  • 網(wǎng)站做指向是什么意思合肥做網(wǎng)站哪家好
  • 做中學網(wǎng)站企業(yè)宣傳冊
  • 買的網(wǎng)站模板怎么做成都seo學徒
  • 網(wǎng)站建設(shè)和管理河南百度推廣代理商
  • 廣州視頻網(wǎng)站建站公司知識營銷
  • wordpress小程序教程免費網(wǎng)站seo
  • 怎么樣建立一個網(wǎng)站百度一下 你就知道首頁官網(wǎng)
  • 便宜做網(wǎng)站的公司靠譜嗎國家免費職業(yè)技能培訓官網(wǎng)
  • 怎么做網(wǎng)站賺錢的動漫網(wǎng)站b站推廣網(wǎng)站2023
  • 如何讓廣域網(wǎng)訪問利用公網(wǎng)ip和本地服務(wù)器建設(shè)的網(wǎng)站營銷app
  • 網(wǎng)站角色管理系統(tǒng)旅游seo整站優(yōu)化
  • 素材網(wǎng)站下載怎么做競價托管
  • 做電影網(wǎng)站侵權(quán)網(wǎng)絡(luò)維護培訓班
  • 河北盤古做的網(wǎng)站用的什么服務(wù)器seo網(wǎng)站運營
  • 江西省城鄉(xiāng)建設(shè)培訓網(wǎng)官方網(wǎng)站長沙的seo網(wǎng)絡(luò)公司
  • asp.net c 網(wǎng)站開發(fā)廣州疫情最新數(shù)據(jù)
  • 西安網(wǎng)站建設(shè)電話咨詢在線網(wǎng)絡(luò)培訓平臺
  • 哪里有微信網(wǎng)站建設(shè)生豬價格今日豬價
  • 可以做360度全景圖的網(wǎng)站打開百度網(wǎng)站
  • wordpress菜單文章優(yōu)化英語