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

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:消息隊(duì)列RabbitMQ

柚子快報(bào)邀請(qǐng)碼778899分享:消息隊(duì)列RabbitMQ

http://yzkb.51969.com/

消息隊(duì)列RabbitMQ

文章目錄

消息隊(duì)列RabbitMQ1、消息隊(duì)列2、RabbitMQ2.1、安裝RabbitMQ2.2、架構(gòu)圖

3、收發(fā)消息3.1、交換機(jī)3.2、隊(duì)列3.3、綁定關(guān)系3.4、數(shù)據(jù)隔離

1、消息隊(duì)列

消息隊(duì)列是一種在分布式系統(tǒng)中常用的通信機(jī)制,簡(jiǎn)稱為MQ,它允許不同的應(yīng)用程序或服務(wù)之間通過發(fā)送和接收消息來進(jìn)行異步通信。消息隊(duì)列的主要優(yōu)點(diǎn)包括:

解耦:消息隊(duì)列使得生產(chǎn)者和消費(fèi)者之間不需要直接通信,從而降低了它們之間的耦合度。異步處理:生產(chǎn)者可以發(fā)送消息到隊(duì)列后立即返回,而消費(fèi)者可以在稍后的時(shí)間點(diǎn)處理這些消息。流量削峰:消息隊(duì)列可以緩沖大量的請(qǐng)求,從而避免系統(tǒng)因?yàn)橥话l(fā)流量而崩潰??蓴U(kuò)展性:通過增加消費(fèi)者,可以輕松地?cái)U(kuò)展系統(tǒng)的處理能力。

比較常見的MQ實(shí)現(xiàn):

ActiveMQRabbitMQRocketMQKafka

幾種常見MQ的對(duì)比:

RabbitMQActiveMQRocketMQKafka公司/社區(qū)RabbitApache阿里Apache開發(fā)語(yǔ)言ErlangJavaJavaScala&Java協(xié)議支持AMQP,XMPP,SMTP,STOMPOpenWire,STOMP,REST,XMPP,AMQP自定義協(xié)議自定義協(xié)議可用性高一般高高單機(jī)吞吐量一般差高非常高消息延遲微秒級(jí)毫秒級(jí)毫秒級(jí)毫秒以內(nèi)消息可靠性高一般高一般

追求可用性:Kafka、 RocketMQ 、RabbitMQ

追求可靠性:RabbitMQ、RocketMQ

追求吞吐能力:RocketMQ、Kafka

追求消息低延遲:RabbitMQ、Kafka

據(jù)統(tǒng)計(jì),目前國(guó)內(nèi)消息隊(duì)列使用最多的還是RabbitMQ,再加上其各方面都比較均衡,穩(wěn)定性也好

2、RabbitMQ

RabbitMQ是基于Erlang語(yǔ)言開發(fā)的開源消息通信中間件

官網(wǎng)地址:https://www.rabbitmq.com/

2.1、安裝RabbitMQ

基于Docker來安裝RabbitMQ,使用下面的命令即可:

docker run \

-e RABBITMQ_DEFAULT_USER=xiaolin \

-e RABBITMQ_DEFAULT_PASS=123456 \

-v mq-plugins:/plugins \

--name mq \

--hostname mq \

-p 15672:15672 \

-p 5672:5672 \

--network hm-net\

-d \

rabbitmq:3.8-management

這個(gè) docker run 命令用于在 Docker 容器中啟動(dòng) RabbitMQ 服務(wù)器,并配置一些參數(shù)。下面是每個(gè)參數(shù)的解釋:

-e RABBITMQ_DEFAULT_USER=xiaolin: 設(shè)置 RabbitMQ 的默認(rèn)用戶名為 xiaolin。-e RABBITMQ_DEFAULT_PASS=123456: 設(shè)置 RabbitMQ 的默認(rèn)密碼為 123456。-v mq-plugins:/plugins: 將主機(jī)上的 mq-plugins 目錄掛載到容器內(nèi)的 /plugins 目錄。這樣可以在容器內(nèi)使用主機(jī)上的插件。--name mq: 給這個(gè)容器命名為 mq。--hostname mq: 設(shè)置容器的主機(jī)名為 mq。-p 15672:15672: 將主機(jī)的 15672 端口映射到容器的 15672 端口,這是 RabbitMQ 管理界面的端口。-p 5672:5672: 將主機(jī)的 5672 端口映射到容器的 5672 端口,這是 RabbitMQ 的 AMQP 端口。--network hm-net: 將容器連接到名為 hm-net 的 Docker 網(wǎng)絡(luò)。-d: 以分離模式(后臺(tái)模式)運(yùn)行容器。rabbitmq:3.8-management: 指定要運(yùn)行的 Docker 鏡像,這里是帶有管理插件的 RabbitMQ 3.8 版本。

安裝完成后,我們?cè)L問 http://主機(jī)IP:15672即可看到管理控制臺(tái)。首次訪問需要登錄,默認(rèn)的用戶名和密碼在配置文件中已經(jīng)指定了。

