EC2 Connect MSK

EC2 Connect MSK

一、名称解释

EC2:虚拟计算环境,也称为实例,一台虚拟的电脑

MSK:是AWS公司旗下一项完全托管式服务,让您能够构建并运行使用 Apache Kafka 来处理串流数据的应用程序,即中间件

JDK: 运行JAVA程序所需要的服务器软件(java development kit Java开发工具包

cacerts:java当中用于SSL安全证书交互的证书库

SASL/SCRAM: Kafka安全认证机制

二、需要准备的
  1. 申请相关EC2的AWS账号权限,需要MSK审核人员将需要接收的账号添加入白名单环境当中

    • 将AWS账号添加到白名单当中(12位的AWS账号ID)

    • 所处的MSK消费环境 DEV、TEST、PROD…

    • 所需要消费的Topic

  2. 申请SASL/SCRAM 身份验证账号跟密码

  3. 在EC2当中下载Kafka https://archive.apache.org/dist/kafka/2.2.2/kafka_2.12-2.2.2.tgz

当以上所需要的先决条件准备好之后进行具体接收MSK消息

三、命令行形式消费MSK

EC2 version:ubuntu-bionic-18.04

  1. 安装JDK

    # 1.查看合适的JDK版本
    > apt-cache search openjdk
    
    # 2.下载JDK (这里下载的是JDK8)
    > apt-get install openjdk-8-jdk
    
    # 3.添加环境变量
    > vim ~/.bashrc
    	#在打开的文件编辑窗口追加JDK位置命令行(jdk所在的默认位置,具体查看jdk所在位置)
    	export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    	export PATH=$JAVA_HOME/bin:$PATH
    	export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    # 4.验证JDK部署完成
    > java -version
    
  2. 安装Kafka

    1. 在主页创建kafka文件夹

      > cd /
      > mkdir kafka
      > cd ./kafka
      
    2. 下载kafka的压缩包

      > wget https://archive.apache.org/dist/kafka/2.2.2/kafka_2.12-2.2.2.tgz
      
    3. 进行解压

      > tar zxvf kafka_2.12-2.2.2.tgz
      
    4. UserName和Password身份验证AWSSecrets Manager

      4.1 我们在AWS中连接的MSK是需要验证的,即有密码的Kafka服务。将cacerts文件复制到kafka文件当中来。SASL验证说明使用进行用户名和密码身份验证AWSSecrets Manager - Amazon Managed Streaming for Apache Kafka

      每台服务器的jdk位置不相同,需要先查找当前电脑的jdk位置(echo $JAVA_HOME)

​ 4.2 当前下载的jdk cacerts文件所在的目录为/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts,将它拷贝到当前目录下

> cd /
> cp /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts /kafka/kafka.truststore.jks

​ 4.3 创建jass.conf文件并加入凭证

> cd kafka
#新建jaas.conf文件用于存放账号密码
>touch jaas.conf
>vim jaas.conf
#加入以下内容,账号密码为申请消费MSK的凭证
KafkaClient {
	org.apache.kafka.common.security.scram.ScramLoginModule required
	username="your username"
	password="your password";
};

​ 4.4 在Kafka脚本所在的/bin文件夹中创建一个名为client.properties的新配置文件,后续Kafka应用SASL的消费凭证

security.protocol=SASL_SSL
sasl.mechanism=SCRAM-SHA-512
ssl.truststore.location=/kafka/kafka.truststore.jks

​ 4.5 指定SAL验证的密钥文件

> cd /
> export KAFKA_OPTS=-Djava.security.auth.login.config=/kafka/jaas.conf

这里是通过环境变量的形式进行添加,在当次登陆登录服务器有效,推出后需再次添加环境变量

​ 4.6上述步骤将AWSSecrets Manager验证已签证,接下来只需要运行消费者方,通过CMD形式消费Topic数据。

#进入Kafka的bin目录
>cd /
>cd kafka/kafka_***_***/bin			#此处为kafka版本
# 指定想要消费的服务器地址,查看当前服务器Topics list
>./kafka-topics.sh --bootstrap-server b-1.eshcluster.duhu2q.c2.kafka.cn-north-1.amazonaws.com.cn:9096 --list --command-config client.properties				
# 选择topic进行消费
>./kafka-console-consumer.sh --bootstrap-server b-1.eshcluster.duhu2q.c2.kafka.cn-north-1.amazonaws.com.cn:9096 --consumer.config client.properties --topic TestingTopic

上诉Kafka消费方式默认从当前接入时刻进行消费,如果需消费历史数据,需要添加 --from-beginning

./kafka-console-consumer.sh --bootstrap-server b-1.eshcluster.duhu2q.c2.kafka.cn-north-1.amazonaws.com.cn:9096 --consumer.config client.properties --topic TestingTopic --from-beginning

​ 至此已经可以通过命令行形式消费MSK指定Topic数据了

四、Spring Boot程序消费MSK

​ 1.编写Java程序

​ 2.将Springboot程序打包(.jar包)(Maven中依次选中 clear、compile、package)

​ 3.通过XShell将我们打好的jar上传到服务器上

​ 4.启动程序进行消费

java -jar KafakOpenSearch.jar --spring.profiles.active=dev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值