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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

消息类型-普通消息

發布時間:2024/4/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 消息类型-普通消息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

普通消息

RocketMQ提供三種方式來發送普通消息:可靠同步發送、可靠異步發送和單向發送。

可靠同步發送

同步發送是指消息發送方發出數據后,會在收到接收方發回響應之后才發下一個數據包的通訊方式。

此種方式應用場景非常廣泛,例如重要通知郵件、報名短信通知、營銷短信系統等。

可靠異步發送

異步發送是指發送方發出數據后,不等接收方發回響應,接著發送下個數據包的通訊方式。發送方通過回調接口接收服務器響應,并對響應結果進行處理

異步發送是指發送方發出數據后,不等接收方發回響應,接著發送下個數據包的通訊方式。發送方通過回調接口接收服務器響應,并對響應結果進行處理

單向發送

單向發送是指發送方只負責發送消息,不等待服務器回應且沒有回調函數觸發,即只發送請求不等待應答。

適用于某些耗時非常短,但對可靠性要求并不高的場景,例如日志收集。

<!--依賴--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency><groupId>junit</groupId><artifactId>junit</artifactId> </dependency> package com.leon.test;import com.leon.OrderApplication; import org.apache.rocketmq.client.producer.SendCallback; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class) @SpringBootTest(classes = OrderApplication.class) public class MessageTypeTest {@Autowiredprivate RocketMQTemplate rocketMQTemplate;//同步消息@Testpublic void testSyncSend() {//參數一: topic:tag//參數二: 消息體//參數三: 超時時間SendResult result =rocketMQTemplate.syncSend("test-topic-1:tag", "這是一條同步消息", 10000);System.out.println(result);}//異步消息@Testpublic void testAsyncSend() throws InterruptedException {//參數一: topic:tag//參數二: 消息體//參數三: 回調rocketMQTemplate.asyncSend("test-topic-1", "這是一條異步消息", new SendCallback() {//成功響應的回調@Overridepublic void onSuccess(SendResult result) {System.out.println(result);}//異常響應的回調@Overridepublic void onException(Throwable throwable) {System.out.println(throwable);}});System.out.println("==================");Thread.sleep(300000000);}//單向消息@Testpublic void testOneWay() {for (int i = 0; i < 10; i++) {rocketMQTemplate.sendOneWay("test-topic-1", "這是一條單向消息");}}//單向順序消息@Testpublic void testOneWayOrderly() {for (int i = 0; i < 10; i++) {//第三個參數的作用是用來決定這些消息發送到哪個隊列的上的rocketMQTemplate.sendOneWayOrderly("test-topic-1", "這是一條單向消息","xx");}} }

三種發送方式的對比

發送方式發送 TPS發送結果反饋可靠性
同步發送不丟失
異步發送不丟失
單向發送最快可能丟失

?

總結

以上是生活随笔為你收集整理的消息类型-普通消息的全部內容,希望文章能夠幫你解決所遇到的問題。

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