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

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

          首頁(yè) > 資訊 > > 正文

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


          【資料圖】

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

          首先,我們需要?jiǎng)?chuàng)建一個(gè) Spring Boot 項(xiàng)目,并添加 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

          在創(chuàng)建的項(xiàng)目中,我們定義了一個(gè)消息類型 MyMessage,該類型包含一個(gè)字符串類型的 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;    }}

          然后,我們創(chuàng)建了一個(gè)消息發(fā)送者,該發(fā)送者使用 Spring Cloud Bus 發(fā)送消息。

          @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());    }}

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

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

          MessageListener 類定義了一個(gè) handleMessage() 方法,該方法使用 @StreamListener 注解監(jiān)聽 Spring Cloud Stream 的 input 消息通道,并根據(jù)消息類型過濾消息。當(dāng)有符合條件的消息到達(dá)時(shí),handleMessage() 方法會(huì)被自動(dòng)調(diào)用,處理接收到的消息。

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

          運(yùn)行應(yīng)用程序后,我們可以使用 Postman 工具或其他 HTTP 工具發(fā)送 HTTP POST 請(qǐng)求,將消息發(fā)送到消息發(fā)送者的 API 接口,如下所示:

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

          當(dāng)消息到達(dá)時(shí),消息接收者會(huì)打印消息內(nèi)容,如下所示:

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

          關(guān)鍵詞:

          下一篇:斯諾克90后挑大梁?或占據(jù)4席8強(qiáng),囧哥對(duì)31冠王,5虎全軍覆沒?_世界要聞
          上一篇:最后一頁(yè)

          科技

           
          国产三级日本三级日产三级66,五月天激情婷婷大综合,996久久国产精品线观看,久久精品人人做人人爽97
          • <bdo id="qgeso"></bdo>
              • <strike id="qgeso"></strike>
              • <sup id="qgeso"></sup><center id="qgeso"></center>
              • <input id="qgeso"></input>
                主站蜘蛛池模板: 四色在线精品免费观看| 好大好硬别停老师办公室视频| 国产成人无码AV一区二区| 亚洲国产中文在线二区三区免| JIZZYOU中国少妇| 男人桶女人视频不要下载| 妞干网免费视频观看| 办公室震动揉弄求求你| 一本到视频在线| 疯狂魔鬼城无限9999999金币| 小莹与翁回乡下欢爱姿势| 公和我做好爽添厨房在线观看| 一本一道dvd在线观看免费视频| 第一福利在线观看| 天天操天天舔天天干| 亚洲精品人成在线观看| 19岁rapper潮水第一集| 欧美大香线蕉线伊人图片| 国产精品特黄毛片| 亚洲尹人九九大色香蕉网站| 一区二区视频免费观看| 男朋友想吻我腿中间部位| 女人被弄到高潮的免费视频| 免费看又黄又无码的网站| аⅴ中文在线天堂| 玄兵chinesemoney| 大香伊人久久精品一区二区 | 欧美地区一二三区| 国产精品免费精品自在线观看| 国产精品情侣呻吟对白视频| 亚洲国产成人精品无码区在线观看 | 日日干夜夜操视频| 国产一区二区三区电影| 亚洲精品狼友在线播放| gogogo高清在线播放| 男人的j桶女人的j视频| 天天插天天狠天天透| 亚洲综合区小说区激情区| 51视频精品全部免费最新| 欧美一级黄色片视频| 国产成人精品一区二三区在线观看|