当前位置:首页 > 服务端 > kafka配置步骤整理

kafka配置步骤整理

2022年11月09日 21:50:30服务端6

目录

一、参考

二、java jdk安装配置

三、Zookeeper安装配置

四、Kafka集群搭建

五、测试验证

 

一、参考

http://www.cnblogs.com/luotianshuai/p/5206662.html

https://docs.confluent.io/2.0.0/kafka/ssl.html

http://www.cnblogs.com/huxi2b/p/7382144.html

http://www.cnblogs.com/huxi2b/p/7427815.html

https://blog.csdn.net/jsjsjs1789/article/details/53161985

https://streamsets.com/blog/fast-easy-access-secure-kafka-clusters/

https://docs.confluent.io/2.0.0/kafka/ssl.html

二、java jdk安装配置

(3台都需要执行)

将jdk-8u144-linux-x64.tar.gz 压缩包放到/usr/java目录下

1.      解压缩

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

2.      得到jdk1.8.0_144 文件夹

3  使用vim 编辑 /etc/profile  ,在文件的末尾添加以下语句,配置java环境变量,为后续操作准备

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

export JAVA_HOME=/usr/java/jdk1.8.0_144

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

4.      使 /etc/profile文件生效

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

5.      查看配置是否成功出现这个信息,说明配置成功

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

 

三、Zookeeper安装配置

1.      Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群。

2.      软件环境

(1)centos 虚拟机-我的测试)ip地址

192.168.201.128

192.168.201.130

192.168.201.131

(2)java 环境

(3) 使用的版本 zookeeper-3.4.10.tar.gz

3.在每一台机子上创建zookeeper目录(我是放在/opt目录 )

mkdir zookeeper #项目目录

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

然后进入到zookeeper 目录下创建

mkdir zkdata #存放快照日志

mkdir zkdatalog#存放事物日志

4.下载zookeeper到/opt/zookeeper目录下并解压

得到zookeeper-3.4.10目录

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

5. 修改配置文件

进入到解压好的目录里面的conf目录中,查看

复制其中的zoo_sample.cfg 文件并将其命名为zoo.cfg

注:zoo_sample.cfg 这个文件是官方给我们的zookeeper的样板文件,zoo.cfg是官方指定的文件命名规则。

使用vim 打开zoo.cfg,并修改为如下图所示配置

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

注:

#server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里

#192.168.201.128为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888,然后我将这两个默认的端口改成12888 和13888

#修改dataDir 的值为刚才创建的zkdata目录,这是快照日志的存储路径

#修改dataLogDir 的值为刚才创建的zkdatalog目录,这是事物日志的存储路径

#clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。如2181端口已被使用,则修改他的端口 ,改为12181

 

在每一台服务器上的zkdata目录下创建无后缀名的 myid 文件,

并使用以下命令将serverid写入  myid 文件内

第一台服务器上执行

echo "1" > /opt/zookeeper/zkdata/myid  (执行这行就可以将serverid写入 myid文件内)

第二台服务器上执行

echo "2" > /opt/zookeeper/zkdata/myid

第三台服务器上执行

echo "3" > /opt/zookeeper/zkdata/myid

 

6. 进入到Zookeeper的bin目录下,启动服务(3台都需要操作)

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

每台虚拟机都启动zookeeper服务之后,才能执行以下命令查看zookeeper的状态,出现以下信息则说明启动成功,否则会出现错误信息(需停掉防火墙)。

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

有三种状态

LOOKING:当前Server不知道leader是谁,正在搜寻

LEADING:当前Server即为选举出来的leader

FOLLOWING:leader已经选举出来,当前Server与之同步

zookeeper集群一般只有一个leader,多个follower,leader一般是相应客户端的读写请求,而从主同步数据,当leader挂掉之后就会从follower里投票选举一个leader出来。

 

四、Kafka集群搭建

1、软件环境

1)、linux一台或多台,大于等于2

2)、已经搭建好的zookeeper集群

3)、软件版本kafka_2.11-1.0.1.tgz

2、创建目录并下载安装软件

#创建目录

cd /opt/

mkdir kafka #创建项目目录

cd kafka

mkdir kafkalogs #创建kafka消息目录,主要存放kafka消息

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

将kafka压缩包 放到 /opt/kakfa 目录中,解压软件

  3、修改配置文件

进入到kafka_2.11-1.0.1/config目录,使用vim 修改server.properties  (3台都需要修改)

设置日志文件路径

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

