[Kafka错误]-----kafka在window下出现另一个程序正在使用此文件,进程无法访问的错误
目录
前言------对于只想解决这个问题的程序猿们,可以直接跳到"解决"
1.背景
2.问题
3.原因
4.解决(尾部有提供编译好的kafka包下载链接)
4.1kafka补丁版本下载
4.2编译kafka补丁版本
5.懒人福音
前言------对于只想解决这个问题的程序猿们,可以直接跳到"解决"
对于只想解决这个问题的程序猿们,可以直接跳到"解决"
对于只想解决这个问题的程序猿们,可以直接跳到"解决"
对于只想解决这个问题的程序猿们,可以直接跳到"解决"
1.背景
之前使用kafka都是在Linux环境下的,没有出现什么kafka本身的问题。但是,目前在做的一个项目需要兼容Window和Linux,在Window环境下使用Kafka时才发现kafka本身对于window的兼容不如Linux。
2.问题
window下对kafka进行测试的时候,发现kafka在上线一段时间之后,出现了错误:
另一个程序正在使用文件,进程无法访问。
3.原因
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.懒人福音
下载链接:kafka_2.12-2.3.0-SNAPSHOT【解决不能在window下使用的BUG】 密码:mfhu
[Kafka错误]-----kafka在window下出现另一个程序正在使用此文件,进程无法访问的错误相关推荐
- win10 启动kafka报错 另一个程序正在使用此文件,进程无法访问
welcome to my blog 问题描述: win10启动kafka报错: ERROR Failed to clean up log for __consumer_offsets-39 in d ...
- 一个window下的简单的全局快捷键向指定的进程发送的c代码与exe程序下载(二)
c代码:一个window下的简单的全局快捷键向指定的进程发送的c代码与exe程序下载 -----------------这是文件 hotkey.zip base64后的字符,复制代码时不要复制我(共2 ...
- 【错误记录】Flutter 混合开发报错 ( java.nio.file.FileSystemException: xxx/R.jar: 另一个程序正在使用此文件,进程无法访问。 )
文章目录 一. 报错信息 二. 解决方案 一. 报错信息 Flutter 混合开发项目 : 在 Android 项目中 , 嵌入了 Flutter 页面 , 不小心运行了下 Flutter 项目 , ...
- Linux 下查看某一个程序所使用的内存方法介绍
Linux 下查看某一个程序所使用的内存方法介绍 在 Linux 上进行开发和运营维护的时候,免不了要查看某一个程序所占用内存的情况.常用方法总结如下(注意第四种方法): 第一种:ps -aux | ...
- IIS错误信息--另一个程序正在使用此文件,进程无法访问!
IIS启动失败,手工启动它,提示:"另一个程序正在使用此文件,进程无法访问!" 怀疑80端口被其他程序占用,改为8080后正常. 在DOS下输入: netstat -ano 查看8 ...
- SQL Server 安装程序遇到以下错误: 无法生成临时类(result=1)。 error CS1567: 生成 Win32 资源时出错: 另一个程序正在使用此文件,进程无法访问。...
SQL Server 安装程序遇到以下错误: 无法生成临时类(result=1). error CS1567: 生成 Win32 资源时出错: 另一个程序正在使用此文件,进程无法访问. 如果你装了千牛 ...
- 【纠错】——错误:PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。“+解决方案
目录 问题出现场景 原因 解决方案 问题出现场景 先打开pdf文件,获取pdf文件内容后,利用os.remove()来删除文件,这时候出现错误 os.remove(source_path)Permis ...
- 出现另一个程序正在使用此文件,进程无法访问。 (异常来自 HRESULT:0x80070020)错误的解决办法
80端口被占用如何解决 出现另一个程序正在使用此文件,进程无法访问. (异常来自 HRESULT:0x80070020)错误 打开cmd窗口,输入 netstat -ano,查看被占用的PID 在任务 ...
- Android运行错误:debug\classes.jar: 另一个程序正在使用此文件,进程无法访问。解决方案
Android代码在Windows的Android Studio运行时常会出现另一个程序正在使用此文件,进程无法访问的错误,解决方案也很简单. 打开任务管理器,关闭OpenJDK Platform b ...
最新文章
- iOS 异形tabBar, 中间item凸起
- 如何使用 Spring 实现策略模式+工厂模式
- Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
- 扎哈的绝唱:“六芒星”大兴机场的几何赏析
- vs2008添加excel类编译错误解决方法
- 【收藏】解决mac问题:打不开,因为它来自身份不明的开发者
- oracle查询 :一个角色包括的系统权限,对象权限,Oracle有多少种角色,某个用户有什么角色
- matlab排版形式是什么样子,工作型PPT,图文排版的4种常见样式
- css 友情链接效果,友链样式与位置很重要!
- Spark集群完全分布式安装部署
- FireBug 调试JS入门 —如何调试JS
- git遇到的问题解决方案
- tp3.2.3php环境要求,TP3.2.3开发手册
- ad15的stc元件库_STC系列单片机内部AD的应用
- 线程生命周期与创建线程的多种方式
- 【Docker】Failed to get D-Bus connection: Operation not permitted解决
- 56、公众聚集场所的防火巡查要求
- 中国最牛逼的四大软件
- PANDA pipeline的安装与使用-安装(1)
- 随机过程的概念与基本类型