欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請(qǐng)碼778899分享:RabbitMQ介紹及搭建

柚子快報(bào)邀請(qǐng)碼778899分享:RabbitMQ介紹及搭建

http://yzkb.51969.com/

架構(gòu)

RabbitMQ是實(shí)現(xiàn)了高級(jí)消息隊(duì)列協(xié)議(AMQP)的開源消息代理軟件,使用erlang語言編寫,依賴Erlang環(huán)境運(yùn)行。

Broker:運(yùn)行消息隊(duì)列服務(wù)進(jìn)程的節(jié)點(diǎn),包含Exchange、Queue; Producer:消息生產(chǎn)者; Consumer:消息消費(fèi)者;

相關(guān)概念

Server:AMQP實(shí)例,接收客戶端的連接;

Connection:連接,應(yīng)用程序與Server的TCP連接;

Channel:信道,輕量級(jí)的Connection,消息讀寫等操作在信道中進(jìn)行??蛻舳嗽谝粋€(gè)Connection中建立多個(gè)信道,每個(gè)信道代表一個(gè)會(huì)話任務(wù)。如果每一次訪問 RabbitMQ 都建立一個(gè) Connection,在大量消息時(shí)開銷會(huì)變得巨大;

Message:應(yīng)用程序和服務(wù)器之間傳送的數(shù)據(jù);

Virtual Host:邏輯隔離,由若干Exchange、Queue組成;

Exchange:交換器,按照路由規(guī)則將消息路由到一個(gè)或者多個(gè)隊(duì)列;

Queue:隊(duì)列,用來暫存消息,供consumer消費(fèi);

RoutingKey:路由鍵,producer向Exchange發(fā)送消息時(shí)會(huì)標(biāo)識(shí)路由鍵,按照路由鍵的不通發(fā)送到指定Queue。格式如“com.rabbitmq”;

Binding:綁定,Echange、Queue之間的虛擬連接,由一個(gè)或者多個(gè)RoutingKey組成;

exchange分類

Direct Exchange:直連交換器,一對(duì)一發(fā)送,綁定一個(gè)Queue,與一個(gè)特定的RoutingKey完全匹配;

Fanout Exchange:扇形交換器,類似子網(wǎng)廣播,綁定多個(gè)Queue,發(fā)送到該類型交換器的消息,都會(huì)被轉(zhuǎn)發(fā)到與其綁定的所有Queue上;

