• <acronym id="qmqcg"><cite id="qmqcg"></cite></acronym>
    <td id="qmqcg"><em id="qmqcg"></em></td>
    • 首頁 > 生活 >

      焦點消息!使用 Spring Cloud Bus 在微服務之間傳遞消息示例


      【資料圖】

      下面是一個完整的示例,演示如何使用 Spring Cloud Bus 在微服務之間傳遞消息。該示例包含兩個微服務,一個是消息發送者,另一個是消息接收者。

      首先,我們需要創建一個 Spring Boot 項目,并添加 Spring Cloud Bus 和 RabbitMQ 的依賴。在 pom.xml 文件中添加以下依賴:

          org.springframework.cloud    spring-cloud-starter-bus-amqp    2.2.1.RELEASE    org.springframework.boot    spring-boot-starter-web    2.2.1.RELEASE    org.springframework.boot    spring-boot-starter-amqp    2.2.1.RELEASE

      在創建的項目中,我們定義了一個消息類型 MyMessage,該類型包含一個字符串類型的 content 屬性。

      javaCopy codepublic class MyMessage implements Serializable {    private static final long serialVersionUID = 1L;    private String content;    public MyMessage(String content) {        this.content = content;    }    public String getContent() {        return content;    }    public void setContent(String content) {        this.content = content;    }}

      然后,我們創建了一個消息發送者,該發送者使用 Spring Cloud Bus 發送消息。

      @RestControllerpublic class MyController {    @Autowired    private MessageSender messageSender;    @PostMapping("/send")    public void sendMessage(@RequestBody MyMessage message) {        messageSender.sendMessage(message);    }}@Servicepublic class MessageSender {    private static final Logger LOGGER = LoggerFactory.getLogger(MessageSender.class);    @Autowired    private MessageChannel output;    public void sendMessage(MyMessage message) {        LOGGER.info("Sending message: {}", message.getContent());        output.send(MessageBuilder.withPayload(message).build());    }}@Servicepublic class MessageListener {    private static final Logger LOGGER = LoggerFactory.getLogger(MessageListener.class);    @StreamListener(target = Sink.INPUT, condition = "headers["type"]=="MyMessage"")    public void handleMessage(MyMessage message) {        LOGGER.info("Received message: {}", message.getContent());    }}

      在這個例子中,我們創建了一個 MyController 類,該類定義了一個發送消息的 API 接口,接收一個 MyMessage 類型的參數,將參數傳遞給 MessageSender 類的 sendMessage() 方法。

      MessageSender 類定義了一個 sendMessage() 方法,該方法使用 Spring Cloud Stream 的 output 消息通道發送消息。

      MessageListener 類定義了一個 handleMessage() 方法,該方法使用 @StreamListener 注解監聽 Spring Cloud Stream 的 input 消息通道,并根據消息類型過濾消息。當有符合條件的消息到達時,handleMessage() 方法會被自動調用,處理接收到的消息。

      在以上代碼中,我們使用了 @Autowired 注解自動注入了 MessageSender 和 MessageListener 類,這是 Spring Boot 自帶的依賴注入功能。

      運行應用程序后,我們可以使用 Postman 工具或其他 HTTP 工具發送 HTTP POST 請求,將消息發送到消息發送者的 API 接口,如下所示:

      POST http://localhost:8080/send HTTP/1.1Content-Type: application/json{    "content": "Hello, World!"}

      當消息到達時,消息接收者會打印消息內容,如下所示:

      2023-04-19 09:24:47.836  INFO 29740 --- [afka-listener-1] com.example.demo.M

      關鍵詞:

      責任編輯:Rex_22

      推薦閱讀

      關于我們 聯系我們 商務合作 誠聘英才 網站地圖

      Copyright @ 2008-2020 www.wnchengjie.com Corporation,All Rights Reserved

      熱訊新聞網 版權所有 備案號:豫ICP備20005723號-6
      文章投訴郵箱:2 9 5 9 1 1 5 7 8@qq.com 違法信息舉報郵箱:jubao@123777.net.cn

      營業執照公示信息

      亚洲线精品久久一区二区三区,成人看片在线观看,草草视频手机在线观看视频,亚洲六月丁香色婷婷综合久久
    • <acronym id="qmqcg"><cite id="qmqcg"></cite></acronym>
      <td id="qmqcg"><em id="qmqcg"></em></td>
      • 主站蜘蛛池模板: 欧美在线看片a免费观看| 91午夜精品亚洲一区二区三区| www.henhenai| 2019国产麻豆剧传媒视| 韩日美无码精品无码| 韩国一区二区视频| 欧美专区在线播放| 日本在线视频www色| 日本人与黑人xxxx| 国产精品久久久久久网站| 免费观看女子推理社| 亚洲日本国产乱码va在线观看| vvvv99日韩精品亚洲| 精品人妻少妇一区二区三区在线| 特级aaa毛片| 日本三级韩国三级在线观看a级 | 日韩欧美亚洲综合久久| 我的好妈妈6中字在线观看韩国| 天天看天天干天天操| 国产精品一区二区香蕉| 再灬再灬再灬深一点舒服| 久久久精品2019中文字幕2020| 18亚洲男同志videos网站| 欧美呜巴又大粗又长| 国产理论视频在线观看| 亚洲欧美一区二区三区日产| 一级做a免费视频观看网站| 青青青伊人色综合久久| 无码人妻丰满熟妇区五十路| 国产午夜福利精品一区二区三区 | 精品国产日韩亚洲一区| 嫩草伊人久久精品少妇av| 国产aⅴ激情无码久久| 久久久噜噜噜久久中文福利| 国产主播在线播放| 欧美乱妇狂野欧美在线视频| 国产高清在线看| 亚洲一区二区三区偷拍女厕 | 亚洲AV福利天堂一区二区三| 2018中文字幕在线观看| 日韩精品一区二区三区在线观看 |