步骤一:准备环境
虚拟私有云
虚拟私有云(Virtual Private Cloud,以下简称VPC)为Kafka实例提供一个隔离的、用户自主配置和管理的虚拟网络环境。
- 在创建Kafka实例前,确保已存在可用的虚拟私有云和子网。
创建方法,请参考创建虚拟私有云和子网。如果您已有虚拟私有云和子网,可重复使用,不需要多次创建。
在创建VPC和子网时应注意如下要求:
- 创建的VPC与使用的Kafka服务应在相同的区域。
- 创建VPC和子网时,配置参数建议使用默认配置。
- 在创建Kafka实例前,确保已存在可用的安全组。
创建方法,请参考创建安全组。如果您已有安全组,可重复使用,不需要多次创建。
在创建安全组时应注意如下要求:
- 创建安全组时,“模板”选择“自定义”。
- 使用Kafka实例必须添加表1所示安全组规则,其他规则请根据实际需要添加。
表1 安全组规则 方向
协议
端口
源地址
说明
入方向
TCP
9094
0.0.0.0/0
通过公网访问Kafka实例(关闭SSL加密)。
入方向
TCP
9092
0.0.0.0/0
使用内网通过同一个VPC访问Kafka实例(关闭SSL加密)。
入方向
TCP
9095
0.0.0.0/0
通过公网访问Kafka实例(开启SSL加密)。
入方向
TCP
9093
0.0.0.0/0
使用内网通过同一个VPC访问Kafka实例(开启SSL加密)。
入方向
TCP
9999
0.0.0.0/0
访问Kafka Manager。
安全组创建后,系统默认添加入方向“允许安全组内的弹性云服务器彼此通信”规则和出方向“放通全部流量”规则。此时使用内网通过同一个VPC访问Kafka实例,无需添加表1的规则。
(可选)弹性IP地址
如果需要通过公网访问Kafka实例,请提前准备弹性IP地址。
创建方法,请参考申请弹性公网IP。
在创建弹性IP地址时应注意如下要求:
- 创建的弹性IP地址与Kafka实例在相同的区域。
- 弹性IP地址的数量必须与Kafka实例的代理个数相同。
- Kafka控制台无法识别开启IPv6转换功能的弹性IP地址。
弹性云服务器
在连接Kafka实例之前,需要先创建弹性云服务器(Elastic Cloud Server,以下简称ECS),JDK安装、环境变量配置以及Kafka开源客户端下载。本文以Linux系统的ECS为例,Windows系统ECS的JDK安装与环境变量配置可自行在互联网查找相关帮助。
- 登录管理控制台,在左上角单击,选择“计算 > 弹性云服务器”,创建一个ECS实例。
具体创建操作,请参考创建弹性云服务器。如果您已有可用的ECS,可重复使用,不需要再次创建。
- 登录弹性云服务器。
- 安装Java JDK或JRE,并配置JAVA_HOME与PATH环境变量,使用执行用户在用户家目录下修改“.bash_profile”,添加如下行。其中“/opt/java/jdk1.8.0_151”为JDK的安装路径,请根据实际情况修改。
export JAVA_HOME=/opt/java/jdk1.8.0_151 export PATH=$JAVA_HOME/bin:$PATH
执行source .bash_profile命令使修改生效。
ECS默认自带的JDK可能不符合要求,例如OpenJDK,需要配置为Oracle的JDK,可至Oracle官方下载页面下载Java Development Kit 1.8.111及以上版本。
- 下载开源的Kafka客户端。
对应1.1.0版本实例的下载地址:https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz
wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz
对应2.3.0版本实例的下载地址:https://archive.apache.org/dist/kafka/2.3.0/kafka_2.11-2.3.0.tgz
wget https://archive.apache.org/dist/kafka/2.3.0/kafka_2.11-2.3.0.tgz
对应2.7版本实例的下载地址:https://archive.apache.org/dist/kafka/2.7.2/kafka_2.12-2.7.2.tgz
wget https://archive.apache.org/dist/kafka/2.7.2/kafka_2.12-2.7.2.tgz
- 解压Kafka客户端文件。
tar -zxf ${kafka_tar}
“kafka_tar”表示客户端的压缩包名称。例如:
tar -zxf kafka_2.12-2.7.2.tgz