之前 记录日志 是直接去对数据库进行操作
使用到rocketmq之后可以使用异步的方式 去记录日志
在修改之前 想去调dubbo里面的mq 但是 如果mq发生异常的情况下 我们还是要去记录日志 这样那个service 是在别的模块下的 所以 我们就 不去使用dubbo了 我们就在我们需要的模块下去集成一个rocketmq的环境 集成了之后 就可以在本模块去进行调用
异步请求 具体实现代码如下
我们 把数据封装成一个实体类 供consumer消费
使用RocketMQMessageListener去里面的参数 去 进行过滤
topic指定要消费的主题 selectotExperssion 指定tag
consumerGroup消费者分组
具体实现 如下
我们的这个类去继承 RocketMQListener<>然后指定泛型 重写onMessage方法这里的形参的类型就是我们RocketMQListener<>这里指定的泛型
然后使用形参.getBody()方法 获取我们要消费的内容 设置指定字符集去进行解码
解析为的是json数据 所以我们要把json数据 转换为对象 我这里用的是fastjson的api
然后去判断一下 这个对象是否为空 如果为空的话就直接返回出去
这段代码 是mq可以总动生成的不重复的id
然后 下面的业务代码 就是进行对数据库的插入了
然后catch里面如果数据重要的话 要抛一个异常 使下次mq也可以把这条消费发过来给我们消费