Apache RocketMQ:简单消息示例
生活随笔
收集整理的這篇文章主要介紹了
Apache RocketMQ:简单消息示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通過三種方式來發送RocketMQ消息使用: 可靠的同步發送, 可靠的異步發送和單向傳輸。
這個頁面舉例說明了這三種消息發送方式. 根據示例找出最適合你的特定用例。
可靠的同步傳輸
應用:可靠的同步傳輸廣泛應用于重要通知消息,短信通知,短信營銷系統等..
public class SyncProducer {public static void main(String[] args) throws Exception {//Instantiate with a producer group name.DefaultMQProducer producer = newDefaultMQProducer("please_rename_unique_group_name");//Launch the instance.producer.start();for (int i = 0; i < 100; i++) {//Create a message instance, specifying topic, tag and message body.Message msg = new Message("TopicTest" /* Topic */,"TagA" /* Tag */,("Hello RocketMQ " +i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */);//Call send message to deliver message to one of brokers.SendResult sendResult = producer.send(msg);System.out.printf("%s%n", sendResult);}//Shut down once the producer instance is not longer in use.producer.shutdown();} }可靠的異步傳輸
應用:異步傳輸通常用于響應時間敏感的業務場景。
public class AsyncProducer {public static void main(String[] args) throws Exception {//Instantiate with a producer group name.DefaultMQProducer producer = new DefaultMQProducer("ExampleProducerGroup");//Launch the instance.producer.start();producer.setRetryTimesWhenSendAsyncFailed(0);for (int i = 0; i < 100; i++) {final int index = i;//Create a message instance, specifying topic, tag and message body.Message msg = new Message("TopicTest","TagA","OrderID188","Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET));producer.send(msg, new SendCallback() {@Overridepublic void onSuccess(SendResult sendResult) {System.out.printf("%-10d OK %s %n", index,sendResult.getMsgId());}@Overridepublic void onException(Throwable e) {System.out.printf("%-10d Exception %s %n", index, e);e.printStackTrace();}});}//Shut down once the producer instance is not longer in use.producer.shutdown();} }單向傳輸
應用:單向傳輸用于需要中等可靠性的情況,例如日志收集.
public class OnewayProducer {public static void main(String[] args) throws Exception{//Instantiate with a producer group name.DefaultMQProducer producer = new DefaultMQProducer("ExampleProducerGroup");//Launch the instance.producer.start();for (int i = 0; i < 100; i++) {//Create a message instance, specifying topic, tag and message body.Message msg = new Message("TopicTest" /* Topic */,"TagA" /* Tag */,("Hello RocketMQ " +i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */);//Call send message to deliver message to one of brokers.producer.sendOneway(msg);}//Shut down once the producer instance is not longer in use.producer.shutdown();} }?
轉自?并發編程網 – ifeve.com??地址:?《Apache RocketMQ用戶指南》之簡單消息示例
更多 RocketMQ的經典文章:《Apache RocketMQ用戶指南》官方文檔
總結
以上是生活随笔為你收集整理的Apache RocketMQ:简单消息示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c#中WepAPI(post/get)控
- 下一篇: IntelliJ IDEA 中配置、使用