三、Springboot学习5-集成RabbitMQ-2018-11-14

版权声明:kanghu https://blog.csdn.net/weixin_40739280/article/details/84071047

1. 出现原因:生产者大量产生数据时,消费者无法快速消费,需要一个中间层,去缓冲这批数据

2. 消息顺序:消息生产者-->交换器-->队列-->消费者

3. 依赖:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

4.  依赖环境ERlang安装

  官网:http://www.erlang.org/downloads

  安装好之后配置环境变量

  cmd-->erl,出现版本代表成功安装

5. 下载rabbitMQ:http://www.rabbitmq.com/install-windows.html

6. 启动:

   6.1 set ERLANG_HOME=xxxx

   6.2 rabbitmq-server.bat(加入报错就删除C:\Users\kh\AppData\Roaming\RabbitMQ\db下所有文件重新启动)

   6.3 在sbin目录下, 执行rabbitmq-plugins.bat  enable rabbitmq_management,安装管理插件

7. rabbit基本操作参考:https://www.cnblogs.com/ericli-ericli/p/5902270.html

8. 对rabbitmq进行配置

   

spring.application.name=spirng-boot-rabbitmq
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=15672
spring.rabbitmq.username=kanghu
spring.rabbitmq.password=11111

9. 队列配置 

@Configuration
public class RabbitConfig {
    @Bean
    public Queue Queue() {
        return new Queue("hello");
    }

}

生产者:

@Repository
public class RabbitMQSend {
    @Autowired
    private AmqpTemplate rabbitTemplate;

    public void send() {
        String context = "hello " + new Date();
        System.out.println("Sender : " + context);
        this.rabbitTemplate.convertAndSend("hello", context);
    }

}

消费者:

@Component
@RabbitListener(queues = "hello")
public class RabbitMQReceiver {
    @RabbitHandler
    public void process(String hello) {
        System.out.println("Receiver  : " + hello);
    }

}

测试:

@RestController
public class RabbitMQController {

    @Autowired
    RabbitMQSend rabbitMQSend;

    @RequestMapping("/rabbit")
    public void testRabbit() {
        rabbitMQSend.send();
    }

}

10. 启动报错:

原因:配置端口为5672,不是15672,15672是管理端的端口!

11. 参考博客:https://www.cnblogs.com/hlhdidi/p/6535677.html

猜你喜欢

转载自blog.csdn.net/weixin_40739280/article/details/84071047
今日推荐