中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站 默認(rèn)首頁(yè)濟(jì)南seo的排名優(yōu)化

網(wǎng)站 默認(rèn)首頁(yè),濟(jì)南seo的排名優(yōu)化,仙霞新村街道網(wǎng)站建設(shè),免費(fèi)空間試用1、 訂閱模型-Direct ? 有選擇性的接收消息 ? 在訂閱模式中,生產(chǎn)者發(fā)布消息,所有消費(fèi)者都可以獲取所有消息。 ? 在路由模式中,我們將添加一個(gè)功能 - 我們將只能訂閱一部分消息。 例如,我們只能將重要的錯(cuò)誤消息引導(dǎo)到日志文件…

1、 訂閱模型-Direct

? 有選擇性的接收消息
? 在訂閱模式中,生產(chǎn)者發(fā)布消息,所有消費(fèi)者都可以獲取所有消息。
? 在路由模式中,我們將添加一個(gè)功能 - 我們將只能訂閱一部分消息。
例如,我們只能將重要的錯(cuò)誤消息引導(dǎo)到日志文件(以節(jié)省磁盤(pán)空間),同時(shí)仍然能夠在控制臺(tái)上打印所有日志消息。
? 但是,在某些場(chǎng)景下,我們希望不同的消息被不同的隊(duì)列消費(fèi)。這時(shí)就要用到Direct類(lèi)型的Exchange。
? 在Direct模型下,隊(duì)列與交換機(jī)的綁定,不能是任意綁定了,而是要指定一個(gè)RoutingKey(路由key)
? 消息的發(fā)送方在向Exchange發(fā)送消息時(shí),也必須指定消息的routing key。
在這里插入圖片描述

? P:生產(chǎn)者,向Exchange發(fā)送消息,發(fā)送消息時(shí),會(huì)指定一個(gè)routing key。
? X:Exchange(交換機(jī)),接收生產(chǎn)者的消息,然后把消息遞交給 與routing key完全匹配的隊(duì)列
? C1:消費(fèi)者,其所在隊(duì)列指定了需要routing key 為 error 的消息
? C2:消費(fèi)者,其所在隊(duì)列指定了需要routing key 為 info、error、warning 的消息

1.1、生產(chǎn)者

此處我們模擬商品的增刪改,發(fā)送消息的RoutingKey分別是:insert、update、delete

public class Send {private final static String EXCHANGE_NAME = "direct_exchange_test";public static void main(String[] argv) throws Exception {// 獲取到連接Connection connection = ConnectionUtil.getConnection();// 獲取通道Channel channel = connection.createChannel();// 聲明exchange,指定類(lèi)型為directchannel.exchangeDeclare(EXCHANGE_NAME, "direct");// 消息內(nèi)容String message = "商品新增了, id = 1001";// 發(fā)送消息,并且指定routing key 為:insert ,代表新增商品channel.basicPublish(EXCHANGE_NAME, "insert", null, message.getBytes());System.out.println(" [商品服務(wù):] Sent '" + message + "'");channel.close();connection.close();}
}

1.2、消費(fèi)者1

我們此處假設(shè)消費(fèi)者1只接收兩種類(lèi)型的消息:更新商品和刪除商品。

public class Recv {private final static String QUEUE_NAME = "direct_exchange_queue_1";private final static String EXCHANGE_NAME = "direct_exchange_test";public static void main(String[] argv) throws Exception {// 獲取到連接Connection connection = ConnectionUtil.getConnection();// 獲取通道Channel channel = connection.createChannel();// 聲明隊(duì)列channel.queueDeclare(QUEUE_NAME, false, false, false, null);// 綁定隊(duì)列到交換機(jī),同時(shí)指定需要訂閱的routing key。假設(shè)此處需要update和delete消息channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "update");channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "delete");// 定義隊(duì)列的消費(fèi)者DefaultConsumer consumer = new DefaultConsumer(channel) {// 獲取消息,并且處理,這個(gè)方法類(lèi)似事件監(jiān)聽(tīng),如果有消息的時(shí)候,會(huì)被自動(dòng)調(diào)用@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties,byte[] body) throws IOException {// body 即消息體String msg = new String(body);System.out.println(" [消費(fèi)者1] received : " + msg + "!");}};// 監(jiān)聽(tīng)隊(duì)列,自動(dòng)ACKchannel.basicConsume(QUEUE_NAME, true, consumer);}
}

1.3、 消費(fèi)者2

我們此處假設(shè)消費(fèi)者2接收所有類(lèi)型的消息:新增商品,更新商品和刪除商品。

public class Recv2 {private final static String QUEUE_NAME = "direct_exchange_queue_2";private final static String EXCHANGE_NAME = "direct_exchange_test";public static void main(String[] argv) throws Exception {// 獲取到連接Connection connection = ConnectionUtil.getConnection();// 獲取通道Channel channel = connection.createChannel();// 聲明隊(duì)列channel.queueDeclare(QUEUE_NAME, false, false, false, null);// 綁定隊(duì)列到交換機(jī),同時(shí)指定需要訂閱的routing key。訂閱 insert、update、deletechannel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "insert");channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "update");channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "delete");// 定義隊(duì)列的消費(fèi)者DefaultConsumer consumer = new DefaultConsumer(channel) {// 獲取消息,并且處理,這個(gè)方法類(lèi)似事件監(jiān)聽(tīng),如果有消息的時(shí)候,會(huì)被自動(dòng)調(diào)用@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties,byte[] body) throws IOException {// body 即消息體String msg = new String(body);System.out.println(" [消費(fèi)者2] received : " + msg + "!");}};// 監(jiān)聽(tīng)隊(duì)列,自動(dòng)ACKchannel.basicConsume(QUEUE_NAME, true, consumer);}
}

1.4、測(cè)試

我們分別發(fā)送增、刪、改的RoutingKey,發(fā)現(xiàn)結(jié)果:

在這里插入圖片描述

在這里插入圖片描述

http://www.risenshineclean.com/news/1202.html

相關(guān)文章:

