type
status
date
slug
summary
tags
category
icon
password
这里写文章的前言:
一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
📝 问题
最近测试一些bug, 因为有些数据到canal, 然后canal写到kafka, 我们自己的服务消费kafka的数据.
由于一些参数的配置,导致kafka频繁的出现这个问题. 然后你如果这些关键字去百度的话,那么这个问题,你估计是很那处理了. 因为百度出来的处理方式是牛鬼蛇神,各种花样都有,但是就是没有一个有用的.
最后还是去 github上看到一个人提的这个问题,然后跟着他弄下,就ok了. 但是具体的参数配置,还是得仔细去测试下.不然总是会出现各种你想不到的情况发生,奇奇怪怪的问题.
配置
这是最初的配置. 然后kafka那头,就有蛮多数据堆积在那里的. 接着就出现了上面的那个error, 但是没有抛异常出来,就是log里面打印了info的信息,说里面有error.
处理方案:
可以看着别人的配置跟着配置下,但是最好要自己理解下你配置这些参数的值大小,代表着什么意思. 因为你获取这些数据的多少,是直接与你的业务代码和服务器内存进行挂钩的.
比如你的业务代码,拿到了kafka的数据,然后根据kafka的数据去db中query(假设你查询的数据很多), 那么就一定要注意内存的使用等问题了.
最后的配置样子. 当然了,这里只是我进行测试一些bug的配置,具体的上线代码配置,肯定还要再仔细看下.
🤗 总结归纳
可以看到类似kafka这种中间件,其配置的参数还是相当的重要,所以弄明白是很重要的. 不然你配置的参数,可能刚刚好适应你的电脑,但是对服务器就不适应了(这样的话,不排除内存使用的问题). 还是就是数据量的不同, 分别是kafka没有堆积数据,有数据过来就消费,这样的话,肯定是没啥问题的. 如果kafka那头堆积的几百万呢? 那你的这个配置会不会问题? 消费了数据后,有去db做查询的操作,查询获取出来的数据多少? 这些都是需要注意的.
📎 参考文章
有关文章的问题,欢迎您在底部评论区留言,一起交流~