飞行日志
常用链接
韭菜搞钱
三省吾身
知行合一
🎣实践指南-010-kafka编译与测试
type
status
date
slug
summary
tags
category
icon
password
1. 简介2. 核心概念3. 构建3.1. 下载源码3.2. 安装依赖3.3. 手动安装 gradle?4. 部署4.1. 安装4.2. 使用 systemd5. 测试6. 其他6.1. idea 构建7. 参考
kafka 官网提供了编译好的二进制包,但是基本的编译方法还是需要知道的。以下测试均在系统 Ubuntu 20.04 中进行。
1. 简介
kafka 是一款开源的分布式事件流平台,使用 Scala 和 Java 编写,被全球很多公司使用,目前托管在 Apach 基金会旗下。以下是官网的简介。
2. 核心概念
下面介绍Kafka相关概念,以便运行下面实例的同时,更好地理解Kafka.1. BrokerKafka集群包含一个或多个服务器,这种服务器被称为broker2. Topic每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)3. PartitionPartition是物理上的概念,每个Topic包含一个或多个Partition.4. Producer负责发布消息到Kafka broker5. Consumer消息消费者,向Kafka broker读取消息的客户端。6. Consumer Group每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)
3. 构建
由于 kafka 使用了 Scala 和 Java 编写,所以在编译时候,需要提供 Scala 和 Java 环境。目前 kafka 与 Scala 版本强依赖,因此针对不同的 Scala 版本,kafka 提供了不同的二进制包。同时,kafka 也需要使用 gradle 构建。是否需要手动安装 gradle,具体要看构建的版本。
3.1. 下载源码
官网提供了目前所有稳定版的更新,下载 kafka-xxx-src.tgz 格式源码包即可,地址为 http://kafka.apache.org/downloads。本次以 kafka-2.3.1 版本作为演示。
3.2. 安装依赖
3.3. 手动安装 gradle?
是否手动安装 gradle,是依赖版本决定的,目前 Ubuntu 20.04 只提供 gradle 4.4,为了避免麻烦,一般都需要手动安装高版本的 gradle。目前所有版本 gradle 的下载页面地址为 https://gradle.org/releases 。
修改 kafka 源码中的 build.gradle ,使用阿里云加速构建。
替换国内源后,依赖下载会很快。最后构建进入源码目录,运行构建命令。
构建完成后,生成会在 core/build/distributions/ 下。
4. 部署
4.1. 安装
4.2. 使用 systemd
kafka 运行,依赖于 zookeeper,源码中已经自带了 zookeeper,使用即可。
创建 /etc/systemd/system/zookeeper.service。
创建 /etc/systemd/system/kafka.service。
修改 /usr/local/kafka-server/config/server.properties 配置。
最后设置自启动。
5. 测试
6. 其他
6.1. idea 构建
- 打开 idea,选择 'Import Project'
- 选择 'Import project from external model',选择 gradle
- 在 Gradle Home 中,选择之前下载的 gradle 二进制包路径
- 修改 kafka 源码中的 build.gradle ,使用阿里云替换
- 如果不想使用图形化构建,命令如下