Spring Cloud Stream 整合RabbitMQ

本文档详细解读了一线大厂Java面试题,涵盖JVM、Java集合、并发等核心知识点,还包括Redis、Spring原理、RabbitMQ等技术的总结学习笔记、视频教程和实战项目源码。附带数据面试题和数据库性能优化实践。
摘要由CSDN通过智能技术生成

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
}

// /转发/

// @SendTo(/其他通道/)

// @StreamListener(/接受通道/)

// public String sendTo(Object o) {

// return “sendTo”;

// }

}

消息发送端

application.properties配置

#MQ

spring.rabbitmq.host=localhost

spring.rabbitmq.port=5672

spring.rabbitmq.username=admin

spring.rabbitmq.password=admin

#定义通道mqScoreOutput

spring.cloud.stream.bindings.mqScoreOutput.destination=exchangeName

#消息转换

spring.cloud.stream.bindings.mqScoreOutput.contentType=application/json

定义接口

/**

  • 定义接口

  • @author 向振华

  • @date 2018/11/14 13:51

*/

public interface SendChannel {

String SCORE_OUTPUT = “mqScoreOutput”;

@Output(SendChannel.SCORE_OUTPUT)

MessageChannel scoreOutput();

}

进行绑定

/**

  • 进行绑定

  • @author 向振华

  • @date 2018/11/14 13:52

*/

@EnableBinding(SendChannel.class)

public class SendServerConfig {

}

消息发送者

/**

  • 注入可以发送消息的bean

  • @author 向振华

  • @date 2018/11/14 13:52

*/

@Service

public class SendServer {

@Autowired

private SendChannel sendChannel;

@Autowired

@Qualifier(“mqScoreOutput”)

private MessageChannel messageChannel;

public boolean sendMsg(String msg) {

Message message = MessageBuilder.withPayload(msg).build();

return sendChannel.scoreOutput().send(message);

}

public boolean sendMsg2(String msg) {

Message message = MessageBuilder.withPayload(msg).build();

return messageChannel.send(message);

}

public boolean sendList(String msg){

List m = Lists.newArrayList(msg+1, msg+2, msg+3);

Message<List> message = MessageBuilder.withPayload(m).build();

return sendChannel.scoreOutput().send(message);

}

}

测试

/**

  • @author 向振华

  • @date 2018/11/14 13:57

*/

@RequestMapping(“/test”)

@RestController

public class TestController {

@Autowired

private SendServer sendServer;

@GetMapping(“/sendMsg”)

@ResponseBody

public Boolean sendMsg(String msg){

return sendServer.sendMsg(msg);

}

@GetMapping(“/sendList”)

@ResponseBody

public Boolean sendList(String msg){

return sendServer.sendList(msg);

}

}

项目地址:https://github.com/xxiangzh

需要先在本地安装rabbitmq

1:安装RabbitMQ需要先安装Erlang语言开发包,直接下载地址:http://erlang.org/download/otp_win64_18.3.exe

2:安装RabbitMQ Server 直接下载地址:http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9.exe

总结

阿里伤透我心,疯狂复习刷题,终于喜提offer 哈哈~好啦,不闲扯了

image

1、JAVA面试核心知识整理(PDF):包含JVMJAVA集合JAVA多线程并发,JAVA基础,Spring原理微服务,Netty与RPC,网络,日志,ZookeeperKafkaRabbitMQ,Hbase,MongoDB,Cassandra,设计模式负载均衡数据库一致性哈希JAVA算法数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算共30个章节。

image

2、Redis学习笔记及学习思维脑图

image

3、数据面试必备20题+数据库性能优化的21个最佳实践

image
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
30个章节。

[外链图片转存中…(img-255XySCa-1714659699107)]

2、Redis学习笔记及学习思维脑图

[外链图片转存中…(img-BDAHN76j-1714659699107)]

3、数据面试必备20题+数据库性能优化的21个最佳实践

[外链图片转存中…(img-m1XMcJvX-1714659699107)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

  • 24
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Cloud Stream 是基于 Spring Boot 和 Spring Integration 的框架,用于构建消息驱动的微服务应用程序。它提供了一种简单的方式来在应用程序中使用消息中间件,比如 RabbitMQ 和 Kafka。 下面分别介绍 Spring Cloud Stream 如何整合 RabbitMQ 和 Kafka。 ## 整合 RabbitMQ 1. 添加依赖 在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream-binder-rabbit</artifactId> </dependency> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> </dependency> ``` 2. 创建消息生产者 创建一个消息生产者,可以使用 `@EnableBinding` 注解将其与 RabbitMQ 绑定: ```java @EnableBinding(MessageSource.class) public class RabbitMQProducer { @Autowired private MessageSource<String> messageSource; public void sendMessage(String message) { messageSource.output().send(MessageBuilder.withPayload(message).build()); } } ``` 3. 创建消息消费者 创建一个消息消费者,同样使用 `@EnableBinding` 注解将其与 RabbitMQ 绑定: ```java @EnableBinding(MessageSink.class) public class RabbitMQConsumer { @StreamListener(MessageSink.INPUT) public void receiveMessage(String message) { System.out.println("Received: " + message); } } ``` 4. 配置 RabbitMQ 在 `application.yml` 文件中配置 RabbitMQ: ```yaml spring: rabbitmq: host: localhost port: 5672 username: guest password: guest ``` ## 整合 Kafka 1. 添加依赖 在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream-binder-kafka</artifactId> </dependency> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> ``` 2. 创建消息生产者 创建一个消息生产者,可以使用 `@EnableBinding` 注解将其与 Kafka 绑定: ```java @EnableBinding(MessageSource.class) public class KafkaProducer { @Autowired private MessageSource<String> messageSource; public void sendMessage(String message) { messageSource.output().send(MessageBuilder.withPayload(message).build()); } } ``` 3. 创建消息消费者 创建一个消息消费者,同样使用 `@EnableBinding` 注解将其与 Kafka 绑定: ```java @EnableBinding(MessageSink.class) public class KafkaConsumer { @StreamListener(MessageSink.INPUT) public void receiveMessage(String message) { System.out.println("Received: " + message); } } ``` 4. 配置 Kafka 在 `application.yml` 文件中配置 Kafka: ```yaml spring: kafka: bootstrap-servers: localhost:9092 consumer: group-id: myGroup auto-offset-reset: earliest producer: retries: 0 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值