kafka是否支持android客户端
文章目录
前言
近段时间做了kafka相关的项目,项目概述:部署zookeeper+kafka+sasl集群,开发中心管理平台做kafka管理和监控,封装客户端jar包提供更为简洁的生产消息、消费消息的接口。
做完这些开发之后又考虑封装好的客户端jar包是否支持android开发,于是做了测试。
一、写android测试demo
在android studio中创建了简单android项目,并将封装好的客户端jar导入,页面添加一个按钮,按钮作用:调用jar包中生产者接口,创建一个生产者向kafka生产一条消息。
运行结果:
报错java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/ManagementFactory;

发现了问题就一番查找。
二、网上找到的结果
看上去是因为kafka并不支持android环境。于是与kafka官网进行邮件沟通。
三、官网沟通结果
我发送的邮件:

官网的回复邮件:

总结
Android调用kafka的api时报错:java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/ManagementFactory;
而java/lang/management/ManagementFactory 在rt.jar中,把rt.jar导入的android项目libs中报提示缺少libmanagement.so。
java.lang.management用于管理和监视Java VM,android的Dalvik VM不是Java VM,所以不支持。
本文探讨了Kafka在Android环境下的应用可能性。通过测试发现,由于Android的Dalvik虚拟机与Java虚拟机的不同,导致直接使用Kafka API会出现兼容性问题。通过对错误的深入分析并与Kafka官方沟通,明确了Android开发不适合直接使用标准Kafka客户端。

824

被折叠的 条评论
为什么被折叠?



