[Kafka错误:window下运行一段时间后自动挂掉/宕机] | 您所在的位置:网站首页 › windows安装kafka启动kafka时失败 › [Kafka错误:window下运行一段时间后自动挂掉/宕机] |
前言------对于只想解决这个问题的程序猿们,可以直接跳到"解决" 对于只想解决这个问题的程序猿们,可以直接跳到"解决" 对于只想解决这个问题的程序猿们,可以直接跳到"解决" 对于只想解决这个问题的程序猿们,可以直接跳到"解决" 1.背景之前使用kafka都是在Linux环境下的,没有出现什么kafka本身的问题。但是,目前在做的一个项目需要兼容Window和Linux,在Window环境下使用Kafka时才发现kafka本身对于window的兼容不如Linux。 2.问题window下对kafka进行测试的时候,发现kafka在上线一段时间之后,出现了错误: 另一个程序正在使用文件,进程无法访问。 kafka日志清理策略触发,在window环境下,在打开需要清理的日志的同时,对该文件进行重命名操作是不被允许的(linux环境下可以),从而导致kafka宕机。 网上的解决方案最多的就是“清空kafka的日志文件然后重启kafka”,这种解决方式在生产环境下显然是不现实的。所以在一开始我又针对情况得出以下两种解决方案: 方案一:修改日志清理策略,将日志清理时间修改为无穷(-1),使kafka数据日志永久存储 缺点:(1)磁盘空间会不断增大 方案二:在window上搭建虚拟机(docker同理,且更麻烦),然后在虚拟机中部署kafka 缺点:(1)运维人员需要懂点linux运维知识(2)增加内存消耗 显然,这两种方案的缺点都让我无法忍受,所以我把视线转向kafka社区寻求帮助。点击此处膜拜大神们的探讨 据了解,原来kafka在window下的这个问题,还并不没有想象中的那么容易,官方目前为止也没有解决方案。换句话说(你们就不要在window下使用kafka啦!) 方案三:不过即便如此,在window下使用kafka的需求还是存在的,所以还是有很多大神们在关注并提出一些解决方案的。其中就有一位大神针对这个问题对kafka源码进行了二次开发。经过测试,他的这个方案在window下确实解决了问题,使得kafka可以在window下使用。但是对于这个方案,kafka的contributor说可能不太安全(就是不能将该补丁整合到官方中)。 4.解决(尾部有提供编译好的kafka包下载链接)虽然kafka官方说该补丁不太安全,但是官方在目前为止又没有什么作为。而需求确是实实在在存在的,所以在一番考虑之下,我还是打算采用方案三的方式,一劳永逸的解决问题,所以接下来我们就要将该补丁打进,并重新编译kafka。 4.1kafka补丁版本下载下载该作者的kafka补丁版本 https://github.com/apache/kafka/tree/0baf9c158b5681a55df4de3a0e6193d32b1433ff 4.2编译kafka补丁版本由于kafka编译是通过gradle的,所以需要先配置好gradle 关于如何配置gradle可以参考这篇文章(转载来的,侵权即删)------Windows下gradle的安装与配置 关于如何编译kafka,可以参考github------如何使用gradle编译kafka 编译完之后,就可以得到一个可以在window下使用的kafka包了。 本着“复制-粘贴“的理念(毕竟编译源码还是挺耗时间的),这里提供一个我编译好的kafka包下载链接,下载直接使用即可 5.懒人福音下载链接:https://pan.baidu.com/s/1loRZdolXE48Ugn4t7sEphg 提取码:90xz |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |