首页 > 其他分享 >消息转换器

消息转换器

时间:2023-12-02 22:00:25浏览次数:26  
标签:jackson JDK JSON 消息 转换器 序列化

Spring会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。

只不过,默认情况下Spring采用的序列化方式是JDK序列化。众所周知,JDK序列化存在下列问题:

  • 数据体积过大

  • 有安全漏洞

  • 可读性差c

配置JSON转换器

显然,JDK序列化方式并不合适。我们希望消息体的体积更小、可读性更高,因此可以使用JSON方式来做序列化和反序列化。

在publisher和consumer两个服务中都引入依赖:

<dependency>
   <groupId>com.fasterxml.jackson.dataformat</groupId>
   <artifactId>jackson-dataformat-xml</artifactId>
   <version>2.9.10</version>
</dependency>

配置消息转换器。

在启动类中添加一个Bean即可:

@Bean
public MessageConverter jsonMessageConverter(){
   return new Jackson2JsonMessageConverter();
}
 

标签:jackson,JDK,JSON,消息,转换器,序列化
From: https://www.cnblogs.com/daitu66/p/17872316.html

相关文章

  • RabbitMQ 发送消息到交换机
    发送消息到交换机的代码:@GetMapping("/mq02")//发送消息给交换机publicvoidmq02(){StringexchangeName="hmall.fanout";Stringmsg="hello,每个人";//三个参数:交换机名称、RoutingKey(暂时为空)、要发送的消息rabbitTemplate.convertAndSend(exchangeName,......
  • RabbitMQ 接收队列的消息
     代码示例:注:要把这个类加上Component注解packagecom.itheima.amqp_listener;importorg.springframework.amqp.rabbit.annotation.RabbitListener;importorg.springframework.stereotype.Component;@ComponentpublicclassMQListener{@RabbitListener(queues="simpl......
  • RabbitMQ 发送消息到队列(交换机不参与的那种)
    1.导包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>2.在application.yml文件里编写配置信息spring:rabbitmq:host:192.168.88.130port:5672......
  • 消息传递:管道和FIFO
    一、简介管道是没有名字的,管道创建的资源由内核管理,单个程序中不同进程通过管道描述符fd进行通信,对于程序和程序之间是无法通信的。FIFO是有名字的(也称为有名管道),每一个FIFO都有一个文件与之关联,但仅限于同一主机程序与程序之间通信,无法通过在NFS上创建FIFO通信。二、管道所......
  • 如何保证RocketMQ消息不丢失
    一、概述一个消息从开始到结束会经历这么三个阶段:生产阶段、消息队列Broker存储阶段和消费阶段。一个消息在三个阶段中的任何一个阶段都有可能丢失,知道这个之后,我们只要保证这三个阶段不出现问题,消息自然就不会出现丢失了。接下来我们来细说一下如何保证这三个阶段不出现问题。......
  • RabbitMQ消息队列
    一.什么是消息队列1.简介在介绍消息队列之前,应该先了解什么是AMQP(AdvancedMessageQueuingProtocol,高级消息队列协议,点击查看)消息(Message)是指在应用间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象;而消息队列(MessageQueue)是一种应用间的......
  • 自定义应用层通信协议结构消息的编码方式
    应用层通信协议设计 一、应用层通信协议概述TCP/UDP是基于字节流的传输层通信协议,对于其的编程是基于IO流编程,所谓“流”,就是没有界限的一长串二进制数据。TCP/UDP作为传输层协议,并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行数据包的划分。所以在业务上......
  • Flask(2)-动态路由&转换器
    动态路由[email protected]("/user/<name>")2defshow_user(name):3return"Mynameis%s"%name这里定义了动态路径:/user/<name>。函数有一个参数:name。 转换器flask中,参数类型默认是string,也可以指定其类型[email protected]("/age/<int:age>")2de......
  • 什么是kafka中topic、分区、副本、偏移量、消息保留策略
    Kafka是一个开源的分布式流式数据平台,也成为分布式消息队列。用于高吞吐量、低延迟的数据发布和订阅。 1、什么是topic(主题)? 在Kafka中,Topic(主题)是数据发布和订阅的基本单位,它代表了相同类型的消息流。 一个Topic可以看作是一个逻辑上的数据流管道,消息的生产者(Prod......
  • 汇编-MessageBoxA消息框
     .386.modelflat,stdcall.stack4096ExitProcessPROTO,dwExitCode:DWORDMessageBoxAPROTO:DWORD,:DWORD,:DWORD,:DWORD.datalptextBYTE"消息",0lpcaptionBYTE"标题",0.codemainPROCinvokeMessageBoxA,0,OFFSETlptext,OFFSET......