我的编程空间,编程开发者的网络收藏夹
学习永远不晚

消息驱动Spring Cloud Stream怎么配置

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

消息驱动Spring Cloud Stream怎么配置

本篇内容主要讲解“消息驱动Spring Cloud Stream怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“消息驱动Spring Cloud Stream怎么配置”吧!

在使用spring cloud云架构的时候,我们不得不使用Spring cloud Stream,因为消息中间件的使用在项目中无处不在,我们公司后面做了娱乐方面的APP,在使用spring cloud做架构的时候,其中消息的异步通知,业务的异步处理都需要使用消息中间件机制。spring cloud的官方给出的集成建议(使用rabbit mq和kafka),我看了一下源码和配置,只要把rabbit mq集成,kafka只是换了一个pom配置jar包而已,闲话少说,我们就直接进入配置实施:

简介:

Spring cloud Stream 数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。

使用工具:

rabbit,具体的下载和安装细节我这里不做太多讲解,网上的实例太多了

创建commonservice-mq-producer消息的发送者项目,在pom里面配置stream-rabbit的依赖

<span style="font-size: 16px;"><!-- 引入MQ消息驱动的微服务包,引入stream只需要进行配置化即可,是对rabbit、kafka很好的封装 -->  <dependency>      <groupId>org.springframework.cloud</groupId>      <artifactId>spring-cloud-starter-stream-rabbit</artifactId>  </dependency></span>

在yml文件里面配置rabbit mq

<span style="font-size: 16px;">server:    port: 5666  spring:    application:      name: commonservice-mq-producer    profiles:       active: dev    cloud:      config:        discovery:           enabled: true          service-id: commonservice-config-server    <span style="color: #ff0000;"># rabbitmq和kafka都有相关配置的默认值,如果修改,可以再次进行配置      stream:        bindings:          mqScoreOutput:             destination: honghu_exchange            contentType: application/json                rabbitmq:       host: localhost       port: 5672       username: honghu       password: honghu</span>  eureka:     client:      service-url:        defaultZone: http://honghu:123456@localhost:8761/eureka    instance:      prefer-ip-address: true</span>

定义接口ProducerService

<span style="font-size: 16px;">package com.honghu.cloud.producer;    import org.springframework.cloud.stream.annotation.Output;  import org.springframework.messaging.SubscribableChannel;    public interface ProducerService {            String SCORE_OUPUT = "mqScoreOutput";            @Output(ProducerService.SCORE_OUPUT)      SubscribableChannel sendMessage();  }</span>

定义绑定

<span style="font-size: 16px;">package com.honghu.cloud.producer;    import org.springframework.cloud.stream.annotation.EnableBinding;    @EnableBinding(ProducerService.class)  public class SendServerConfig {    }</span>

定义发送消息业务ProducerController

<span style="font-size: 16px;">package com.honghu.cloud.controller;      import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.integration.support.MessageBuilder;  import org.springframework.messaging.Message;  import org.springframework.web.bind.annotation.PathVariable;  import org.springframework.web.bind.annotation.RequestBody;  import org.springframework.web.bind.annotation.RequestMapping;  import org.springframework.web.bind.annotation.RequestMethod;  import org.springframework.web.bind.annotation.RestController;    import com.honghu.cloud.common.code.ResponseCode;  import com.honghu.cloud.common.code.ResponseVO;  import com.honghu.cloud.entity.User;  import com.honghu.cloud.producer.ProducerService;    import net.sf.json.JSONObject;    @RestController  @RequestMapping(value = "producer")  public class ProducerController {            @Autowired      private ProducerService producerService;                        @RequestMapping(value = "/sendObj", method = RequestMethod.GET)      public ResponseVO sendObj() {          User user = new User(1, "hello User");          <span style="color: #ff0000;">Message<User> msg = MessageBuilder.withPayload(user).build();</span>          boolean result = producerService.sendMessage().send(msg);          if(result){              return ResponseCode.buildEnumResponseVO(ResponseCode.RESPONSE_CODE_SUCCESS, false);          }          return ResponseCode.buildEnumResponseVO(ResponseCode.RESPONSE_CODE_FAILURE, false);      }                        @RequestMapping(value = "/send/{name}", method = RequestMethod.GET)      public ResponseVO send(@PathVariable(value = "name", required = true) String name) {          Message msg = MessageBuilder.withPayload(name.getBytes()).build();          boolean result = producerService.sendMessage().send(msg);          if(result){              return ResponseCode.buildEnumResponseVO(ResponseCode.RESPONSE_CODE_SUCCESS, false);          }          return ResponseCode.buildEnumResponseVO(ResponseCode.RESPONSE_CODE_FAILURE, false);      }                  @RequestMapping(value = "/sendJsonObj", method = RequestMethod.POST)      public ResponseVO sendJsonObj(@RequestBody JSONObject jsonObj) {          Message<JSONObject> msg = MessageBuilder.withPayload(jsonObj).build();          boolean result = producerService.sendMessage().send(msg);          if(result){              return ResponseCode.buildEnumResponseVO(ResponseCode.RESPONSE_CODE_SUCCESS, false);          }          return ResponseCode.buildEnumResponseVO(ResponseCode.RESPONSE_CODE_FAILURE, false);      }  }  </span>

