消息中間件,遵循AMQP(Advanced Message Queuing Protocol)併發
上面就是不一樣服務與rabbitmq的交互圖ui
角色:中間件
生產者:發送信息到rabbitmq的隊列之中blog
rabbitmq:負責接收生產者發送過來的信息,併發送給對應的消費者。rabbitmq
消費者:接收rabbitmq發送過來的信息,對之處理。若是必要,可反饋結果。隊列
rabbitmq主要包含:message broker(或稱victual hosts,簡稱vhosts),exchange(交換機),queue(隊列)it
vhosts:rabbitmq能夠包含多個vhosts,每一個vhosts中均可以包含多個exchange和多個queue,vhosts之間互不影響dva
exchange(交換機):可(一對一或一對多)與queue綁定(Binding)。Producer發送到exchange的信息,若是該交換機沒有與任何queue進行綁定,發送的信息就會丟失,exchange沒法保存接收到的信息。queue
queue(隊列):從Producer或是exchange處接收信息,保存到隊列之中,以後發送信息給消費者。im