当前位置:   article > 正文

RocketMQ总结_rocketmqmessagelistener

rocketmqmessagelistener

rocketMQ消息队列就是让java工程之间可以传递消息,不同与微服务,

  • 微服务是找到注册服务的接口,然后拿到服务路径去请求,服务请求服务,
  • 消息队列是工程给工程发消息,不一定得有web工程
  • 微服务和消息队列都有注册中心,微服务是从注册中心拉取到其他服务信息去请求,
  • 消息队列是拉取到broker(broker在创建的时候就注册到注册中心了’)给broker消息,想拿消息的工程就和收听广播一样,订阅消息主题,只要这个主题一有信息,broker就会让该工程拉取到该主题的消息

消息队列

rocketMQ使用

1,注册中心springboot工程,会有网页
在这里插入图片描述
2,引入依赖

		<dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

注意:这里犯了一个错,我直接复制的是注册中心工程springboot的父依赖,和这个starter不支持,要用新版本的,我用的是2.2.7
3,配置生产者
这就是个controller,请求这个路径就会发送firstM主题的内容为一个user对象的消息
核心为rocketMQtemplate自动配置的模板对象,它可以发各种消息
同步,异步,顺序,事务,延时,批量
在这里插入图片描述
自动配置的配置
就是指定一下哪个nameserver,写一个生产者组

server:
  port: 10086
rocketmq:
  name-server: 192.168.214.128:9876
#  生产者组没有用,但是必须得配置
  producer:
    group: wei-producer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4,配置消费者
消费者的话就实现一个监听器,指定好类型,上面注解指定上面主题以及消费者组,这个组同样没啥子用,但是得配,而且自动配置里面还没有,非得局部配置

//想要接受消息,这个类需要在容器中
@Component
//指定消费者组以及订阅哪个主题的消息
@RocketMQMessageListener(consumerGroup = "syncGroup",topic = "firstM")
public class MySyncCustomerGroup implements RocketMQListener<User> {
//上面实现接口指定接受消息类型的泛型,这边重写的这个方法的参数就是接受的消息
    @Override
    public void onMessage(User s) {
        System.out.println(s);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

@rocketMQmessageListenner这个注解还有一个参数,selectorExpression
在这里插入图片描述
配置

server:
  port: 10087
rocketmq:
  name-server: 192.168.214.128:9876
#消费者组在autoConfigration里面没有配置的,只能局部配置
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/603654
推荐阅读
相关标签
  

闽ICP备14008679号