• spring cloud bus


    RabbitMQ

    在docker中运行rabbitmq

    docker run -d -p 5672:5672  -p 8080:15672 rabbitmq:3-management

    浏览器打开:http://10.202.203.29:8080/

    默认用户名/密码都是guest

    在Admin页面添加用户

    新添加的用户是没有权限的

    点击用户名进去,按提示添加权限

    这样就可以在程序中访问了。

    创建spring boot 项目,添加pom依赖

    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bus-amqp</artifactId>
            </dependency>
    View Code

    添加发送类Sender

    import org.springframework.amqp.core.AmqpTemplate;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import java.util.Date;
    @Component
    public class Sender {
        @Autowired
        private AmqpTemplate amqpTemplate;
    
        public void send(){
            String context="hello "+new Date();
            System.out.println("Sender: "+context);
            amqpTemplate.convertAndSend("hello",context);
        }
    }
    View Code

    添加接收类Receiver

    import org.springframework.amqp.rabbit.annotation.RabbitHandler;
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    import org.springframework.stereotype.Component;
    
    @Component
    
    public class Receiver {
        @RabbitListener(queues = "hello")
        @RabbitHandler
        public void process(String hello){
            System.out.println("Receiver: "+hello);
        }
    }
    View Code

    注意这里的@RabbitListener(queues = "hello")不要加在类上,而是加在方法上,官方的教程这里是错误的

    添加配置类RabbitConfig

    import org.springframework.amqp.core.Queue;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class RabbitConfig {
        @Bean
        public Queue helloQueue(){
            return new Queue("hello");
        }
    }
    View Code

    配置文件

    spring.application.name=rabbitmq-hello
    
    spring.rabbitmq.host=10.202.203.29
    spring.rabbitmq.port=5672
    spring.rabbitmq.username=springcloud
    spring.rabbitmq.password=123456
    View Code

    单元测试

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class RabbitmqHelloApplicationTests {
        @Autowired
        private Sender sender;
        @Test
        public void contextLoads() {
            sender.send();
        }
    }
    View Code

    启动应用,在RabbitMQ管理界面中查看连接

    运行单元测试,可以在控制台看到结果

    再查看管理页面

     开启应用的接受监控后,可以在rabbitmq管理界面直接发送消息,需要指定编码格式

    在控制台可以看到接收到了消息

  • 相关阅读:
    攻防世界 xff_referer
    攻防世界 simple——js
    攻防世界 你知道什么是cookie吗?
    攻防世界 你知道php备份文件吗?
    攻防世界 robots题
    bugku 管理员系统
    bugku 速度要快
    2016北京集训测试赛(七)Problem A: 自动机
    BZOJ 4543 2016北京集训测试赛(二)Problem B: thr
    BZOJ 4631 踩气球
  • 原文地址:https://www.cnblogs.com/uptothesky/p/8287541.html
Copyright © 2020-2023  润新知