部署kafka消费ROMA中topic的数据进行查看(已开启SASL认证)
1环境准备
1.1准备linux系统环境
1.2安装jdk
wget https://repo.huaweicloud.com/java/jdk/8u192-b12/jdk-8u192-linux-x64.tar.gz
tar -xf jdk-8u192-linux-x64.tar.gz -C /usr/local/
cat >> /etc/profile << 'EOF'
#Set for java
export JAVA_HOME=/usr/local/jdk1.8.0_192
export PATH=$PATH:$JAVA_HOME/bin
EOF
source /etc/profile
java -version
1.3配置hosts
使用SASL方式连接消息集成的Topic时,建议在客户端所在主机的“/etc/hosts”文件中配置host和IP的映射关系,否则会引入时延。
下面的IP地址必须为消息集成的连接地址,host为每个实例主机的名称,可以自定义,但不能重复
cat >> /etc/hosts << 'EOF'
10.10.10.1 host01
10.10.10.2 host02
10.10.10.3 host03
EOF
2下载kafka客户端并安装
2.1下载安装包
下载地址:
1.1.0版本地址: https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz
2.7.2版本地址:
https://archive.apache.org/dist/kafka/2.7.2/kafka_2.12-2.7.2.tgz
若ROMA Connect实例启用了“MQS SASL_SSL”,还需要在ROMA Connect实例控制台的“消息集成 MQS > Topic管理”页面,单击“下载SSL证书”下载
https://mqs-demo.obs.cn-north-1.myhuaweicloud.com/mqs-cert.zip
2.2服务部署
2.2.1解压kafka命令行工具和客户端证书
mkdir /usr/local/kafka/
tar -xvf kafka_2.11-1.1.0.tgz -C /usr/local/kafka/
tar -xvf mqs-cert.zip -C /usr/local/kafka/
2.2.2修改kafka命令行工具配置文件
#配置生产者
cat >> /usr/local/kafka/kafka_2.11-1.1.0/config/producer.properties << 'EOF'
cat >> /usr/local/kafka/kafka_2.11-1.1.0/config/consumer.properties << 'EOF'
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="**********" \
password="**********";
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
ssl.truststore.location=/usr/local/kafka/mqs-cert/client.truststore.jks
ssl.truststore.password=dms@kafka
ssl.endpoint.identification.algorithm=
EOF
#username和password的值分别为Topic所属集成应用的Key和Secret
#ssl.truststore.location的值为1中解压得到的客户端证书的存放路径
#ssl.truststore.password为服务器证书密码,不可更改,值固定设置为dms@kafka
#配置消费者
cat >> /usr/local/kafka/kafka_2.11-1.1.0/config/consumer.properties << 'EOF'
cat >> /usr/local/kafka/kafka_2.11-1.1.0/config/consumer.properties << 'EOF'
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="**********" \
password="**********";
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
ssl.truststore.location=/usr/local/kafka/mqs-cert/client.truststore.jks
ssl.truststore.password=dms@kafka
ssl.endpoint.identification.algorithm=
EOF
2.2.3配置环境变量
cat >> /etc/profile << 'EOF'
#Set for kafka
export KAFKA_HOME=/usr/local/kafka/kafka_2.11-1.1.0
export PATH=$KAFKA_HOME/bin:$PATH
EOF
source /etc/profile
2.2.4创建配置目录,方便命令执行
#由于ROMA中每个topic的用户和密码不同,所有在使用的时候很不方便,每个topic对应相应的用户和密码
#生产者配置文件
mkdir producer.properties
cp /usr/local/kafka/kafka_2.11-1.1.0/config/producer.properties producer.properties/topic1
#消费者配置文件
mkdir consumer.properties
cp /usr/local/kafka/kafka_2.11-1.1.0/config/consumer.properties consumer.properties/topic1
#要使用其他topic,如topic2
cp producer.properties/topic1 producer.properties/topic2
修改topic2文件中的username和password为对应的即可
2.2.5向topic生产消息
kafka-console-producer.sh --broker-list host1:9092,host2:9092,host3:9092 --topic topic1 --producer.config producer.properties/topic1
>msg1
>msg2
#host1:9092,host2:9092,host3:9092为ROMA Connect的消息集成连接地址
2.2.6从topic消费消息
#一个消费者从一个Topic的多个分区消费消息时,一次只能消费一个分区的消息,多个分区会分多次进行消费。
kafka-console-consumer.sh --bootstrap-server host1:9092,host2:9092,host3:9092 --topic topic1 --from-beginning --consumer.config consumer.properties/topic1