前提 项目使用微服务方式 ,有一个删除 *** 作,数据内含有一个file url 删除数据需要调文件服务进行删除文件。目前采用的方式是 feign 方式,这里改为mq 方式删除。
前提 导包这里就不叙述了
第一步 配置
1.设置消息预取 值为1 表示 处理完1个消息再拿下一个消息进行处理 如果不设置 后果可以百度(影响可大可小 尽量设置)
配置2 因为消息发送是用jdk的序列化将对象序列化,会显得比较臃肿 这里配置成json序列化, 注意消息发送服务和接受消息服务都要重写这个bean
代码实现
1 消息发送
前提 手动创建队列 和交换机 目前还不知道咋自动创建队列,和交换机绑定队列
我这里用管理网页手动添加的绑定关系
消息发送代码
注入模板
用模板方法发送消息
第一个参数表示交换机名称,第二个参数表示key 第三个参数表示要传的对象这里是一个string对象
消息接受 @component 一定要加 不然创建不了对象!
@RabbitListener(bindings = @QueueBinding( value = @Queue(name = "file"), exchange = @Exchange(name = "amq.topic",type = ExchangeTypes.DIRECT), key = {"red","bleak"} )) 这个注解是监听 - 参数为绑定 绑定 消息 和交换机 然后还有key 即可
type 有三种类型 TopicExchange 等 需要的话可以自行百度
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)