kafka源码环境搭建好之后,需要在IntelliJ IDEA开发工具中以debug方式启动kafka服务器来测试消息的生产和消费。
但是在启动kafka.Kafka类中的main方法(也就是运行 kafka-0.10.0.1-srccoresrcmainscalakafkaKafka.scala 类中的main方法)的时候遇到一个错误,错误信息的截图如下:
Error:scalac: Output path D:kafka-0.10.0.1-srcuild is shared between:
Module 'kafka-0.10.0.1-src' production, Module 'kafka-0.10.0.1-src' tests Please configure separate output paths to proceed with the compilation. TIP: you can use Project Artifacts to combine compiled classes if needed.
大概意思是说kafka-0.10.0.1-src这个模块的编译输出目录有问题,需要为production和tests指定不同的编译输出目录。
解决方案:
1.首先指定project的编译输出目录:
2.然后修改kafka-0.10.0.1-src模块的编译输出目录:
再次在idea中启动kafka服务器,会看到scalac开始编译:
配置kafka服务器(添加一个application,main class选择kafka.Kafka这个scala对象,因为它里面有一个main方法,启动这个main方法就相当于启动了kafka服务器)启动参数:
配置生产者(ConsoleProducer,它里面也有一个main方法,启动该main方法就相当于启动了一个kafka生产者)启动参数(在Program arguments中可以给生产者传递启动参数):
配置消费者(ConsoleConsumer,它里面也有一个main方法,启动这个main方法就相当于启动了一个消费者)启动参数(在Program arguments中可以给消费者传递启动参数):
以debug方法启动kafka服务器成功:
以debug方式启动生产者成功,可以在控制台输入消息,并回车,就可以向kafka服务器发送消息:
同样以debug模式启动消费者,在控制台可以看到有消息被消费: