pom添加依赖

        <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>

application.yml配置

# Spring 相关
spring:
# rabbitmq
rabbitmq:
host: 192.168.3.107
port: 5672
username: admin
password: 123456

定义输入通道

package com.zh.common.api.rabbitmq;

import org.springframework.cloud.stream.annotation.Input;
import org.springframework.messaging.SubscribableChannel; /**
* @Auther: suruozhong
* @Date: 2019/9/17 15:45
* @Description:
*/
public interface OrderChannel {
//定义通道的名称
String saveOrder = "saveOrder";
//定义为输入通道
@Input(saveOrder)
SubscribableChannel saveOrder(); }

定义输出通道

package com.zh.common.api.rabbitmq;

import org.springframework.cloud.stream.annotation.Output;
import org.springframework.messaging.MessageChannel; /**
* @Auther: suruozhong
* @Date: 2019/9/17 15:51
* @Description:
*/
public interface OrderOutputChannel { //定义通道的名称
String saveOrder = "saveOrder";
//定义为输入通道
@Output(saveOrder)
MessageChannel saveOrder(); }

生产端

在对应的模块绑定输入通道

/**
* @Auther: suruozhong
* @Date: 2019/7/24 15:51
* @Description:
*/
@SpringCloudApplication
@EnableAutoConfiguration(exclude = {
SecurityAutoConfiguration.class
})
//通过绑定器对OderChannel通道进行绑定
@EnableBinding(OrderOutputChannel.class)
public class HousekeeperFrontApplication { public static void main(String[] args) {
SpringApplication.run(HousekeeperFrontApplication.class,args);
}
}

发送消息

@RestController
@RequestMapping("/sysBanner")
public class SysBannerController { @Resource
private OrderOutputChannel orderOutputChannel; @RequestMapping(value = "/list")
public void listData(String position) {
orderOutputChannel.saveOrder().send(MessageBuilder.withPayload("fff").build());
} }

消费端

在对应的模块绑定输出通道

/**
* @author
* @date 2018年06月21日
* 用户统一管理系统
*/
@SpringCloudApplication
@EnableScheduling //开启定时任务
//通过绑定器对OderChannel通道进行绑定
@EnableBinding(OrderChannel.class)
public class HousekeeperAdminApplication {
public static void main(String[] args) {
SpringApplication.run(HousekeeperAdminApplication.class, args);
} }

绑定监听消息

@Service("sysBannerService")
@Transactional
public class SysBannerServiceImpl extends ServiceImpl<SysBannerMapper, SysBanner> implements SysBannerService { //对saveOrder的消息监听处理
@StreamListener(OrderChannel.saveOrder)
private void receiver(Object message){
System.out.println(message.toString());
}

分组加持久化配置

在生产端的application.yml

spring:
cloud:
# spring cloud strem
stream:
bindings:
saveOrder: 输出通道名称
group: saveOrder 分组名称

spring cloud stream集成rabbitmq的更多相关文章

  1. Spring Cloud Stream整合RabbitMQ

    简介 Spring Cloud Stream是一个构建消息驱动微服务的框架,应用程序通过input(相当于consumer).output(相当于producer)来与Spring Cloud Str ...

  2. Spring Cloud Stream 整合 RabbitMQ

    简介 Spring Cloud Stream是一个构建消息驱动微服务的框架,应用程序通过input(相当于consumer).output(相当于producer)来与Spring Cloud Str ...

  3. Spring Cloud Stream 使用延迟消息实现定时任务(RabbitMQ)

    应用场景 通常在应用开发中我们会碰到定时任务的需求,比如未付款订单,超过一定时间后,系统自动取消订单并释放占有物品. 许多同学的第一反应就是通过spring的schedule定时任务轮询数据库来实现, ...

  4. 整合Spring Cloud Stream Binder与RabbitMQ进行消息发送与接收

    我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 前言 Spring Cloud Stream专门用于事件驱动的微服务系统,使用消息中间件来收发信息.使用Spring ...

  5. 【进阶技术】一篇文章搞掂:Spring Cloud Stream

    本文总结自官方文档http://cloud.spring.io/spring-cloud-static/spring-cloud-stream/2.1.0.RC3/single/spring-clou ...

  6. Spring Cloud Stream如何处理消息重复消费?

    最近收到好几个类似的问题:使用Spring Cloud Stream操作RabbitMQ或Kafka的时候,出现消息重复消费的问题.通过沟通与排查下来主要还是用户对消费组的认识不够.其实,在之前的博文 ...

  7. Kafka及Spring Cloud Stream

    安装 下载kafka http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz kafka最为重要三个配置依次为:broke ...

  8. 这事没完,继续聊spring cloud stream和kafka的这些小事

    上一篇文章讲了如何用spring cloud stream集成kafka,并且跑起来一个demo,如果这一次宣传spring cloud stream的文章,其实到这里就可以啦.但实际上,工程永远不是 ...

  9. 整合Spring Cloud Stream Binder与GCP Pubsub进行消息发送与接收

    我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 前言 之前的文章<整合Spring Cloud Stream Binder与RabbitMQ进行消息发送与接收& ...

随机推荐

  1. 10: Django + Uwsgi + Nginx 的生产环境部署

    1.1 一些重要概念 1.Web协议介绍 Web协议出现顺序: CGI -> FCGI -> WSGI -> uwsgi 1. CGI:  最早的协议 2. FCGI:  比CGI快 ...

  2. 问题 1436: 地宫取宝 (dp)

    题目传送门 时间限制: 1Sec 内存限制: 128MB 提交: 423 解决: 94 题目描述 X  国王有一个地宫宝库.是  n  x  m  个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标 ...

  3. python学习第三天格式化输出%s %d

    编程语言为什么要格式化输出吗,一般print()就够了,有些复杂的格式输出比较麻烦,用格式化输出更加高效, info=""" ---------------------- ...

  4. JavaScript 各种遍历方式详解及总结

    JavaScript 各种遍历方式详解 在$.each中想要终止循环,但是它没有continue或者break这样的终止方式,所以尝试使用return来进行终止,但是发现并没有跳出循环.为了搞清楚js ...

  5. Java 8实战之读书笔记五:超越Java 8

    四.超越Java 8 第13章 函数式的思考 下面是这一章中你应该掌握的关键概念.      从长远看,减少共享的可变数据结构能帮助你降低维护和调试程序的代价.      函数式编程支持无副作用的 ...

  6. ORACLE数据字典DBA视图

    select  *  from  DBA_ALL_TABLES   --显示数据库中所有表的描述 select  *  from  DBA_CATALOG  --列出所有数据库标,视图,同义词和序列 ...

  7. vue中监听返回键

    问题:在项目中,我们常常有需求,当用户在填写表单时,点击返回的时候,我们希望加一个弹窗,确认离开吗,确认将保存为草稿 解决方案:利用 H5的 pushstate(个人理解为增加页面栈)特性与onpop ...

  8. Linux学习笔记1-在CentOS 7中安装配置JDK8

    说明: 参考博客:http://blog.csdn.net/czmchen/article/details/41047187系统环境:CentOS 7安装方式:rpm安装JDK地址:http://ww ...

  9. 靶场练习--sqli(1&2)

    前言 懒猪赵肥肥耍了3天3夜,每天除了练英语口语,啥子都没干.今天开始发愤图强,嘻嘻~ 计划内容有:靶场.视频.python.PHP.java.计算机英语. 首先,每天必搞靶场必看视频必学java和英 ...

  10. 05.Linux-CentOS系统普通用户SSH远程问题

    问题:appuser用户SSH远程连接Linux服务器出现的问题: Connecting?to?localhost:22...Connection?established.To?escape?to?l ...