千家信息网

RabbitMQ中怎么处理各种消息类型

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这期内容当中小编将会给大家带来有关RabbitMQ中怎么处理各种消息类型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Map消息如果发送的消息类型是map类型,可以
千家信息网最后更新 2025年02月03日RabbitMQ中怎么处理各种消息类型

这期内容当中小编将会给大家带来有关RabbitMQ中怎么处理各种消息类型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Map消息

如果发送的消息类型是map类型,可以通过SerializationUtils.deserialize方法将消息转换成map类型。

字符串类型(含json格式)

默认情况下RabbitMQ发送的消息是为字节码,有时我们需要发送JSON格式的消息,则有如下两种处理方式。

手动转换成json

@Autowiredprivate ObjectMapper objectMapper;
public void sendOrder(Order order) { try { String orderJson = objectMapper.writeValueAsString(order); Message message = MessageBuilder .withBody(orderJson.getBytes()) .setContentType(MessageProperties.CONTENT_TYPE_JSON) .build(); this.rabbitTemplate.convertAndSend(RabbitConfig.QUEUE_ORDERS, message); } catch (JsonProcessingException e) { e.printStackTrace(); }}

但是在每一个发送消息的地方都这样写就会很繁琐。

使用MessageConvert自动转换为json

如果规定了消息的格式为JSON,并使用消息转换器,则会自动将消息转化为json格式而不需要每次手动进行转换。RabbitTemplate默认使用SimpleMessageConverter作为自己的消息转化器,而SimpleMessageConverter并不能满足json消息的需求。我们可以使用Jackson2JsonMessageConverter作为默认的消息转换器。

为RabbitTemplate配置MessageConverter:

@Configurationpublic class RabbitConfig {
@Bean public RabbitTemplate rabbitTemplate(final ConnectionFactory connectionFactory) { final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setMessageConverter(jsonMessageConverter()); return rabbitTemplate; }
@Bean public Jackson2JsonMessageConverter jsonMessageConverter() { return new Jackson2JsonMessageConverter(); }}

通过String类的构造函数接收byte[]类型的消息数据,获得jsonStr后可以转换成其它类,然后再进行相关操作。

这里@RabbitListener注解在方法上,如果类中有多个@RabbitListener(queues = TopicRabbitmqConfig.EVENT_MSG_QUEUE_NAME)注解的方法,测试的结果是轮流的调用。

另一种接收方式

注意,这里RabbitListener注解在类上,方法中通过@RabbitHandler注解标识。

spring boot与rabbitmq

三丰,公众号:soft张三丰spring boot与RabbitMQ

控制台

打开 RabbitMQ web 控制台,也可以看到刚才我们在代码里面配置的交换器和队列,以及绑定信息。

查看交换器的详情

查看队列


上述就是小编为大家分享的RabbitMQ中怎么处理各种消息类型了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

消息 类型 方法 格式 注解 处理 交换器 内容 手动 控制台 方式 转换器 队列 三丰 分析 控制 配置 繁琐 专业 中小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 工业控制网络安全技能大赛 做软件开发应付自如 中国网络安全技术怎么样 海康视频服务器管理后台 初中生网络安全教育培训内容 arm服务器运行手游 数据库实验教学大纲 嵌入式软件开发研究生毕业 数据库中日期类型能加减吗 撤销数据库上一步修改操作 数据库基本检索技术的是 查询数据库结果显示 无线通信网络安全 真通网络技术服务公司 网络安全等级限期整改通知 工作室为什么都选服务器cpu 小程序大赛需要具备数据库知识吗 百旺访问数据库失败 wind数据库有时候加载不出 车载软件开发技术 数据库自动填写时间 黄浦区一站式软件开发口碑推荐 企业微信的服务器配置在哪里 数据库中数据管理的名词解释 网络安全工程师基本工作总结 通信服务器属于通信子网 数据库软件开发联合学院 京东 使用什么数据库 hive表如何清理数据库 货拉拉系统软件开发贵用
0