  • 商城開(kāi)發(fā)價(jià)格服務(wù)排名優(yōu)化百度
  • 和先鋒影音和做的網(wǎng)站百度關(guān)鍵詞排名推廣
  • 騎行網(wǎng)站模板網(wǎng)站搭建平臺(tái)
  • wordpress 黃藍(lán) 現(xiàn)代企業(yè)教程seo推廣排名網(wǎng)站
  • 建立網(wǎng)站需要注冊(cè)公司嗎seo引擎優(yōu)化公司
  • 網(wǎng)站做哪些主題比較容易做幽默廣告軟文案例
  • 專(zhuān)做外貿(mào)衣服鞋網(wǎng)站有哪些網(wǎng)址搜索引擎入口
  • 還有什么網(wǎng)站可以做面包車(chē)?yán)涀鲆粋€(gè)網(wǎng)站需要多少錢(qián)大概
  • 福建網(wǎng)站建設(shè)公司交換友情鏈接的意義是什么
  • 常州建設(shè)工程監(jiān)理員掛證網(wǎng)站百度軟件開(kāi)放平臺(tái)
  • 做網(wǎng)站的時(shí)候賣(mài)過(guò)假貨而出過(guò)事搜索引擎優(yōu)化是免費(fèi)的嗎
  • 重點(diǎn)項(xiàng)目建設(shè)網(wǎng)站商業(yè)策劃公司十大公司
  • 營(yíng)銷(xiāo)型網(wǎng)站系統(tǒng)網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃方案
  • 國(guó)內(nèi)做新聞比較好的網(wǎng)站有哪些企業(yè)網(wǎng)站制作公司
  • wordpress漢語(yǔ)公益搜索網(wǎng)站排名優(yōu)化
  • 網(wǎng)站被降權(quán)會(huì)發(fā)生什么長(zhǎng)春網(wǎng)站公司哪家好
  • 廊坊網(wǎng)站快速排名優(yōu)化杭州seo營(yíng)銷(xiāo)
  • 旅游網(wǎng)站開(kāi)發(fā)功能網(wǎng)絡(luò)廣告投放網(wǎng)站
  • 公安部門(mén)網(wǎng)站備案網(wǎng)站產(chǎn)品推廣
  • 政府網(wǎng)站建設(shè)工作匯報(bào)網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站制作
  • 寧波網(wǎng)站建設(shè)免費(fèi)咨詢(xún)漯河網(wǎng)絡(luò)推廣哪家好
  • 微信微網(wǎng)站平臺(tái)seo優(yōu)化流程
  • j昆明網(wǎng)站制作公司關(guān)鍵詞搜索指數(shù)
  • 怎么靠做網(wǎng)站賺錢(qián)嗎企業(yè)宣傳方式有哪些
  • python 做網(wǎng)站開(kāi)發(fā)嗎app拉新怎么做
  • 銅山區(qū)建設(shè)局局網(wǎng)站周保春安卓?jī)?yōu)化大師舊版
  • 網(wǎng)站搜索不到公司網(wǎng)站如何建造一個(gè)網(wǎng)站
  • 網(wǎng)址你知道我的意思的免費(fèi)何鵬seo
  • 做網(wǎng)站的服務(wù)商最新軍事新聞今日最新消息
  • 誰(shuí)可以做網(wǎng)站優(yōu)化排名推廣百度管理員聯(lián)系方式