修改的配置项为:

broker.id=0  每台服务器的broker.id都不能相同 我这里 broker.id 是 0,1,20

#hostname

host.name=192.168.201.128 (对应这一台虚拟机的ip地址,这一项是需要添加进去的)

#设置zookeeper的连接端口

zookeeper.connect=192.168.201.128:12181,192.168.201.130:12181,192.168.201.131:12181(这里的ip地址及端口号是之前配置的zookeeper集群的ip地址及端口)

 

4、启动Kafka集群并测试

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记 

进入到kafka的bin目录(3台都需要操作)

./kafka-server-start.sh -daemon ../config/server.properties

执行启动 命令需要server.properties配置文件路径参数

-daemon 为隐藏信息 ,没有这个参数,屏幕会打印kafka启动日志(可能会卡在界面上)

启动后,可以使用jps命令查看服务是否启动 (需要配置java环境变量)

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

看到有Kafka,说明kafka启动成功,或者进入到 /opt/kafka/kafka_2.11-1.0.1/logs 目录下查看server.log 文件,如果出现报错信息,则启动失败,如果在启动过程的最后出现started 说明启动成功

测试

创建一个主题

./kafka-topics.sh --create --zookeeper 192.168.201.128:12181 --replication-factor 1 --partitions 1 --topic test

查看主题

./kafka-topics.sh --list --zookeeper 192.168.201.128:2181

发送消息

./kafka-console-producer.sh --broker-list 192.168.201.128:9092 --topic test

启动消费者接收消息

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

Java 代码可以参考官方的demo

http://kafka.apache.org/11/javadoc/index.html?org/apache/kafka/clients/producer/KafkaProducer.html

这两个类

KafkaProducer

KafkaConsumer

5、配置kafka SSL

创建并进入 /opt/ssl 目录 ,然后执行以下命令

部署HTTPS的第一步是为集群中的每台计算机生成密钥和证书。

使用Java的keytool程序来实现。我们最初将密钥生成到临时密钥库中,以便稍后可以使用CA导出和签名。

(每台服务器上执行以下命令)

keytool -keystore kafka.server.keystore.jks -alias localhost -validity {validity} -genkey

keytool -keystore kafka.client.keystore.jks -alias localhost -validity {validity} -genkey

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

参数:

Keystore : 存储证书的密钥库文件。密钥库文件包含证书的私钥;

Validity : 以天为单位的证书有效时间。这里已经写了365天

First and last name 需要填写服务器的ip地址,比如我的是192.168.201.128

 

创建自己的CA(选择其中某一台服务器执行)

openssl req -new -x509 -keyout ca-key -out ca-cert -days 365

除了密码之外的信息可以不填

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

生成的CA只是一个公私密钥对和证书,并且用于签署其他证书。

将上述步骤生成的ca-cert ca-key这两个文件复制到另外两台服务器上的存放刚才密钥和证书的地方。

 

进入到/opt/ssl目录,将生成的CA添加到客户端的信任库,以便客户端可以信任此CA

keytool -keystore kafka.server.truststore.jks -alias CARoot -import -file ca-cert

keytool -keystore kafka.client.truststore.jks -alias CARoot -import -file ca-cert

 

签署证书

首先,需要从密钥库中导出证书:

keytool -keystore kafka.server.keystore.jks -alias localhost -certreq -file cert-file

然后在CA上签名:

openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days 365 -CAcreateserial -passin pass:961128

365是有效天数,961128 是创建ca的时候的密码

最后,需要将CA的证书和签名证书导入密钥库:

keytool -keystore kafka.server.keystore.jks -alias CARoot -import -file ca-cert

keytool -keystore kafka.server.keystore.jks -alias localhost -import -file cert-signed

配置config/server.properties 文件

每台服务器上在server.properties文件中都添加如下配置 ,配置在如下位置:

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

listeners=SSL://192.168.201.130:9093(这个ip地址分别改为每台服务器的地址)

advertised.listeners=SSL://192.168.201.130:9093(这个ip也是)

ssl.keystore.location=/opt/ssl/kafka.server.keystore.jks (这是存放)

ssl.keystore.password=961128

ssl.key.password=961128

ssl.truststore.location=/opt/ssl/kafka.server.truststore.jks

ssl.truststore.password=961128

ssl.client.auth=required

ssl.keystore.type=JKS 

ssl.truststore.type=JKS 

security.inter.broker.protocol = SSL

 

要验证服务器的密钥库和信任库是否安装正确,可以运行以下命令:

