Java开发环境搭建
基于收集连接信息的介绍,假设您已经获取了实例连接相关的信息,以及配置好客户端的网络环境。本章节以生产与发送消息的Demo为例,介绍Kafka客户端的环境配置。
开发环境
- Maven
Apache Maven 3.0.3及以上版本,可至Maven官方下载页面下载。
- JDK
Java Development Kit 1.8.111及以上版本,可至Oracle官方下载页面下载。
安装后注意配置JAVA的环境变量。
- IntelliJ IDEA
获取并安装IntelliJ IDEA,可至IntelliJ IDEA官方网站下载。
操作步骤
- 下载Demo包。
下载后解压,有如下文件:
表1 Kafka Demo文件清单 文件名
路径
说明
DmsConsumer.java
.\src\main\java\com\dms\consumer
消费消息的API。
DmsProducer.java
.\src\main\java\com\dms\producer
生产消息的API。
dms.sdk.consumer.properties
.\src\main\resources
消费消息的配置信息。
dms.sdk.producer.properties
.\src\main\resources
生产消息的配置信息。
client.jks
.\src\main\resources
SSL证书,用于SASL_SSL方式连接。
DmsConsumerTest.java
.\src\test\java\com\dms\consumer
消费消息的测试代码。
DmsProducerTest.java
.\src\test\java\com\dms\producer
生产消息的测试代码。
pom.xml
.\
maven配置文件,包含Kafka客户端引用。
- 打开IntelliJ IDEA,导入Demo。
Demo是一个Maven构建的Java工程,因此需要配置JDK环境,以及IDEA的Maven插件。图1 选择“导入工程”
图2 选择“Maven”
图3 选择Java环境
其他选项可默认或自主选择。然后单击Finish,完成Demo导入。
导入后Demo工程如下:
- 配置Maven路径。
打开“File > Settings”,找到“Maven home directory”信息项,选择正确的Maven路径,以及Maven所需的settings.xml文件。
- 修改Kafka配置信息。
以生产消息为例,具体修改请参考生产消息配置文件。
- 在IDEA工具的左下角,打开Terminal窗口,执行mvn test命令体验demo。
图4 IDEA的Terminal窗口位置
生产消息会得到以下回显信息:
------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.dms.producer.DmsProducerTest produce msg:The msg is 0 produce msg:The msg is 1 produce msg:The msg is 2 produce msg:The msg is 3 produce msg:The msg is 4 produce msg:The msg is 5 produce msg:The msg is 6 produce msg:The msg is 7 produce msg:The msg is 8 produce msg:The msg is 9 Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 138.877 sec
消费消息会得到以下回显信息:
------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.dms.consumer.DmsConsumerTest the numbers of topic:0 the numbers of topic:0 the numbers of topic:6 ConsumerRecord(topic = topic-0, partition = 2, offset = 0, CreateTime = 1557059377179, serialized key size = -1, serialized value size = 12, headers = RecordHeaders(headers = [], isReadOnly = false), key = null, value = The msg is 2) ConsumerRecord(topic = topic-0, partition = 2, offset = 1, CreateTime = 1557059377195, serialized key size = -1, serialized value size = 12, headers = RecordHeaders(headers = [], isReadOnly = false), key = null, value = The msg is 5)