• <bdo id="qgeso"></bdo>
        • <strike id="qgeso"></strike>
        • <sup id="qgeso"></sup><center id="qgeso"></center>
        • <input id="qgeso"></input>

          使用 Spring Cloud Bus 在微服務之間傳遞消息示例|全球最新

          首頁 > 資訊 > > 正文

          日期:2023-04-22 12:55:43    來源:騰訊云    


          【資料圖】

          下面是一個完整的示例,演示如何使用 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

          關鍵詞:

          下一篇:斯諾克90后挑大梁?或占據4席8強,囧哥對31冠王,5虎全軍覆沒?_世界要聞
          上一篇:最后一頁

          科技

           
          国产三级日本三级日产三级66,五月天激情婷婷大综合,996久久国产精品线观看,久久精品人人做人人爽97
          • <bdo id="qgeso"></bdo>
              • <strike id="qgeso"></strike>
              • <sup id="qgeso"></sup><center id="qgeso"></center>
              • <input id="qgeso"></input>
                主站蜘蛛池模板: 国产成人精选视频69堂| 精品久久久久香蕉网| 深夜爽爽福利gif在线观看| 很污的视频网站| 国产床戏无遮挡免费观看网站| 公与秀婷厨房猛烈进出视频| 中文字幕亚洲激情| 69堂国产成人精品视频不卡| 欧美日韩亚洲二区在线| 国产精品视频无圣光一区| 免费va人成视频网站全| 一二三四日本高清社区5| 蜜臀精品国产高清在线观看| 日本人成动漫网站在线观看| 国产三级手机在线| 中文字幕在线资源| 精品国产午夜理论片不卡| 好硬好大好爽18漫画| 人人澡人人透人人爽| 97久久精品午夜一区二区| 粗大的内捧猛烈进出小视频| 天海翼大乱欲在线观看| 亚洲色婷婷六月亚洲婷婷6月| 97国产免费全部免费观看| 欧美成人精品一区二三区在线观看| 国产精品午夜爆乳美女视频| 亚洲AV激情无码专区在线播放| 麻豆91免费视频| 欧美a级片在线观看| 国产在线精品香蕉麻豆| 久久99视频精品| 精品国产区一区二区三区在线观看| 天天综合天天操| 亚洲无码在线播放| 国产1000部成人免费视频| 樱花草视频www| 国产偷窥熟女精品视频| 中国体育生gary飞机| 男人桶女人的肌肌30分| 婷婷五月综合色中文字幕| 又粗又硬免费毛片|