创建commonservice-mq-consumer1消息的消费者项目,在pom里面配置stream-rabbit的依赖

<!-- 引入MQ消息驱动的微服务包,引入stream只需要进行配置化即可,是对rabbit、kafka很好的封装 -->  <dependency>      <groupId>org.springframework.cloud</groupId>      <artifactId>spring-cloud-starter-stream-rabbit</artifactId>  </dependency>

 9. 在yml文件中配置:

server:    port: 5111  spring:    application:      name: commonservice-mq-consumer1    profiles:       active: dev    cloud:      config:        discovery:           enabled: true          service-id: commonservice-config-server                <span style="color: #ff0000;">stream:        bindings:          mqScoreInput:            group: honghu_queue            destination: honghu_exchange            contentType: application/json                rabbitmq:       host: localhost       port: 5672       username: honghu       password: honghu</span>  eureka:     client:      service-url:        defaultZone: http://honghu:123456@localhost:8761/eureka    instance:      prefer-ip-address: true

定义接口ConsumerService

package com.honghu.cloud.consumer;    import org.springframework.cloud.stream.annotation.Input;  import org.springframework.messaging.SubscribableChannel;    public interface ConsumerService {            <span style="color: #ff0000;">String SCORE_INPUT = "mqScoreInput";        @Input(ConsumerService.SCORE_INPUT)      SubscribableChannel sendMessage();</span>    }

定义启动类和消息消费

package com.honghu.cloud;    import org.springframework.boot.SpringApplication;  import org.springframework.boot.autoconfigure.SpringBootApplication;  import org.springframework.cloud.netflix.eureka.EnableEurekaClient;  import org.springframework.cloud.stream.annotation.EnableBinding;  import org.springframework.cloud.stream.annotation.StreamListener;    import com.honghu.cloud.consumer.ConsumerService;  import com.honghu.cloud.entity.User;    @EnableEurekaClient  @SpringBootApplication  @EnableBinding(ConsumerService.class) //可以绑定多个接口  public class ConsumerApplication {            public static void main(String[] args) {          SpringApplication.run(ConsumerApplication.class, args);      }            <span style="color: #ff0000;">@StreamListener(ConsumerService.SCORE_INPUT)      public void onMessage(Object obj) {          System.out.println("消费者1,接收到的消息:" + obj);      }</span>    }

分别启动commonservice-mq-producer、commonservice-mq-consumer1

通过postman来验证消息的发送和接收

 消息驱动Spring Cloud Stream怎么配置

消息驱动Spring Cloud Stream怎么配置

消息驱动Spring Cloud Stream怎么配置

消息驱动Spring Cloud Stream怎么配置

消息驱动Spring Cloud Stream怎么配置

消息驱动Spring Cloud Stream怎么配置

到此,相信大家对“消息驱动Spring Cloud Stream怎么配置”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

消息驱动Spring Cloud Stream怎么配置

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

消息驱动Spring Cloud Stream怎么配置

本篇内容主要讲解“消息驱动Spring Cloud Stream怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“消息驱动Spring Cloud Stream怎么配置”吧!在使用sprin
2023-06-05

Spring Cloud Stream:消息驱动架构,让你的应用实时响应

