日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SpringCloud Stream使用解析

瀏覽:22日期:2023-07-18 14:24:32
SpringCloudStream

官方定義Spring Cloud Stream 是一個構建消息驅動微服務的框架。應用通過inputs和outputs來與Spring Cloud Stream中binder對象交互。通過我們配置來binding(綁定),而Spring Cloud Stream中的binder對象負責與消息中間件交互。所以,我們只需要搞清楚如何與Spring Cloud Stream 交互就可以方便使用消息驅動的方式。通過使用Spring Integration來連接消息代理中間件以及實現消息事件驅動。目前僅支持RabbitMQ和kafka

下面用RabbitMQ來說明使用!案例之消息驅動之生產者

1.建一個項目,并添加如下的依賴:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId> </dependency>

2.編寫下面的yml文件

server: port: 8801spring: application: name: cloud-stream-provider rabbitmq: host: 192.168.43.76 port: 5672 username: guest password: guest cloud: stream: binders: # 在此處配置要綁定的rabbitmq的服務信息; defaultRabbit: # 表示定義的名稱,用于于binding整合 type: rabbit # 消息組件類型# environment: # 設置rabbitmq的相關的環境配置,(本機方式)# spring:# rabbitmq:#host: localhost#port: 5672#username: guest#password: guest bindings: # 服務的整合處理 output: # 這個名字是一個通道的名稱 destination: studyExchange # 表示要使用的Exchange名稱定義 content-type: application/json # 設置消息類型,本次為json,文本則設置“text/plain” binder: defaultRabbit # 設置要綁定的消息服務的具體設置(爆紅不要管)eureka: client: # 客戶端進行Eureka注冊的配置 service-url: defaultZone: http://localhost:7001/eureka instance: lease-renewal-interval-in-seconds: 2 # 設置心跳的時間間隔(默認是30秒) lease-expiration-duration-in-seconds: 5 # 如果現在超過了5秒的間隔(默認是90秒) instance-id: send-8801.com # 在信息列表時顯示主機名稱 prefer-ip-address: true # 訪問的路徑變為IP地址

3.編寫service,下面僅展示實現類:

import org.lzl.springcloud.service.IMessageProvider;import org.springframework.cloud.stream.annotation.EnableBinding;import org.springframework.cloud.stream.messaging.Source;import org.springframework.messaging.MessageChannel;import org.springframework.messaging.support.MessageBuilder;import javax.annotation.Resource;import java.util.UUID;//注意這里不需要寫@Service,因為該service是跟rabbitmq打交道的@EnableBinding(Source.class)//定義消息的推送管道public class MessageProviderImpl implements IMessageProvider { @Resource private MessageChannel output; @Override public String send() { String serial = UUID.randomUUID().toString(); output.send(MessageBuilder.withPayload(serial).build()); System.out.println('*****serial:'+serial); return null; }}

4.編寫controller

import org.lzl.springcloud.service.IMessageProvider;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@RestControllerpublic class SendMessageController { @Resource private IMessageProvider messageProvider; @GetMapping(value = '/sendMessage') public String sendMessage(){ return messageProvider.send(); }}案例之消息驅動消費者

1.寫pom,加上下面的依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>

2.編寫yml,和生產者唯一的區別在于,下面是input

server: port: 8802spring: application: name: cloud-stream-consumer rabbitmq: host: 192.168.43.76 port: 5672 username: guest password: guest cloud: stream: binders: # 在此處配置要綁定的rabbitmq的服務信息; defaultRabbit: # 表示定義的名稱,用于于binding整合 type: rabbit # 消息組件類型# environment: # 設置rabbitmq的相關的環境配置# spring:# rabbitmq:#host: localhost#port: 5672#username: guest#password: guest bindings: # 服務的整合處理 input: # 這個名字是一個通道的名稱 destination: studyExchange # 表示要使用的Exchange名稱定義 content-type: application/json # 設置消息類型,本次為對象json,如果是文本則設置“text/plain” binder: defaultRabbit # 設置要綁定的消息服務的具體設置eureka: client: # 客戶端進行Eureka注冊的配置 service-url: defaultZone: http://localhost:7001/eureka instance: lease-renewal-interval-in-seconds: 2 # 設置心跳的時間間隔(默認是30秒) lease-expiration-duration-in-seconds: 5 # 如果現在超過了5秒的間隔(默認是90秒) instance-id: receive-8802.com # 在信息列表時顯示主機名稱 prefer-ip-address: true # 訪問的路徑變為IP地址

