成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Centos7RabbitMQ消息隊列集群

一、簡介

站在用戶的角度思考問題,與客戶深入溝通,找到麗江網(wǎng)站設(shè)計與麗江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋麗江地區(qū)。

      MQ(Message Queue,消息隊列)是一款消息中間件,一般以集群方式部署,主要提供消息的接受和發(fā)送,實現(xiàn)各微服務(wù)之間的消息異步。

1、集群原理

      rabbitmq 是依據(jù)erlang的分布式特性(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é)點。

      rabbitmq集群中,各個rabbitmq為對等節(jié)點,即每個節(jié)點均提供給客戶端連接,進行消息的接收和發(fā)送。節(jié)點分為內(nèi)存節(jié)點和磁盤節(jié)點,一般的,均應(yīng)建立為磁盤節(jié)點,為了防止機器重啟后的消息消失;

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

      普通模式下, 以兩個節(jié)點(rabbit01、rabbit02)為例來進行說明。對于Queue來說,消息實體只存在于其中一個節(jié)點rabbit01(或者rabbit02),rabbit01和rabbit02兩個節(jié)點僅有相同的元數(shù)據(jù),即隊列的結(jié)構(gòu)。當(dāng)消息進入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ò)帶寬。

2、系統(tǒng)架構(gòu)

Centos7 RabbitMQ消息隊列集群Centos7 RabbitMQ消息隊列集群

概念說明:

Broker:它提供一種傳輸服務(wù),它的角色就是維護一條從生產(chǎn)者到消費者的路線,保證數(shù)據(jù)能按照指定的方式進行傳輸

Exchange:消息交換機,它指定消息按什么規(guī)則,路由到哪個隊列

Queue:消息的載體,每個消息都會被投到一個或多個隊列

Binding:綁定,它的作用就是把exchange和queue按照路由規(guī)則綁定起來

Routing Key:路由關(guān)鍵字,exchange根據(jù)這個關(guān)鍵字進行消息投遞

vhost:虛擬主機,一個broker里可以有多個vhost,用作不同用戶的權(quán)限分離

Producer:消息生產(chǎn)者,就是投遞消息的程序

Consumer:消息消費者,就是接受消息的程序

Channel:消息通道,在客戶端的每個連接里,可建立多個channel

二、環(huán)境準(zhǔn)備

1、系統(tǒng)環(huán)境

主機名

系統(tǒng)

IP

用途

master

CentOS7.4

192.168.56.129

磁盤節(jié)點

slave1

CentOS7.4

192.168.56.130

內(nèi)存節(jié)點

slave2

CentOS7.4

192.168.56.131

內(nèi)存節(jié)點

2、暫時關(guān)閉防火墻和selinux

3、設(shè)置三個節(jié)點主機名hosts

[root@master ~]# cat /etc/hosts

192.168.56.129 master

192.168.56.130 slave1

192.168.56.131 slave2

三、搭建服務(wù)

1、安裝最新repo源

[root@master ~]# yum -y install epel-release

2、安裝三個節(jié)點的rabbitmq-server軟件包

[root@master ~]# yum -y install rabbitmq-server

Centos7 RabbitMQ消息隊列集群Centos7 RabbitMQ消息隊列集群

3、查看已安裝的插件

[root@master ~]# rabbitmq-plugins list

Centos7 RabbitMQ消息隊列集群Centos7 RabbitMQ消息隊列集群

4、啟動管理服務(wù)(三個節(jié)點)

[root@master ~]# rabbitmq-plugins enable rabbitmq_management

Centos7 RabbitMQ消息隊列集群Centos7 RabbitMQ消息隊列集群

5、分別啟動rabbitmq服務(wù)(三個節(jié)點)

[root@master ~]# systemctl start rabbitmq-server.service

rabbitmq集群部署

1、關(guān)閉服務(wù)(三個節(jié)點)

[root@master ~]# systemctl stop rabbitmq-server.service

2、進入cookie文件目錄,配置(各節(jié)點需要有相同序列號值)

[root@master ~]# cd /var/lib/rabbitmq/

[root@master rabbitmq]# vim .erlang.cookie

Centos7 RabbitMQ消息隊列集群Centos7 RabbitMQ消息隊列集群

3、再啟動rabbitmq服務(wù)

[root@master rabbitmq]# systemctl start rabbitmq-server.service

4、關(guān)閉rabbitmq應(yīng)用(只關(guān)閉slave1和slave2)

[root@master rabbitmq]# rabbitmqctl stop_app

Centos7 RabbitMQ消息隊列集群Centos7 RabbitMQ消息隊列集群

5、將slave1、slave2加入master,使它們成為一個集群。再次啟動應(yīng)用

[root@slave1 ~]# rabbitmqctl join_cluster --ram rabbit@master

[root@slave1 ~]# rabbitmqctl start_app

Centos7 RabbitMQ消息隊列集群

Centos7 RabbitMQ消息隊列集群

Centos7 RabbitMQ消息隊列集群Centos7 RabbitMQ消息隊列集群6、分別查看rabbitmq服務(wù)器狀態(tài)

[root@master ~]# rabbitmqctl cluster_status

Centos7 RabbitMQ消息隊列集群

Centos7 RabbitMQ消息隊列集群

Centos7 RabbitMQ消息隊列集群7、通過客戶端瀏覽器進行訪問RabbitMQ (用戶名:guest 密碼:guest)

http://192.168.56.129:15672

Centos7 RabbitMQ消息隊列集群

Centos7 RabbitMQ消息隊列集群

網(wǎng)頁名稱:Centos7RabbitMQ消息隊列集群
URL鏈接:http://jinyejixie.com/article8/ghhsip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、App開發(fā)、服務(wù)器托管網(wǎng)站設(shè)計、微信小程序、域名注冊

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
许昌县| 禄丰县| 邯郸市| 安阳县| 崇义县| 灌南县| 平罗县| 开平市| 斗六市| 得荣县| 兴安盟| 修文县| 五原县| 郁南县| 沧源| 金门县| 湟中县| 海林市| 桂阳县| 武安市| 繁昌县| 于都县| 宁国市| 柘荣县| 开化县| 临沂市| 安溪县| 来凤县| 利辛县| 白山市| 都安| 菏泽市| 沂南县| 松江区| 迁安市| 南郑县| 大埔县| 五原县| 广水市| 通州市| 鲁甸县|