Springcloud-Alibaba 〖十二〗Springcloud Stream 整合Rockermq
-
-
- PS: github仓库[仓库地址](https://github.com/ktoking/springcloud-alibaba)项目都放到里面了
- 一. 消息总线先放放,感觉现在用不到
- 二. Springcloud Stream
- 没Rocketmq基础的同学来这: [来看这里!!!](https://blog.csdn.net/kingtok/article/details/104212625)之前早已准备好的博客~~
- 三. 新建module cloud-stream-rocketmq-provider8801 消息提供者
- 四. 新建模块cloud-stream-rabbitmq-consumer8802为消费者
- Springcloud Stream篇完,本篇使用的是Rocketmq,简化了MQ底层的操作,配置了一套简洁版的消息服务~
- 转载请标注~
-
PS: github仓库仓库地址项目都放到里面了
强烈建议先去看我的Rocketmq: Rocketmq集群搭建
一. 消息总线先放放,感觉现在用不到
给大家看看原理
Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,
它整合了Java的事件处理机制和消息中间件的功能。Spring Clud Bus目前支持RabbitMQ和Kafka。
什么是总线?
在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便的广播一些需要让其他连接在该主题上的实例都知道的消息。
基本原理
ConfigClient 实例都监听MQ中同一个topic(默认是springcloubus),当一个服务刷新数据的时候,它会把这个信息放入到Topic中,这样其他监听统一topic的服务就能得到通知,然后去更新自身的配置。
二. Springcloud Stream
这里头比较铁啊,因为用的是springcloud-alibaba,所以自然肯定要用巴巴的rocketmq啊,而且之前还学过,配过集群环境与控制台,那我们就尝试一下Rocketmq嘻嘻~
没Rocketmq基础的同学来这: 来看这里!!!之前早已准备好的博客~~
stream遵循发布订阅模式
三. 新建module cloud-stream-rocketmq-provider8801 消息提供者
3.1 项目结构
3.2 pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>cloud2020</artifactId>
<groupId>com.aiguigu.springcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-stream-rocketmq-provider8801</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
</dependency>
<!--stream-rocketmq-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rocketmq</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<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.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupI