当前位置: 首页 > 知识库问答 >
问题:

什么形式的信息对于向Kafka传递价值观是好的?

裴令秋
2023-03-14

我目前有一个开发环境如下所示。

  • Spring-Boot 2.x
  • Spring-Kafka 2.5.5
  • Kafka版本2.5.1
  • 生产者/使用者密钥序列化器/反序列化器=字符串(De)序列化器.类
  • 生产者/使用者值Serializer/Deserializer=Json(De)Serializer.class

当生产者发送Kafka消息时,自定义DTO(或POJO)通过ObjectMapper.WriteValueAsString(customDto)转换为JSON String类型。

  • ProducerFactory
  • kafkatemplate
ProducerRecord<String, String> record = new ProducerRecord<>(topic, key, msg); // The message is a JSON String variable made with ObjectMapper.

ListenableFuture<SendResult<String, String>> future = kafkaTemplate.send(record);

当使用者收到JSON字符串消息时,通过ObjectMapper.ReadValue(message,CustomDTO.class)将其转换为相应的DTO(或POJO)并接收。

  • ConsumerFactory

或者有没有一种方法可以直接发送和接收自定义DTO而不需要转换?我想使用泛型类型。怎么样?

共有1个答案

仲孙才捷
2023-03-14

有一种更好的方法通过Kafka发送复杂的类型,它包括一个可以自动序列化和去杀菌的结构。

  1. 使用Avro架构https://Avro.apache.org/
  2. 添加汇合模式注册表以处理序列化/反序列化过程和验证。合流

看看这个例子,看看它是多么的干净和高效。

 类似资料:
  • < b >想改进这个问题?通过编辑此帖子更新问题,使其只关注一个问题。 Kafka | producers的所有示例都显示<code>ProducerRecord</code>的键/值对不仅是同一类型(所有示例均显示<code> 但是在Kafka文档中,我似乎找不到键/值概念(及其潜在目的/实用程序)的解释。在传统消息传递中(ActiveMQ、RabbitMQ等),我总是在特定主题/队列/交换处触

  • 我确实有大约一年的编程经验,但主要是在CodeAcademy上,还有各种书籍、youtube视频和维基百科文章。

  • 虽然总是可以使用mixin或方法重写来修改Bool强制,但默认情况下,哪些值被认为是truthy,哪些值被认为是falsy? 注意:这个问题以前问过,但不幸的是它太老了,它的内容完全过时了,没有用的是现代的拉库。

  • 当我将对象引用(数组是对象)传递给方法时,会传递值,对吗? 在以下代码中,初始值为:333。方法传递后,值将更改。为什么?在这种情况下,引用传递的是值吗? 数组是“特例”吗? 另一种方法:(逻辑“传递值”):

  • 我一直认为Java使用按引用传递。 然而,我看到一篇博客文章声称Java使用传递值。 我想我不明白他们的区别。 原因是什么?

  • 本文向大家介绍你来说一下,在微信中,朋友圈功能对于微信的价值是什么?相关面试题,主要包含被问及你来说一下,在微信中,朋友圈功能对于微信的价值是什么?时的应答技巧和注意事项,需要的朋友参考一下 1 加速实现微信的商业化诉求。张小龙在微信公开课上提到自朋友圈功能发布至今,每天进入朋友圈的用户数一直在增长,朋友圈的日活用户有7.5亿,平均每个用户每天还会贡献10+次的浏览量,所以朋友圈单日的总量就是10