• 使用IntelliJ IDEA搭建kafka源码环境时遇到Output path错误解决办法


     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模式启动消费者,在控制台可以看到有消息被消费:

     

  • 相关阅读:
    同步、异步 与 阻塞、非阻塞
    【转】综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列
    Kafka总结笔记
    SpringBoot笔记
    过滤器(Filter)和拦截器(Interceptor)的执行顺序和区别
    Java Lambda表达式
    腾讯云博客同步声明(非技术文)
    SpringBoot学习笔记(十七:异步调用)
    设计模式—— 十七:装饰器模式
    Java初级开发0608面试
  • 原文地址:https://www.cnblogs.com/jun1019/p/7944114.html
Copyright © 2020-2023  润新知