Spring Cloud Stream是一个强大的消息驱动框架,可帮助您创建高度可扩展、松散耦合和弹性的微服务应用程序。它提供了一个抽象层,简化了分布式消息传递,让您的应用程序能够实时响应事件。
Spring Cloud Stream:消息驱动架构,让你的应用实时响应
2024-03-07

Spring Cloud中怎么配置Feign

这期内容当中小编将会给大家带来有关Spring Cloud中怎么配置Feign,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Ribbon配置ribbon的配置其实非常简单,直接在application.p
2023-06-19

基于kafka怎么实现Spring Cloud Bus消息总线

这篇文章主要介绍“基于kafka怎么实现Spring Cloud Bus消息总线”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于kafka怎么实现Spring Cloud Bus消息总线”文章能帮
2023-06-30

Spring Cloud Config客户端怎么配置

本篇内容主要讲解“Spring Cloud Config客户端怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Cloud Config客户端怎么配置”吧!服务化配置中心在前面
2023-06-19

navicat怎么配置驱动

在 navicat 中配置数据库驱动程序的步骤包括:打开 navicat 并新建连接。输入数据库类型、服务器信息和凭据。在高级选项中选择与数据库类型匹配的驱动程序。指定驱动程序位置(如有必要)。输入驱动程序配置(如有必要)。测试连接并保存配
navicat怎么配置驱动
2024-04-24

java Spring Cloud Config环境库怎么配置

这篇文章主要讲解了“java Spring Cloud Config环境库怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java Spring Cloud Config环境库怎么配置
2023-06-04

dbeaver怎么配置oracle驱动

要配置Oracle驱动程序以在DBeaver中连接Oracle数据库,请按照以下步骤操作:首先,下载Oracle官方提供的JDBC驱动程序(ojdbc.jar文件)并将其保存在本地计算机上。打开DBeaver应用程序并点击菜单栏中的“数据
dbeaver怎么配置oracle驱动
2024-04-09

Spring Cloud中Feign怎么自定义配置与使用

这篇文章主要介绍了Spring Cloud中Feign怎么自定义配置与使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring Cloud中Feign怎么自定义配置与使用文章都会有所收获,下面我们一起来看
2023-07-02

Spring Cloud中的API网关服务Zuul怎么配置

这篇文章主要讲解了“Spring Cloud中的API网关服务Zuul怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud中的API网关服务Zuul怎么配置”吧!构
2023-06-19

Spring Cloud怎么实现高可用的配置中心

这篇文章主要为大家展示了“Spring Cloud怎么实现高可用的配置中心”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring Cloud怎么实现高可用的配置中心”这篇文章吧。配置中心如何
2023-06-19

redis消息监听事件怎么配置

要配置Redis消息监听事件,您可以按照以下步骤进行操作:1. 创建一个Redis连接实例,代码示例如下:```javaJedis jedis = new Jedis("localhost", 6379);```2. 创建一个消息监听器,代
2023-09-01

spring怎么实现自动配置

Spring通过@EnableAutoConfiguration注解实现自动配置。@EnableAutoConfiguration注解是一个开关,用于启用Spring Boot的自动配置机制。它会根据classpath下的jar包、类路径上
2023-08-23

java怎么配置中心和消息总线

这篇文章主要介绍“java怎么配置中心和消息总线”,在日常操作中,相信很多人在java怎么配置中心和消息总线问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么配置中心和消息总线”的疑惑有所帮助!接下来
2023-06-05

驱动人生怎么检测电脑配置

本篇内容主要讲解“驱动人生怎么检测电脑配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“驱动人生怎么检测电脑配置”吧!驱动人生检测电脑配置的方法:1、安装好驱动人生打开之后,在顶部选择硬件信息功
2023-07-01

spring cloud怎么使用信用盘程序搭建环境配置

这篇文章主要介绍“spring cloud怎么使用信用盘程序搭建环境配置”,在日常操作中,相信很多人在spring cloud怎么使用信用盘程序搭建环境配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”spr
2023-06-02

Spring cloud网关gateway进行websocket路由转发规则怎么配置

这篇“Spring cloud网关gateway进行websocket路由转发规则怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起
2023-07-05

windows驱动人生directx配置异常怎么解决

今天小编给大家分享一下windows驱动人生directx配置异常怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。驱动
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录