4: Spring Boot 使用RabbitMQ

2018-01-24  本文已影响0人  Peacenloves

1.Windows RabbitMQ安装

    <!--1.查看已安装插件-->
    rabbitmq-plugins.bat list
    <!--2.开启管理界面-->
    rabbitmq-plugins.bat enable rabbitmq_management
    <!--1.创建用户->
    rabbitmqctl.bat  add_user  tiger  123456
    <!--2.赋予角色-->
    rabbitmqctl.bat  set_user_tags  tiger  administrator
    <!--3.设置权限-->
    rabbitmqctl.bat  set_permissions  -p / .* .* .*

2.配置工程

1.pom配置, 在Spring Boot工程中引入amqp依赖, RabbitMQ为默认实现

    <!--Spring Boot AMQP协议快速启动 包括Boot Starter, Massaging, RabbitMQ-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-amqp</artifactId>
    </dependency>

2.配置生产者

    server:
      port: 8081  #应用端口号
    
    spring:
      application:
        name: amqp-provider #应用名称
      rabbitmq:
        host: localhost #RabbitMQ 地址
        port: 5672  #监听端口号
        username: tiger #用户名
        password: 123456  #密码
    /**
     * 发送消息到RabbitMQ
     * 维护Queue名称
     */
    @Component
    public class AmqpSenderService {
    
        private static final Logger _LOGGER = LoggerFactory.getLogger(AmqpSenderService.class);
    
        @Autowired AmqpTemplate amqpTemplate;
    
        /**
         * 发送消息
         * @param message
         */
        public void send (String message) {
            _LOGGER.info("Send message: {}", message);
            amqpTemplate.convertAndSend("ko-queue", message);
        }
    }
    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class AmqpTests {
    
        @Autowired
        AmqpSenderService amqpSenderService;
    
        @Test
        public void sendTest () {
            for (int i = 1; i < 100; i++) {
                amqpSenderService.send("message" + i);
            }
        }
    
    }

3.配置消费者

    server:
      port: 8082  #应用端口号
    
    spring:
      application:
        name: amqp-provider #应用名称
      rabbitmq:
        host: localhost #RabbitMQ 地址
        port: 5672  #监听端口号
        username: tiger #用户名
        password: 123456  #密码
    @Component
    //监听的消息队列
    @RabbitListener(queues = "ko-queue")
    public class RabbitReceiver {
    
        private static final Logger _Logger = LoggerFactory.getLogger(RabbitReceiver.class);
    
        @RabbitHandler
        public void process (String message) {
            _Logger.info("Receiver message: {}", message);
        }
    }

3.启动

4.结束

5.实例

Github: Spring Boot 使用RabbitMQ demo

上一篇 下一篇

猜你喜欢

热点阅读