国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

RabbitMQ二三事

JeOam / 2176人閱讀

摘要:路由關(guān)鍵字根據(jù)這個(gè)關(guān)鍵字進(jìn)行消息投遞。則就是根據(jù)不同路由鍵,把消息發(fā)送到某一類(lèi)隊(duì)列中。關(guān)于的一個(gè)重要注意事項(xiàng)是它根據(jù)所謂的節(jié)點(diǎn)名稱(chēng)存儲(chǔ)數(shù)據(jù),默認(rèn)為主機(jī)名。

RabbitMQ概覽

RabbitMQ是一個(gè)高性能的分布式消息中間件。它由Erlang編寫(xiě),這種語(yǔ)言天生支持分布式,而且性能極高(但是比較難上手)。

通信概念

RabbitMQ簡(jiǎn)單理解就是一個(gè)隊(duì)列服務(wù),我們的生產(chǎn)者不斷地往它投遞消息,而消費(fèi)者不斷地從它那里獲取消息。但相較于利用redis的List這類(lèi)簡(jiǎn)單隊(duì)列,RabbitMQ的消息投遞更靈活一點(diǎn)。首先需要知道一些RabbitMQ中的通信概念:

exchange(交換器)

queue(隊(duì)列):消息隊(duì)列載體,每個(gè)消息都會(huì)被投入到一個(gè)或多個(gè)隊(duì)列。

binding(綁定):它的作用就是把exchange和queue按照路由規(guī)則綁定起來(lái)。

routing key(路由關(guān)鍵字):exchange根據(jù)這個(gè)關(guān)鍵字進(jìn)行消息投遞。

vhost(虛擬主機(jī)):不同的vhost下,數(shù)據(jù)完全隔離,默認(rèn)vhost為“/”

channel(信道):在一個(gè)tcp連接下,可建立多個(gè)channel,每個(gè)channel代表一個(gè)會(huì)話任務(wù)。

producer(生產(chǎn)者)

consumer(消費(fèi)者)

RabbitMQ中Exchange類(lèi)似于一個(gè)路由器,我們的consumer并不會(huì)把消息直接投遞給隊(duì)列,而是投遞給exchange,exchange根據(jù)我們投遞時(shí)的路由鍵(routing key)再發(fā)送到特定的隊(duì)列。這樣的設(shè)計(jì)讓消息可以靈活選路,發(fā)送到某一類(lèi)的隊(duì)列中,形成一對(duì)多的關(guān)系,而不僅僅是一對(duì)一。

Exchange

所以說(shuō)RabbitMQ中的exchange很方便,很強(qiáng)大,它有這樣幾種類(lèi)型:

direct

fanout

topic

headers(幾乎用不到)

direct交換器很簡(jiǎn)單,有時(shí)候我們僅僅需要一個(gè)很簡(jiǎn)單的隊(duì)列(消息投遞到其中,然后不斷消費(fèi)它),這時(shí)候我們就可以用direct交換器,它的規(guī)則是:如果路由鍵匹配,消息就會(huì)被投遞到對(duì)應(yīng)的隊(duì)列。

fanout交換器忽略路由鍵,把消息同時(shí)發(fā)到一批隊(duì)列。

topic則就是根據(jù)不同路由鍵,把消息發(fā)送到某一類(lèi)隊(duì)列中。

快速安裝

這里我使用docker安裝RabbitMQ
docker-compose.yml

version: "2"
services:
  mq:
    image: rabbitmq:3.7.8-management
    restart: always
    mem_limit: 2g
    hostname: mq1
    volumes:
      - ./mnesia:/var/lib/rabbitmq/mnesia
      - ./log:/var/log/rabbitmq
      - ./rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
    ports:
      - "55672:15672"
      - "56720:5672"
    environment:
      - CONTAINER_NAME=rabbitMQ
      - RABBITMQ_ERLANG_COOKIE=3t182q3wtj1p9z0kd3tb

rabbitmq.conf

