之前的例子都是講訊息直接傳送給指定的佇列;現在需要傳送給多個佇列,訂閱/發布模式
生產者不再將訊息直接發往佇列,而是發往exchange,然後exchange再傳送給在該exchange訂閱的佇列;
exchange需要知道如何對接收到的訊息進行**
exchange有四種型別:direct, topic, headers and fanout
將訊息發給所有在exchange註冊的佇列
channel.exchangedeclare("logs", "fanout");//1:宣告乙個fanout的exchange
channel.queuebind(queuename, "logs", "");//將佇列在exchange註冊
channel.basicpublish("logs", "", null, message.getbytes());//傳送訊息
fanout型別的exchange可以將訊息傳送給在exchange上註冊的所有的佇列;
佇列註冊到direct型別的exchange時增加了route_key,每乙個訊息都有乙個key,訊息的key與佇列的route_key一致時才會發往該佇列;
direct型別中有乙個缺點是:必須要訊息的key和訂閱的route_key完全一致才會傳送到相應佇列;topic型別增加了相當於模糊匹配的功能;
*代表乙個字元
#代表0個或多個字元
channel.exchangedeclare(exchange_name, "topic");
channel.basicpublish(exchange_name, "key.t", null, message.getbytes());
channel.queuebind(queuename, exchange_name, "key.*");
RabbitMQ六種佇列模式 工作佇列模式
rabbitmq六種佇列模式 簡單佇列 rabbitmq六種佇列模式 工作佇列 本文 rabbitmq六種佇列模式 發布訂閱 rabbitmq六種佇列模式 路由模式 rabbitmq六種佇列模式 主題模式 上文我們了解了 rabbitmq 六種佇列模式中的簡單佇列,也是非常的簡單,比較容易理解。但是...
六種單列模式
確保某乙個類只有乙個例項.1 餓漢式單列 public class singleone 構造方法私有 禁止建立 private singleone 2 懶漢式單列 public class singletwo 同步方法 每次呼叫都同步 消耗資源 public static synchronized ...
jBPM的tasknode的六種模式
jbpm的tasknode的六種模式 last 預設值。當最後乙個任務完成時 signal 當 task node 沒有建立任務時,直接 signal。last wait 當最後乙個任務完成時 signal 當 task node 沒有建立任務時等待。first 當第乙個任務完成時 signal 當...