openssl s_client -debug -connect localhost:9093 -tls1

localhost 改为本服务器ip地址

应该出现类似下面的输出

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

 

五、测试验证

配置完成后,可进行如下测试

1.创建一个主题,看到提示Created  **** ,说明创建成功

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

./kafka-topics.sh --create –-zookeeper 192.168.201.128:12181,192.168.201.130:12181,192.168.201.131:12181 --replication-factor 1 --partitions 1 --topic bbb

2.在当前/bin文件夹下创建producer.properties,用于在命令行中测试ssl机制(3台服务器都需要)

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

3.      在其中一台服务器上使用kafka提供的producer命令测试生产消息

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

./kafka-console-producer.sh --broker-list 192.168.201.128:9093,192.168.201.130:9093,192.168.201.131:9093 --topic bbb  --producer.config producer.properties

4.      在另外两台服务上使用如下命令测试能否消费信息

kafka配置步骤整理 _ JavaClub全栈架构师技术笔记

./kafka-console-consumer.sh --bootstrap-server 192.168.201.128:9093,192.168.201.130:9093,192.168.201.131:9093 --topic bbb  --consumer.config producer.properties

5.能生产消息,以及消费消息,说明SSL配置成功

 

 

作者:周雄伟
来源链接:https://blog.csdn.net/ebzxw/article/details/81512117

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/69024.html

标签: Kafka
分享给朋友:

“kafka配置步骤整理” 的相关文章

windows下kafka搭建

windows下kafka搭建

一、什么是kafka Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据, 功能相同的还有Rabbitmq 、ActiveMQ 。 二、术语介绍 Bro...

Kafka启动报错 : ERROR Processor got uncaught exception

Kafka启动报错 : ERROR Processor got uncaught exception

参照我之前的一篇博文Kafka学习之(二)Centos下安装Kafka安装了kafka并启动,状况并不像我之前最初的预期,报错了,并且我在当前Linux环境下安装的Java版本、Kafka版本都是和之前博文一样的,第一感觉难道是因为Linux(Centos)的版本不一致??? ...

Kafka 安装和测试

Kafka 安装和测试

1. 简介 kafka (官网地址: http://kafka.apache.org)是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。 i. 消息的发布(publish)称作produ...

Kafka中错误:Unrecognized VM option ‘UseCompressedOops’ Error: Clould not create the Java Vritual Machine. Error: A fatal exception has occurres . Program will exit.

Kafka中错误:Unrecognized VM option ‘UseCompressedOops’ Error: Clould not create the Java Vritual Machine. Error: A fatal exception has occurres . Program will exit.

     错误的描述:   在kafka安装目录下,执行 $ bin/zookeeper-server-start.sh config/zookeeper.properties &    Unrecognized VM op...

mac/linux 下kafka安装

Kafka安装和配置,依赖zookeeper  安装和启动zookeeper (1)下载 http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar...

查询linux kafka安装目录,Kafka 1.0.0安装和配置--Linux篇

阅读目录: 1. 关闭防火墙和Selinux 2. 安装所需环境JDK,Zookeeper 3. 下载Kafka 1.0.0版本 4. 配置Kafka 5. 启动Kafka并验证 6. 报错及解决 7. 说明...

Kafka 环境安装与使用

Kafka 环境安装与使用

Kafka 环境安装 1.上传及解压 tar zxvf /opt/software/kafka_2.11-0.11.0.2.gz -C /opt/install/ 2.创建软连接和环境变量[可选] cd /opt/install...

Kafka系列:Kafka安装完整步骤

Kafka系列:Kafka安装完整步骤

目录 下载 修改配置 启动 #启动ZK #启动Kafka 验证 #查看分片情况   前提:安装JDK1.8   下载 http://kafka.apache.org/downloa...

Kafka安装教程(详细过程)

Kafka安装教程(详细过程)

安装前期准备: 1,准备三个节点(根据自己需求决定) 2,三个节点上安装好zookeeper(也可以使用kafka自带的zookeeper) 3,关闭防火墙 chkconfig  iptables off   一、下载安装包...

Kafka(一) 安装与配置

Kafka(一) 安装与配置

       Kafka最初由LinkedIn公司开发,后来成为Apache项目的一部分,是一个可水平扩展、高吞吐量、分布式的发布-订阅消息系统,一个基于ZooKeeper协调管理的分布式流式处理平台,其核心模块使用Scala语言开发,支持...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。