3.編寫controller,該controller不向外界暴露端口,起到實時監控消息管道的作用!

import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.stream.annotation.EnableBinding;import org.springframework.cloud.stream.annotation.StreamListener;import org.springframework.cloud.stream.messaging.Sink;import org.springframework.messaging.Message;import org.springframework.stereotype.Component;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@Component@EnableBinding(Sink.class)public class ReceiveMessageListenerController { @Value('${server.port}') private String serverPort; @StreamListener(Sink.INPUT)//只要8801發送消息,8802就會接收到8801的消息 public void input(Message<String> message){ System.out.println('消費者1號--------》接收到的消息:'+message.getPayload()+'t port: '+serverPort); }}測試

啟動rabbitMQ和上面的兩個項目,訪問http://localhost:8801/sendMessage在消費者的控制臺中就會出現下面的訂單流水號:

SpringCloud Stream使用解析

補充說明

我們打開rabbitmq的監控界面:發現默認是幫我們分組的

SpringCloud Stream使用解析

想要自定義分組只需要在消費者的yml文件中加上下面的一行:

SpringCloud Stream使用解析

如果有多個消費者,為了避免出現重復消費的問題,應將組名設置成一樣的。一個組的成員輪循消費,不同組的成員進行相同的消費。

到此這篇關于SpringCloud Stream介紹的文章就介紹到這了,更多相關SpringCloud Stream介紹內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费精品视频| 日韩激情视频网站| 亚洲欧洲一区二区天堂久久| 久久狠狠久久| 亚洲一区二区三区中文字幕在线观看| 国产精品一区二区三区av| 中国女人久久久| 欧美13videosex性极品| 欧美日韩在线二区| 蜜臀国产一区| 成人在线黄色| 欧美国产不卡| 久久av免费看| 麻豆国产精品777777在线| 日韩中文一区二区| 99久久精品费精品国产| 国内揄拍国内精品久久| 麻豆精品蜜桃视频网站| 久久黄色影视| 欧美精品成人| 国产高潮在线| 亚洲天堂1区| 国产99亚洲| 香蕉久久99| 亚洲国产成人精品女人| 国产韩日影视精品| 国产亚洲精品v| 模特精品在线| 日韩一二三区在线观看| 91精品国产自产在线丝袜啪| 婷婷综合成人| 中文在线日韩| 欧美黄色精品| 久久久五月天| 一区二区高清| 你懂的国产精品| 日韩精品诱惑一区?区三区| 激情国产在线| 国产国产精品| 日韩成人一级| 精品成av人一区二区三区 | 久久一区亚洲| 久久亚洲国产| 美日韩精品视频| 美女视频免费精品| 亚洲在线电影| 日韩高清一级| 国产精品一区二区三区美女| 高清一区二区三区| 欧美成人国产| 国产精品夜夜夜| 久久精品导航| 欧美日韩a区| 91精品国产调教在线观看| 日本电影久久久| 久久一区二区三区电影| 国产精品videossex| 成人av动漫在线观看| 日韩区欧美区| 国产精品99一区二区| 国产精品嫩草影院在线看| 欧美日韩国产综合网| 狠狠久久伊人| 国产欧美二区| 亚洲色图国产| 国产国产精品| 国产成人精品亚洲日本在线观看| 三级久久三级久久久| 亚洲调教视频在线观看| 黄毛片在线观看| 国内精品美女在线观看| 日韩精品欧美大片| 蜜臀精品一区二区三区在线观看| 国产精品永久| 国产欧美一区二区三区米奇| 亚洲性视频在线| 亚洲欧美日本日韩| 久久久久久色| 鲁大师成人一区二区三区| 国产高清不卡| 国产999精品在线观看 | 欧美国产不卡| 久久99久久久精品欧美| 欧美交a欧美精品喷水| 日本欧美在线| 亚洲精品激情| 日韩精品一二区| 欧美不卡高清| 亚洲在线观看| 亚洲午夜国产成人| 日韩午夜视频在线| 麻豆精品在线播放| 水蜜桃精品av一区二区| 久久精品免费一区二区三区| 激情欧美一区| 亚洲精品三级| 国产精品综合色区在线观看| 精品久久一区| 欧美成人亚洲| 日韩中文字幕视频网| 欧美91在线| 国产精品7m凸凹视频分类| 日韩成人高清| 美女国产精品| 国产一区福利| 妖精视频成人观看www| 91亚洲无吗| a天堂资源在线| 模特精品在线| 国产suv精品一区| 蜜臀久久久99精品久久久久久| 亚洲精品一二三**| 精品国产乱码久久久| 婷婷亚洲综合| 老牛国内精品亚洲成av人片| 99精品美女| 麻豆一区二区在线| 成人国产精选| 亚洲精品乱码久久久久久蜜桃麻豆| 久久av综合| 中文字幕成人| 亚洲网站视频| 国产图片一区| 日韩视频免费| 高清久久精品| 国产毛片一区二区三区| 一区二区三区视频免费观看| 三级欧美在线一区| 四虎国产精品免费观看| 欧美一区自拍| 亚洲精品美女| 99国产精品| 国产精品大片| 亚洲美女久久| 日韩午夜免费| 91亚洲人成网污www| 亚洲三区欧美一区国产二区| 在线 亚洲欧美在线综合一区| 国产精品不卡| 高清日韩中文字幕| 久久99国产精品视频| 91av一区| 国产色噜噜噜91在线精品| 亚洲综合不卡| 久久福利影视| 快she精品国产999| 宅男噜噜噜66国产日韩在线观看| 精品免费视频| 欧美国产专区| 精品在线网站观看| 91视频一区| 国产一区调教| 国产suv精品一区| 国产精品久一| 国产乱码精品一区二区亚洲| 日韩国产成人精品| 日韩精品亚洲aⅴ在线影院| 久久国产麻豆精品| 精品视频久久| аⅴ资源天堂资源库在线| 久久精品国产网站| 国产精品igao视频网网址不卡日韩| 鲁大师成人一区二区三区| 亚洲精品韩国| 老色鬼久久亚洲一区二区| а√天堂中文在线资源8| 天堂av在线| 国产乱码精品一区二区三区四区 | 男人的天堂亚洲一区| 麻豆极品一区二区三区| 国产一区丝袜| 日韩一区二区三区免费播放| 日韩精品看片| 免费观看久久久4p| 日韩av在线播放中文字幕| 亚洲精品婷婷| 夜久久久久久| 日韩精品水蜜桃| 欧美黄页在线免费观看| 国产一区二区精品| 伊人久久av| 国产精品亚洲四区在线观看 | 国产亚洲观看| 天海翼精品一区二区三区| 91精品亚洲| 福利在线一区| 亚洲精品激情| 亚洲综合丁香| 女同性一区二区三区人了人一| 久久99久久久精品欧美| 免费成人性网站| 韩国久久久久久| 福利一区二区| 国产精品视频一区二区三区| 亚洲欧美高清| 丝袜美腿亚洲色图| 久久av在线| 久久婷婷av| 久久电影一区| 欧美精品影院|