本文介绍如何使用E-MapReduce Kafka的SSL功能。
前提条件
开启SSL服务
Kafka集群SSL功能默认关闭,您可以执行以下步骤开启SSL功能。
- 登录阿里云E-MapReduce控制台。
- 在顶部菜单栏处,根据实际情况选择地域(Region)和资源组。
- 单击上方的集群管理页签。
- 在集群管理页面,单击相应集群所在行的详情。
- 在左侧导航栏单击 。
- 单击配置页签,修改服务配置。
- 将kafka.ssl.enable修改为true。
- 单击保存。
- 在确认修改页面,输入执行原因,开启自动更新配置,单击确定。
- 重启配置。
- 单击右上角的 。
- 在执行集群操作页面,输入执行原因,单击确定。
客户端访问Kafka
客户端通过SSL访问Kafka时需要配置security.protocol、truststore和keystore。以非安全集群为例,如果是在Kafka集群执行作业,可以配置以下信息。
security.protocol=SSL
ssl.truststore.location=/etc/ecm/kafka-conf/truststore
ssl.truststore.password=${password}
ssl.keystore.location=/etc/ecm/kafka-conf/keystore
ssl.keystore.password=${password}
如果是在Kafka集群以外的环境执行作业,可以将Kafka集群中任意节点/etc/ecm/kafka-conf/目录下的truststore和keystore文件,拷贝至运行环境做相应配置。
例如,在Kafka集群中,以Kafka自带的Producer和Consumer程序执行作业。
- 创建配置文件ssl.properties,添加配置项。
security.protocol=SSL ssl.truststore.location=/etc/ecm/kafka-conf/truststore ssl.truststore.password=${password} ssl.keystore.location=/etc/ecm/kafka-conf/keystore ssl.keystore.password=${password}
- 创建Topic。
kafka-topics.sh --zookeeper emr-header-1:2181/kafka-1.0.1 --replication-factor 2 -- partitions 100 --topic test --create
- 使用SSL配置文件产生数据。
kafka-producer-perf-test.sh --topic test --num-records 123456 --throughput 10000 --record-size 1024 --producer-props bootstrap.servers=emr-worker-1:9092 --producer.config ssl.properties
- 使用SSL配置文件消费数据。
kafka-consumer-perf-test.sh --broker-list emr-worker-1:9092 --messages 100000000 --topic test --consumer.config ssl.properties