登錄后即可看到管理控制臺(tái)總覽頁(yè)面:

2.2、架構(gòu)圖

RabbitMQ對(duì)應(yīng)的架構(gòu)如圖:

其中包含幾個(gè)概念:

publisher:生產(chǎn)者,也就是發(fā)送消息的一方consumer:消費(fèi)者,也就是消費(fèi)消息的一方queue:隊(duì)列,存儲(chǔ)消息。生產(chǎn)者投遞的消息會(huì)暫存在消息隊(duì)列中,等待消費(fèi)者處理exchange:交換機(jī),負(fù)責(zé)消息路由。生產(chǎn)者發(fā)送的消息由交換機(jī)決定投遞到哪個(gè)隊(duì)列。virtual host:虛擬主機(jī),起到數(shù)據(jù)隔離的作用。每個(gè)虛擬主機(jī)相互獨(dú)立,有各自的exchange、queue

3、收發(fā)消息

3.1、交換機(jī)

Exchanges選項(xiàng)卡,可以看到已經(jīng)存在很多交換機(jī):

點(diǎn)擊任意交換機(jī),即可進(jìn)入交換機(jī)詳情頁(yè)面。仍然會(huì)利用控制臺(tái)中的publish message 發(fā)送一條消息:

這里是由控制臺(tái)模擬了生產(chǎn)者發(fā)送的消息。由于沒有消費(fèi)者存在,最終消息丟失了,這樣說明交換機(jī)沒有存儲(chǔ)消息的能力。

3.2、隊(duì)列

打開Queues選項(xiàng)卡,新建一個(gè)隊(duì)列:

命名為hello.mq,我這邊使用的是hmall用戶,默認(rèn)是/

此時(shí),我們?cè)俅蜗騛mq.fanout交換機(jī)發(fā)送一條消息。會(huì)發(fā)現(xiàn)消息依然沒有到達(dá)隊(duì)列?。?/p>

怎么回事呢?

發(fā)送到交換機(jī)的消息,只會(huì)路由到與其綁定的隊(duì)列,因此僅僅創(chuàng)建隊(duì)列是不夠的,我們還需要將其與交換機(jī)綁定。

3.3、綁定關(guān)系

點(diǎn)擊Exchanges選項(xiàng)卡,點(diǎn)擊amq.fanout交換機(jī),進(jìn)入交換機(jī)詳情頁(yè),然后點(diǎn)擊Bindings菜單,在表單中填寫要綁定的隊(duì)列名稱:

點(diǎn)擊隊(duì)列名稱,進(jìn)入詳情頁(yè),查看隊(duì)列詳情,這次我們點(diǎn)擊get message:

3.4、數(shù)據(jù)隔離

用戶管理

點(diǎn)擊Admin選項(xiàng)卡,首先會(huì)看到RabbitMQ控制臺(tái)的用戶管理界面:

這里的用戶都是RabbitMQ的管理或運(yùn)維人員。目前只有安裝RabbitMQ時(shí)添加的mqxiaolin這個(gè)用戶,我自己已經(jīng)添加了hmall。仔細(xì)觀察用戶表格中的字段,如下:

Name:mqxiaolin,也就是用戶名Tags:administrator,說明mqxiaolin用戶是超級(jí)管理員,擁有所有權(quán)限Can access virtual host: /,可以訪問的virtual host,這里的/是默認(rèn)的virtual host

對(duì)于小型企業(yè)而言,出于成本考慮,我們通常只會(huì)搭建一套MQ集群,公司內(nèi)的多個(gè)不同項(xiàng)目同時(shí)使用。這個(gè)時(shí)候?yàn)榱吮苊饣ハ喔蓴_, 我們會(huì)利用virtual host的隔離特性,將不同項(xiàng)目隔離。一般會(huì)做兩件事情:

給每個(gè)項(xiàng)目創(chuàng)建獨(dú)立的運(yùn)維賬號(hào),將管理權(quán)限分離。給每個(gè)項(xiàng)目創(chuàng)建不同的virtual host,將每個(gè)項(xiàng)目的數(shù)據(jù)隔離。

比如,創(chuàng)建一個(gè)新的用戶,命名為test:

你會(huì)發(fā)現(xiàn)此時(shí)hmall用戶沒有任何virtual host的訪問權(quán)限:

接下來我們就來授權(quán)。我們先退出登錄:

切換到剛剛創(chuàng)建的test用戶登錄,然后點(diǎn)擊Virtual Hosts菜單,進(jìn)入virtual host管理頁(yè):

可以看到目前只有一個(gè)默認(rèn)的virtual host,名字為 /。

我們可以創(chuàng)建一個(gè)單獨(dú)的virtual host,而不是使用默認(rèn)的/。

柚子快報(bào)邀請(qǐng)碼778899分享:消息隊(duì)列RabbitMQ

http://yzkb.51969.com/

好文推薦

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

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

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

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

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

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

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

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

文章目錄