日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java消息通信_原生 Java 客户端进行消息通信

發布時間:2025/3/21 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java消息通信_原生 Java 客户端进行消息通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原生?Java?客戶端進行消息通信

Direct?交換器

DirectProducer:direct類型交換器的生產者

NormalConsumer:普通的消費者

MulitBindConsumer:隊列綁定到交換器上時,是允許綁定多個路由鍵的,也就是多重綁定MulitChannelConsumer:一個連接下允許有多個信道

MulitConsumerOneQueue:一個隊列多個消費者,則會表現出消息在消費者之間的輪詢發送。

生產者和消費者一般用法

DirectProducer:direct類型交換器的生產者

NormalConsumer:普通的消費者

使用?DirectProducer作為生產者,NormalConsumer作為消費者,消費者綁定一個隊列

隊列和交換器的多重綁定

DirectProducer:direct類型交換器的生產者

NormalConsumer:普通的消費者

MultiBindConsumer:隊列綁定到交換器上時,是允許綁定多個路由鍵的,也就是多重綁定對比:單個綁定的消費者只能收到指定的消息,多重綁定的的消費者可以收到所有的消息。

一個連接多個信道

DirectProducer:direct類型交換器的生產者

MultiChannelConsumer:一個連接下允許有多個信道

一個連接,我們可以使用多線程的方式模擬多個信道進行通訊。這樣可以做到多路復用。

一個隊列多個消費者

MultiConsumerOneQueue:一個隊列多個消費者,則會表現出消息在消費者之間的輪詢發送。

Fanout

消息廣播到綁定的隊列

不管我們如何調整生產者和消費者的路由鍵,都對消息的接受沒有影響。

Topic

通過使用“*”和“#”,使來自不同源頭的消息到達同一個隊列,”.”將路由鍵分為了幾個標識符,“*”匹配?1個,“#”匹配一個或多個。例子如

假設有交換器?topic_course,

講課老師有?king,mark,james,

技術專題有?kafka,jvm,redis,

課程章節有?A、B、C,

路由鍵的規則為 講課老師+“.”+技術專題+“.”+課程章節,如:king.kafka.A。

*與#的區別:

如果我們發送的路由鍵變成?king.kafka.A

那么隊列中如果綁定了?king.*?不能匹配

隊列中如果綁定了?king.#?能夠匹配

1、要關注所有的課程,怎么做?

聲明一個隊列并綁定到交換器上:channel.queueBind(queueName,TopicProducer.EXCHANGE_NAME, "#");

2、關注?king?老師的所有課程,怎么辦?

聲明一個隊列并綁定到交換器上:channel.queueBind(queueName,TopicProducer.EXCHANGE_NAME, "king.#");

注意:如果這里改為?king.*?的話,則不會出現任何信息,因為 “*”匹配?1個(使用.分割的標識的個數)

3、關注?king?老師所有的?A?章節,怎么辦?

聲明一個隊列并綁定到交換器上:channel.queueBind(queueName,TopicProducer.EXCHANGE_NAME, "king.#.A");

或者聲明一個隊列并綁定到交換器上:channel.queueBind(queueName,TopicProducer.EXCHANGE_NAME, "king.*.A");

4、關注?kafka?所有的課程,怎么辦?

聲明一個隊列并綁定到交換器上:channel.queueBind(queueName,TopicProducer.EXCHANGE_NAME, "#.kafka.#");

5、關注所有的?B?章節,怎么辦?

聲明一個隊列并綁定到交換器上:channel.queueBind(queueName,TopicProducer.EXCHANGE_NAME, "#.B");

6、關注?king?老師?kafka?的?A?章節,怎么辦?

聲明一個隊列并綁定到交換器上:channel.queueBind(queueName,TopicProducer.EXCHANGE_NAME, "king.kafka.A");

總結

以上是生活随笔為你收集整理的java消息通信_原生 Java 客户端进行消息通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。