国产乱人伦偷精品视频不卡_久久久国产综合精品女国产盗摄_亚洲精品视频在线_一本一道波多野结衣一区二区

使用 Spring Cloud Bus 在微服務(wù)之間傳遞消息示例-全球聚焦

來(lái)源:騰訊云時(shí)間:2023-04-23 11:30:33


(資料圖片)

下面是一個(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)聽(tīng) Spring Cloud Stream 的 input 消息通道,并根據(jù)消息類型過(guò)濾消息。當(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

標(biāo)簽:

責(zé)任編輯:FD31
上一篇:環(huán)球微動(dòng)態(tài)丨億縷陽(yáng)光|讀書有光
下一篇:降價(jià)開(kāi)啟,驍龍8 Gen2旗艦價(jià)格降到2499元|天天滾動(dòng)

精彩圖集(熱圖)

熱點(diǎn)圖集

最近更新

信用中國(guó)

  • 信用信息
  • 行政許可和行政處罰
  • 網(wǎng)站文章

主站蜘蛛池模板: 国产精品手机播放| 国产日韩亚洲精品| 欧美欧美一区二区| 国产精品免费观看久久| 91精品国产综合久久香蕉922| 日韩欧美亚洲区| 国产精品免费观看久久| 久久久久久国产精品免费免费| 国产精品高清网站| 日本久久久a级免费| 亚洲一区中文字幕在线观看| 不卡视频一区| 国产免费一区二区视频 | 久久精品视频99| 丝袜亚洲欧美日韩综合| 一区二区三区在线视频看| 国产精品av免费在线观看| 国产精品入口尤物| 国产精品视频自在线| 国产精品欧美日韩一区二区| 国产精品一区二区三区观看| 欧美日韩一区在线视频| 欧美亚洲激情在线| 日本亚洲欧美三级| 日韩人妻一区二区三区蜜桃视频| 亚洲精品免费av| 一区二区视频国产| 丝袜亚洲欧美日韩综合| 日本一区二区在线视频| 97国产suv精品一区二区62| 欧日韩不卡在线视频| 亚洲自拍中文字幕| 日韩.欧美.亚洲| 日本久久久久久久| 欧美激情网友自拍| 久久久在线视频| 日本三级久久久| 日本亚洲欧洲色α| 欧美,日韩,国产在线| 久久精品国产v日韩v亚洲| 久久成人av网站|