# RabbitMQ  ## 介紹 五大類 https://zamhuang.medium.com/rabbitmq-%E4%BA%94%E5%88%86%E9%90%98%E8%BC%95%E9%AC%86%E4%BA%86%E8%A7%A3-rabbitmq-%E9%81%8B%E4%BD%9C-fcaecbaa69d4 https://kucw.github.io/blog/2020/11/rabbitmq/  ### Producer 負責丟訊息到 Queue 中 若有定義 Exchange,則丟給 Exchange 決定要給誰 ### Consumer 負責接收來自 Queue 的訊息 ### Queue 負責存放所需要的資料 跟資料結構的 Queue 一樣,有先進先出 (FIFO) 特性 每個 Queue 都會有他的名字當 id ### Exchange 用來決定 Producer 給的資料要丟給哪一個 Queue 主要有這四種方式 * direct: 直接丟給指定的 Queue * topic: 類似 regular expression,設定 binding 規則,丟給符合的 Queue * headers: 透過傳送資料的 header 來特別指定所要的 Queue * fanout: 一次丟給全部負責的 Queue ### Binding 跟 Exchange 成對搭配,主要是告訴 Exchange 他負責哪些 Queue ## RabbitMQ 這些特性可以什麼事? ### Task queues 不透過任何的 Exchange 直接送到指定的 Queue  ### Publish/Subscribe 透過 Exchange: fanout 特性,達到訂閱 Queue 的 Consumer 都可以收到訊息  ### Routing 透過 Exchange: direct 特性,達到 filter 到不同 Queue 的 routing 訊息Routing 模式之所以有它存在的意義,重點就在於他可以 多重綁定,也就是說同一個 routing key 可以綁到 n 個 Queue 上,而不是一對一的綁定  ### Topics 透過 Exchange: topic 特性,每個 Queue 都有屬於自己的分類 用法基本上跟 Routing 模式一樣,只是 routing key 進化成可以使用模糊綁定而已  ### RPC 透過 AMQP 的協議所定義的 properties 來達成 RPC 的支援  ## docker image 要有manager 才有GUI 第二 export 要有兩個manager and rabbitmq  ### 連線  amqp協議 加上帳密最後url ###### tags: `額外工具`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up