zoukankan      html  css  js  c++  java
  • Amqp与RabbitMQ使用

    pom:

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

    配置:

    spring.rabbitmq.host=127.0.0.1
    spring.rabbitmq.username=guest
    spring.rabbitmq.password=guest

    Main类,启动rabbitmq注释。

    @EnableRabbit
    public class DemoApplication {}

    监控类Service,必须@EnableRabbit与@RabbitListener一起使用。

    才可以有其他写法,也可以指定监控配置等,官网有写法说明:https://docs.spring.io/spring-amqp/docs/2.0.2.RELEASE/api/org/springframework/amqp/rabbit/annotation/EnableRabbit.html

    @Service
    public class BookService {
    
        @RabbitListener(queues = "cw.news")
        public void receive(Book book){
            System.out.println("收到消息:"+book);
        }
    }

    配置类,解决JSON转换乱码问题

    @Configuration
    public class AmqpConverter {
        @Bean
        public MessageConverter messageConverter(){
            return new Jackson2JsonMessageConverter();
        }
    }

    往队列发送与接收消息:

        @Autowired
          RabbitTemplate rabbitTemplate;
    public void contextLoads() {
            Map<String,Object> map = new HashMap<>();
            map.put("msg","firstnews");
            map.put("data", Arrays.asList("hello",123,true));
            rabbitTemplate.convertAndSend("exchange-direct","cw.news",map);
        }//发送给交换器XXX,路由key为cw.news,数据为map。
    
        public void receive(){
            Object obj = rabbitTemplate.receiveAndConvert("cw.news");
            System.out.println(obj.getClass());
            System.out.println(obj);
        }

    代码操作交换机(exchange)、队列(queues)、绑定(binding)等:

        @Autowired
        AmqpAdmin amqpAdmin;
    
        public void createExchange(){
            amqpAdmin.declareExchange(new DirectExchange("amqp-exchange"));
        }

    值得一提的是,官网有很完整的样例,还是多语言的。

    关于Erlang与RabbitMQ的安装:

    一、ErlangRabbitMQ

    1. RabbitMQ的官方安装目录是有空格的,需要另起炉灶,不能有带空格的目录。
    2. Erlang的命令得在管理员权限的CMD下才有效。
    3. RabbitMQ的版本要跟Erlang适配,官网有列表。
    4. 安装RabbitMQ的时候,计算机名不能是中文,如果是,改了再重装(删除后记得把C盘下的用户资料也删掉)。
    5. RabbitMQ装完后进入sbin目录,输入Rabbit MQ's Management Plugin,接着输入Net stop rabbitmq && net start rabbitmq重启RabbitMQ目录,登录http://localhost:15672,用户名:guest,密码:guest

    这时候guest都是默认的,可以通过cmd命令进行更改(或者直接在页面新增用户)。

  • 相关阅读:
    拯救公主
    爱情之路
    无聊的会议
    对拍检验程序
    TCP三次握手
    OA系统走过的的坑之部门岗位管理
    蓝屏警告
    三级联动
    Ajax二级联动
    近期疑惑和总结
  • 原文地址:https://www.cnblogs.com/chrisweiii/p/10147842.html
Copyright © 2011-2022 走看看