RocketMQ的基本使用


第一步导入依赖:

 <!--Springboot 集成 RocketMQ依赖-->
     <dependency>
         <groupId>org.apache.rocketmq</groupId>
          <artifactId>rocketmq-spring-boot-starter</artifactId>
           <version>2.0.3</version>
        </dependency>
   <!--RocketMQ依赖 一般与上者二选一看环境--> 
   <dependency>
       <groupId>org.apache.rocketmq</groupId>
       <artifactId>rocketmq-client</artifactId>
       <version>4.6.0</version>
     </dependency> 

<!--对应的hutool工具包 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.5.2</version>
</dependency>

第二步:注入MQ

 @Autowired

RocketMQTemplate mqTemplate;

发送MQ消息时,mqTemplate.convertAndSend("userlog", map); 发时用userlog,收时也要用他。

map是我们自己定义的消息体

// 定义消息体
        HashMap<String, Object> map = new HashMap<>();
        map.put("cname", username);
        map.put("ctype", 0); // 0代表登录失败 1 代表登录成功
        map.put("ctime", new Date());
  // 发送MQ消息
            mqTemplate.convertAndSend("userlog", map);  

配置  提供者与消费组类似

#提供者
rocketmq.name-server=192.168.31.81:9876
rocketmq.producer.group=maike


#消费者   
rocketmq.name-server=192.168.31.80:9876
rocketmq.producer.group=maike2

server.port=8083 防止端口冲突

代码实现需要注意:

发消息:

rocketMQTemplate.convertAndSend("maike-sso-login", map);

发的消息的topic为:maike-sso-login ,  收消息也用他

收消息:

//需要实现这个接口 topic与发送者一样
@RocketMQMessageListener(topic = "maike-sso-login",  consumerGroup = "maike-login-info") public class UserLoginConsumer implements RocketMQListener<String> { 
}

然后可以用hutool的工具包   JSONUtil.parseObj(msg)转成对象   按照对应类型去拿值,代码如下

public void onMessage(String msg) {
      
            //转json  拿到数据    
            JSONObject jsonObject = JSONUtil.parseObj(msg);
//传的时候传什么类型,就用什么类型取 Long userId
= jsonObject.getLong("id"); Date loginDate = jsonObject.getDate("date"); String address = jsonObject.getStr("address"); String gender = jsonObject.getStr("gender");

 

 

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM