91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Springboot中RocketMQ怎么實現消息發送與接收

發布時間:2022-06-23 13:58:15 來源:億速云 閱讀:515 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Springboot中RocketMQ怎么實現消息發送與接收”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Springboot中RocketMQ怎么實現消息發送與接收”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

springboot+rockermq 實現簡單的消息發送與接收

普通消息的發送方式有3種:單向發送、同步發送和異步發送。

下面來介紹下 springboot+rockermq 整合實現 普通消息的發送與接收

  • 創建Springboot項目,添加rockermq 依賴

<!--rocketMq依賴-->
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-spring-boot-starter</artifactId>
    <version>2.2.1</version>
</dependency>
  • 配置rocketmq

# 端口
server:
  port: 8083

# 配置 rocketmq
rocketmq:
  name-server: 127.0.0.1:9876
  #生產者
  producer:
    #生產者組名,規定在一個應用里面必須唯一
    group: group1
    #消息發送的超時時間 默認3000ms
    send-message-timeout: 3000
    #消息達到4096字節的時候,消息就會被壓縮。默認 4096
    compress-message-body-threshold: 4096
    #最大的消息限制,默認為128K
    max-message-size: 4194304
    #同步消息發送失敗重試次數
    retry-times-when-send-failed: 3
    #在內部發送失敗時是否重試其他代理,這個參數在有多個broker時才生效
    retry-next-server: true
    #異步消息發送失敗重試的次數
    retry-times-when-send-async-failed: 3

  • 新建一個 controller 來做消息發送:

package com.example.springbootrocketdemo.controller;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 普通信息的三種方式:同步、異步、單向
 * @author qzz
 */
@RestController
public class RocketMQCOntroller {
    @Autowired
    private RocketMQTemplate rocketMQTemplate;
    /**
     * 發送普通消息
     * convertAndSend(String destination, Object payload) 發送字符串比較方便
     */
    @RequestMapping("/send")
    public void send(){
        rocketMQTemplate.convertAndSend("test-topic","test-message");
    }
    /**
     * 發送同步消息
     */
    @RequestMapping("/testSyncSend")
    public void testSyncSend(){
        //參數一:topic   如果想添加tag,可以使用"topic:tag"的寫法
        //參數二:消息內容
        SendResult sendResult = rocketMQTemplate.syncSend("test-topic","同步消息測試");
        System.out.println(sendResult);
    }
    /**
     * 發送異步消息
     */
    @RequestMapping("/testASyncSend")
    public void testASyncSend(){
        //參數一:topic   如果想添加tag,可以使用"topic:tag"的寫法
        //參數二:消息內容
        //參數三:回調
        rocketMQTemplate.asyncSend("test-topic", "異步消息測試", new SendCallback() {
            @Override
            public void onSuccess(SendResult sendResult) {
                System.out.println(sendResult);
            }
            @Override
            public void onException(Throwable throwable) {
                System.out.println("消息發送異常");
                throwable.printStackTrace();
            }
        });
    }
    /**
     * 發送單向消息
     */
    @RequestMapping("/testOneWay")
    public void testOneWay(){
        //參數一:topic   如果想添加tag,可以使用"topic:tag"的寫法
        //參數二:消息內容
        rocketMQTemplate.sendOneWay("test-topic","單向消息測試");
    }
}

SpringBoot給我們提供了RocketMQTemplate模板類,我們利用這個類可以以多種形式發送消息。

發送方法指定Topic主題test-topic。

  • 新建消息消費者監聽RocketMQConsumerListener,監聽消息,消費消息

package com.example.springbootrocketdemo.config;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
/**
 * 消費消息
 * 配置RocketMQ監聽
 * @author qzz
 */
@Service
@RocketMQMessageListener(consumerGroup = "test",topic = "test-topic")
public class RocketMQConsumerListener implements RocketMQListener<String> {
    @Override
    public void onMessage(String s) {
        System.out.println("消費消息:"+s);
    }
}

消費者類要實現RocketMQListener接口,以及動態指定消息類型String。

類上要加上@RocketMQMessageListener注解,指定topic主題test-topic,以及消費者組test

簡單的消息發送與接收搭建完畢!

  • 啟動服務,測試消息消費

Springboot中RocketMQ怎么實現消息發送與接收

Springboot中RocketMQ怎么實現消息發送與接收

測試同步消息:

Springboot中RocketMQ怎么實現消息發送與接收

測試異步消息:

Springboot中RocketMQ怎么實現消息發送與接收

測試單向消息:

Springboot中RocketMQ怎么實現消息發送與接收

讀到這里,這篇“Springboot中RocketMQ怎么實現消息發送與接收”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新郑市| 新竹县| 永修县| 台南县| 申扎县| 乌审旗| 丰都县| 信丰县| 东台市| 广宗县| 蒙山县| 瑞金市| 岗巴县| 政和县| 岐山县| 兴城市| 甘孜| 漳浦县| 屯昌县| 金门县| 普宁市| 紫云| 大化| 河西区| 章丘市| 登封市| 沁阳市| 文昌市| 六安市| 福建省| 卢龙县| 六枝特区| 博爱县| 义乌市| 成安县| 温宿县| 望江县| 英吉沙县| 天门市| 房产| 汝州市|