<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
都在過情人節,前端的小哥哥們給女朋友畫個頁面,美美的,寫個chrome外掛,好看的,俺們後端程式設計師咋辦。
我給媳婦寫首詩,哈哈
我決定,把想對媳婦說的,今天傳送到一個MQ裡邊,然後在七夕當天,開啟消費者,將這一段話給俺媳婦看。你看,這就是我好久前對你說的話,這就是我們後端程式設計師的浪漫。當然也可以多傳送幾個,到時候跟根據topic
控制到底發什麼,哈哈。
這裡首先得用順序訊息,當然,訊息過期時間得設定的長一點。
點選下載,這是個windows版本的。
下載完成解壓後長這樣:
然後後還需要設定環境變數
這個時候就可以進入到RocketMQ的bin目錄啟動MQ了
start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
這個時候就啟動成功了
需要注意的是,訊息必須是順序訊息,不然傳送的訊息順序就亂了。一首情詩順序亂了,讀不下去,豈不是很尷尬。
import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.MessageQueueSelector; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.common.message.Message; import org.apache.rocketmq.common.message.MessageQueue; import java.util.List; public class RocketMQOrderProducer { public static void main(String[] args) throws Exception { DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name"); producer.setNamesrvAddr("127.0.0.1:9876"); producer.start(); String[] tags = new String[]{"TagA", "TagC", "TagD"}; //讀取檔案 List<String> messages = getMessages(); for (int i = 0; i < messages.size(); i++) { String body = messages.get(i); Message msg = new Message("topic_luke", tags[i % tags.length], "KEY" + i, body.getBytes()); SendResult sendResult = producer.send(msg, new MessageQueueSelector() { @Override public MessageQueue select(List<MessageQueue> mqs, Message msg, Object arg) { Long id = ((Integer)arg).longValue(); long index = id % mqs.size(); return mqs.get((int) index); } }, i); } producer.shutdown(); } static List<String> getMessages() throws IOException { String temp = null; File f = new File("E:Codeonline-taxi-threedemoluke.txt"); InputStreamReader read = new InputStreamReader(new FileInputStream(f)); ArrayList readList = new ArrayList(); BufferedReader reader = new BufferedReader(read); while ((temp = reader.readLine()) != null && !"".equals(temp)) { readList.add(temp); } return readList; } }
這裡需要注意的是setConsumeThreadMax
和setConsumeThreadMin
都需要設定成1,單執行緒取訊息這樣就可以通過sleep控制訊息的顯示速度,不然並行取訊息就很快顯示完了。不夠唯美。
import lombok.SneakyThrows; import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently; import org.apache.rocketmq.common.message.MessageExt; import java.util.List; import java.util.concurrent.TimeUnit; public class RockerMQConsumer { public static void main(String[] args) throws Exception { //範例化訊息消費者 DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("group_luke"); //指定nameserver地址 consumer.setNamesrvAddr("127.0.0.1:9876"); consumer.setConsumeThreadMax(1); consumer.setConsumeThreadMin(1); consumer.setPullBatchSize(1); //訂閱topic consumer.subscribe("topic_luke","*"); // 註冊回撥實現類來處理從broker拉取回來的訊息 consumer.registerMessageListener(new MessageListenerConcurrently() { @SneakyThrows @Override public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) { for (MessageExt msg : msgs) { System.out.println(new String(msg.getBody())); TimeUnit.SECONDS.sleep(3); } // 標記該訊息已經被成功消費 return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; } }); // 啟動消費者範例 consumer.start(); System.out.printf("Consumer Started.%n"); } }
傳送的內容在這裡自由編寫哈,路徑和檔名能對上就行,謝謝觀看,最近突發奇想,把技術編成故事講出來,會不會比較受歡迎呢。
以上就是RocketMQ訊息佇列實現隨機訊息傳送當做七夕禮物的詳細內容,更多關於RocketMQ訊息佇列隨機訊息的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45