loopback_users.guest = false
listeners.tcp.default = 5672
default_pass = WbsWebZVOzE5A1Bd
default_user = test
hipe_compile = false
management.listener.port = 15672
management.listener.ssl = false

注意,5672端口是AMQP Client(也就是我們程序使用的)端口,15672是管理插件的web端口。
mnesia文件夾是RabbitMQ存放數(shù)據(jù)的地方。
關(guān)于RabbitMQ的一個(gè)重要注意事項(xiàng)是它根據(jù)所謂的節(jié)點(diǎn)名稱(chēng)存儲(chǔ)數(shù)據(jù),默認(rèn)為主機(jī)名。
當(dāng)前節(jié)點(diǎn)會(huì)在該目錄下建立一個(gè)rabbit@node-name的文件夾,用來(lái)存放節(jié)點(diǎn)數(shù)據(jù),node-name就是節(jié)點(diǎn)名字,默認(rèn)為hostname(其實(shí)mnesia數(shù)據(jù)庫(kù)是Erlang內(nèi)置的一個(gè)DBMS,可以直接存儲(chǔ)Erlang的各種數(shù)據(jù)結(jié)構(gòu)),在上述例子中,這個(gè)目錄名為rabbit@mq1(因?yàn)閐ocker-compose中設(shè)置了hostnamemq1
5672端口映射到了宿主機(jī)的56720端口,15672端口映射到了宿主機(jī)的55672端口

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/31105.html

相關(guān)文章

  • 文件上傳三事

    摘要:選擇文件談到文件上傳,不得不提,中文名叫表單。當(dāng)需要使用回調(diào)函數(shù)來(lái)處理上傳完成后后端返回的數(shù)據(jù)時(shí),需要和后端預(yù)先達(dá)成約定,如,回調(diào)函數(shù)名,參數(shù)列表,等等。后端可以根據(jù)邊界的檢驗(yàn),識(shí)別上傳的文件,讀取元數(shù)據(jù)中的文件屬性,從而為驗(yàn)證提供數(shù)據(jù)。 引子 其實(shí)很早就開(kāi)始醞釀這一篇了,無(wú)奈總是發(fā)現(xiàn)有缺漏的地方,遂努力惡補(bǔ)前端+后端+底層相關(guān)知識(shí)。今天終于可以發(fā)表了。 --跟生孩子一樣啊。 選擇文...

    wudengzan 評(píng)論0 收藏0
  • 與dom事件流相關(guān)的三事

    摘要:但對(duì)于整個(gè)事件流上的別的元素來(lái)說(shuō),執(zhí)行順序還會(huì)受到另外一個(gè)因素的影響。以上面的場(chǎng)景為例,在捕獲階段執(zhí)行的事件,如果執(zhí)行,則事件流終止,不會(huì)到達(dá)目標(biāo)階段,的世界則不會(huì)被執(zhí)行執(zhí)行結(jié)果為線上參考事件流 向dom綁定事件的事件的三種方式 行內(nèi)綁定 按鈕 js內(nèi)綁定 btnDom.onclick = function clickHandler() { console.log(click)...

    Anleb 評(píng)論0 收藏0
  • NodeList 與 HTMLCollection 三事

    摘要:結(jié)構(gòu)如下是的返回結(jié)果是的結(jié)果不要在意兩個(gè)數(shù)量的區(qū)別,首先是快照,節(jié)點(diǎn)數(shù)量和類(lèi)型的快照,就是對(duì)節(jié)點(diǎn)增刪,感覺(jué)不到,但是對(duì)節(jié)點(diǎn)內(nèi)部?jī)?nèi)容修改,是可以感覺(jué)到的,比如修改是綁定的,節(jié)點(diǎn)的增刪是敏感的可寫(xiě)性問(wèn)題直接對(duì),進(jìn)行賦值,是失敗的元素是可讀的,是 Dom 結(jié)構(gòu)如下: 1.dsfs 2.dsfs 3.dsfs 5.dsf...

    melody_lql 評(píng)論0 收藏0

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<