Topic Exchange:主題交換器,通過通配符(*)(#)匹配RoutingKey,路由到相應(yīng)的Queue;

Headers Exchange:頭交換器,通過匹配請(qǐng)求頭中攜帶的鍵值進(jìn)行消息路由,有2種模式:全部匹配、部分匹配;

queue分類

主從架構(gòu),吞吐量受限。

master queue:主隊(duì)列,讀寫操作均在master queue上,然后由master同步操作到mirror queue。即使consumer連接到了mirror queue,相關(guān)操作也會(huì)被路由到master queue上。對(duì)于生成隊(duì)列,原理和消費(fèi)一樣;

mirror queue:鏡像隊(duì)列,作為備份,在master queue所在節(jié)點(diǎn)掛掉之后,系統(tǒng)把mirror queue提升為master queue;

使用模式

simple模式

P發(fā)送消息到隊(duì)列,C監(jiān)聽消息隊(duì)列,如果Queue中有消息,就消費(fèi),然后自動(dòng)刪除。可以通過啟用消息確認(rèn)機(jī)制確保穩(wěn)健性,消費(fèi)完后會(huì)立即發(fā)送ack,否則會(huì)造成內(nèi)存溢出;

work模式

P發(fā)送消息到隊(duì)列,C1、C2共同監(jiān)聽Queue,爭搶消息,誰先拿到誰就消費(fèi);

publish/subscribe模式

P發(fā)送消息到交換器X,X發(fā)布訂閱,將消息發(fā)送到已綁定的Queue中,相應(yīng)的C監(jiān)聽自己;

routing模式

P發(fā)送消息到交換器X,X根據(jù)路由字符RoutingKey做匹配,發(fā)送到對(duì)應(yīng)的Queue,對(duì)應(yīng)的C進(jìn)行消費(fèi);

topic模式

路由模式的一種,X根據(jù)RoutingKey的進(jìn)行模糊匹配,發(fā)送到相應(yīng)的Queue,對(duì)應(yīng)的C進(jìn)行消費(fèi);

rpc模式

基于Direct交換器,使用MQ實(shí)現(xiàn)RPC的異步調(diào)用,過程如下: 1、Client即是P也是C,向rpc_queue送調(diào)用消息,同時(shí)監(jiān)聽reply_queue; 2、Server監(jiān)聽rpc_queue,收到消息后進(jìn)行處理,返回結(jié)果; 3、Server將結(jié)果發(fā)送到reply_queue; 4、Client接收到RPC調(diào)用結(jié)果;

環(huán)境

systemctl stop firewalld && systemctl disable firewalld

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

vi /etc/hosts

ip1 rabbit1

ip2 rabbit2

ip3 rabbit3

安裝配置

yum install -y rabbitmq-server

mkdir -p /etc/systemd/system/rabbitmq-server.service.d

# 修改文件打開數(shù)

vi /etc/systemd/system/rabbitmq-server.service.d/limit.conf

[Service]

LimitNOFILE = 100000

# 修改ip與端口

vi /etc/rabbitmq/rabbitmq-env.conf

RABBITMQ_NODE_IP_ADDRESS="本機(jī)ip"

RABBITMQ_NODE_PORT=5672

vi /etc/rabbitmq/rabbitmq.config

% Template Path: rabbitmq/templates/rabbitmq.config

[

{kernel,[

{inet_dist_listen_min, 41055},

{inet_dist_listen_max, 41055},

# epmd端口必須打開,群集才能正常工作、cli才能使用,設(shè)置端口范圍

{inet_default_connect_options, [{nodelay,true}]} ]},

{rabbit,[

# 在autoheal模式下,當(dāng)某網(wǎng)絡(luò)分區(qū)故障時(shí),RabbitMQ會(huì)自動(dòng)決定一個(gè)獲勝分區(qū)winning,然后重啟不在這個(gè)分區(qū)中的節(jié)點(diǎn)以恢復(fù)網(wǎng)絡(luò)分區(qū)

{cluster_partition_handling, autoheal},

# tcp套接字的配置

{tcp_listen_options, [

binary,

{packet, raw},

{reuseaddr, true},

# 未接受的TCP連接隊(duì)列的最大數(shù),達(dá)到此數(shù)量時(shí),新的連接將被拒絕

{backlog, 4096},

{nodelay, true},

{exit_on_close, false},

# heartbeat: 0,代表關(guān)閉心跳服務(wù)

# 啟用tcp keepalive機(jī)制

{keepalive, true}

]}

{rabbitmq_management,[

{http_log_dir, "/tmp/rabbit-mgmt"},

# 監(jiān)控各項(xiàng)資源的速率,none為不監(jiān)控,默認(rèn)為basic

{rates_mode,none}

]}

# 復(fù)制cookie

scp /var/lib/rabbitmq/.erlang.cookie root@rabbit2:/var/lib/rabbitmq/.erlang.cookie

scp /var/lib/rabbitmq/.erlang.cookie root@rabbit3:/var/lib/rabbitmq/.erlang.cookie

chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config

chmod 400 /var/lib/rabbitmq/.erlang.cookie

systemctl daemon-reload

systemctl enable rabbitmq-server.service

systemctl start rabbitmq-server.service

# 查看狀態(tài)

rabbitmqctl cluster_status

# 關(guān)閉:其他從節(jié)點(diǎn)先執(zhí)行關(guān)閉,然后加入集群主節(jié)點(diǎn)

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@rabbit1

rabbitmqctl start_app

# 查看

rabbitmqctl cluster_status

# 隊(duì)列的鏡像設(shè)置,在集群中所有的節(jié)點(diǎn)上進(jìn)行鏡像

rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}

# 創(chuàng)建用戶

rabbitmqctl add_user test

rabbitmqctl set_permissions -p / test test#123

rabbitmqctl set_user_tags test 角色

柚子快報(bào)邀請(qǐng)碼778899分享:RabbitMQ介紹及搭建

http://yzkb.51969.com/

精彩內(nèi)容

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18824387.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