type
status
date
slug
summary
tags
category
icon
password
Property
May 9, 2023 09:22 AM
本文主要介绍Kafka的配置问题
 
其实我一直认为,学习一门技术,不一定非要看视频,文档是最快最直接的入门学习资料,我可以直接通过阅读文档的方式来学习使用新的技术,这也是我自我学习总结的经验。文档永远优先于视频,除非是老外的技术,比如老毛子的JavaFX框架,微服务框架等等,这类可能国内文档不全,不得不科学上网看油管的视频学习,其他的我感觉文档足以~
 
比如Kafka,Kafka源码是通过静态语言Scala写的,作为专精后端的开发人员,我没有时间精力去精读Scala源码,只能快速通过文档掌握其基本用法,再根据不同深度的业务场景,联合其他框架,发倔其更深层次的用法。
 
下文,我将主要介绍一下,Kafka的配置问题,从配置来学习Kafka其实是最快捷的方式~

🤔 你有认真解读过Kafka的配置吗?

 
没有的话直接去看Kafka官方文档吧,上面配置全面的不能再全面了,点击此处直达所有技术官方文档地址

一、关于消费者配置的注意事项

下面的这三个参数是必须要配置的
bootstrap.servers
key.serializer
value.serializer
你可以参考我实战案例里面的配置,如下代码:
对于Key.serializer与Value.serializer这里有个有意思的细节
Kafka-Server生产者如果推送的是JSON字符串,那么在消费端,使用StringSerializer或者JsonSerializer都可以接收到传递过来的JSON字符串数据。两者有什么区别呢?下面以代码为例
如果您选择使用 StringSerializer,则需要将 JSON 字符串转换为字符串类型,然后再传递给序列化程序进行序列化。
如果您选择使用 JsonSerializer,则无需将 JSON 字符串转换为字符串类型,序列化程序会自动将其转换为 JSON 格式。
请注意,在使用 JsonSerializer 时,您需要提供一个有效的 JSON 对象作为输入。否则,序列化程序可能会引发异常。在使用 JsonSerializer 进行序列化操作时,你需要传入一个有效的 JSON 对象作为参数,否则会抛出异常。JSON对象是一种表示数据的格式,它由键/值对组成,并使用大括号进行包裹。如果你传入一个空的 JSON 对象,那么 JsonSerializer 就无法识别它,因为它没有任何键/值对。这就会导致序列化程序无法将对象转换成 JSON 字符串,从而引发异常。
 
什么意思呢?在使用 JsonSerializer 时,您需要提供一个有效的 JSON 对象作为输入。否则,序列化程序可能会引发异常。意思就是说,我需要提供一个目标JavaBean序列化之后的JSON对象,哪怕对象属性都是空的都没关系,因为只要是对应JavaBean的JSON对象就可以了,因为后续接受到JSON数据之后,会将JSON数据反序列化成该JavaBean,属性会自动填装回去,通过JsonSerializer进行序列化转换成对应的JSON对象。在这个过程中,即便JavaBean对象的属性为空,也会被转换为对应的JSON对象,并且在反序列化过程中,属性值会自动填充回JavaBean对象中。反之,在将JSON数据反序列化成JavaBean对象时,如果JSON数据缺少某些属性,那么这些属性的值将会保持默认值或者null值,这取决于JavaBean对象的定义。因此,在进行序列化和反序列化操作时,都需要保证JavaBean对象和JSON数据的属性名以及属性类型相匹配,否则可能会导致异常。
 
所以说,看文档还是很重要的,很多东西,你是从视频中获取不到的,你从视频中能获取到的信息是别人自己掌握的信息,而可能跟你出现信息差,这个时候,果断看官方文档是最正确的选择。少看视频,多看文档~
💡
有关Kafka配置上的其他有趣的问题,欢迎您在底部评论区留言,一起交流~
 
 
Spring自学技巧(一):InitializingBean的妙用Kafka自学笔记(二):关于分布式Kafka生产消费流程
fntp
fntp
多一点兴趣,少一点功利
公告
type
status
date
slug
summary
tags
category
icon
password
Property
Sep 5, 2023 06:04 AM
📝 博客只为了记录我的学习生涯
😎 我的学习目标是成为一名极客
🤖 我热爱开源当然我也拥抱开源
💌 我期待能收到你的Email留言
📧 我的邮箱:stickpoint@163.com
欢迎交流~