SpringCloud Bus(RabbitMQ)

     Spring Cloud Bus可以将分布式系统的节点与轻量级消息代理链接,然后可以实现广播状态更改(例如配置更改)或广播其他管理指令。
Spring Cloud Bus就像一个分布式执行器,用于扩展的Spring Boot应用程序,但也可以用作应用程序之间的通信通道。那么这里就涉及到了
消息代理,目前流行的消息代理中间件有不少,Spring Cloud Bus支持RabbitMQ和Kafka,本文我们主要来看看RabbitMQ的基本使用。

首先你需要安装RabbitMQ,打开浏览器登录 http://localhost:15672,打开web管理界面,默认账号和密码都是guest。新建自己的用户名,并给予权限,然后创建队列的名称,下面配置文件有注释。

Maven

      
        
            org.springframework.boot
            spring-boot-starter-amqp
        

配置文件

rabbitmq 集成  gaomin要在http://localhost:15672/#/users 添加
# 同时代码里面用的helloQueue 队列名称也要在 http://localhost:15672/#/queues 添加
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=timor
spring.rabbitmq.password=123456
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.virtual-host=/

提供者

/**
 * 需要到后台添加队列Name helloQueue
 * Created by timor on 2017/12/4.
 */
@Component
public class HelloSender {
    @Autowired
    private AmqpTemplate rabbitTemplate;

    public void send() {
        String sendMsg = "hello1 " + new Date();
        System.out.println("Sender1 : " + sendMsg);
        this.rabbitTemplate.convertAndSend("helloQueue", sendMsg);
    }
}

消费者

/**
 * Created by timor on 2017/12/28.
 */
@Component
@RabbitListener(queues = "helloQueue")
public class HelloReceiver {
    @RabbitHandler
    public void process(String hello) {
        System.out.println("Receiver1  : " + hello);
    }
}

测试一波

@RestController
@RequestMapping(value = "rabbit")
public class RabbitTest {
    @Autowired
    private HelloSender helloSender;

    @RequestMapping("/test")
    public String test() {
        helloSender.send();
        return "发送成功";
    }
}

你会发现当你请求这个接口时会发送一条消息,HelloReceiver会接受到send的消息

你可能感兴趣的:(SpringBoot微服务架构,java-rabbitmq,rabbitmq,spring,cloud)