淄博网站建设培训,南昌推广软件,wordpress drupal 慢,wordpress页面是什么文章首先#xff0c;我要说#xff0c;Kafka 是强依赖于 ZooKeeper 的#xff0c;所以在设置 Kafka 集群之前#xff0c;我们首先需要设置一个 ZooKeeper 集群。 部署ZooKeeper需要安装jdk yum install java-1.8.0-openjdk 安装完以后 下面是详细的步骤#xff1a;
1. 安装和…首先我要说Kafka 是强依赖于 ZooKeeper 的所以在设置 Kafka 集群之前我们首先需要设置一个 ZooKeeper 集群。 部署ZooKeeper需要安装jdk yum install java-1.8.0-openjdk 安装完以后 下面是详细的步骤
1. 安装和配置 ZooKeeper 集群
1.1 下载 ZooKeeper
cd /data1
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.tar.gz1.2 解压缩
tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz
cd /data1/
mkdir kafka
mv apache-zookeeper-3.8.3-bin /data1/kafka/zookeeper1.3 在每台机器上创建 myid 文件并存放在一个特定的目录例如 /data1/zookeeper_data。文件中的内容是每台机器的唯一ID从 1 开始增加。
mkdir /data1/zookeeper_data
echo 1 /data1/zookeeper_data/myid # 对于第二台机器为2第三台为31.4 编辑 ZooKeeper 的配置文件
cd /data1/kafka/zookeeper/conf
cp zoo_sample.cfg zoo.cfg编辑 zoo.cfg:
vi zoo.cfg添加/修改以下内容
dataDir/data1/zookeeper_data
clientPort2181
initLimit10
syncLimit5
tickTime2000
server.1192.142.25.119:2888:3888
server.2192.142.25.120:2888:3888
server.3192.142.25.121:2888:38882. 安装和配置 Kafka 集群
2.1 下载 Kafka
cd /data1
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz2.2 解压缩
tar -zxvf kafka_2.13-3.6.0.tgz
mv kafka_2.13-3.6.0 /data1/kafka/kafka2.3 编辑 Kafka 的配置文件
cd /data1/kafka/kafka/config
vi server.properties添加/修改以下内容
broker.id1 # 对于第二台机器为2第三台为3
zookeeper.connect192.142.25.119:2181,192.142.25.120:2181,192.142.25.121:2181
log.dirs/data1/kafka/kafka-logs2.4 设置 Kafka 的堆内存
export KAFKA_HEAP_OPTS-Xmx2G -Xms2G3. 启动 ZooKeeper 和 Kafka 集群
在每台机器上
# 启动 ZooKeeper先把3台的zookeeper都启动再分别启动kafka
/data1/kafka/zookeeper/bin/zkServer.sh start# 启动 Kafka
/data1/kafka/kafka/bin/kafka-server-start.sh /data1/kafka/kafka/config/server.properties 4. Spring Boot 连接到 Kafka 集群
添加 Maven 依赖
dependencygroupIdorg.springframework.kafka/groupIdartifactIdspring-kafka/artifactIdversionyour_version/version
/dependency配置 application.yml 或 application.properties
spring:kafka:bootstrap-servers: 192.142.25.119:9092,192.142.25.120:9092,192.142.25.121:9092之后你可以使用 KafkaListener 和 KafkaTemplate 来进行消息的消费和生产。
注意以上步骤提供了基本的集群设置可能需要根据实际环境进行适当调整。尤其在生产环境中需要考虑安全性、高可用性和性能优化等问题。 为 Kafka 设置身份验证通常涉及使用 SASL。在这里我将向您展示如何使用 SASL/PLAIN 为 Kafka 设置简单的用户名和密码并为 Spring Boot 提供相应的连接方式。
1. Kafka 设置使用 SASL/PLAIN
1.1. 编辑 Kafka 的 server.properties:
cd /data1/kafka/kafka/config
vi server.properties在文件中添加以下内容
listenersSASL_PLAINTEXT://:9092
security.inter.broker.protocolSASL_PLAINTEXT
sasl.mechanism.inter.broker.protocolPLAIN
sasl.enabled.mechanismsPLAIN1.2. 在 Kafka 配置目录下创建一个 JAAS 配置文件例如 kafka_server_jaas.conf:
vi /data1/kafka/kafka/config/kafka_server_jaas.conf添加以下内容
KafkaServer {org.apache.kafka.common.security.plain.PlainLoginModule requiredusernameadminpasswordadmin-secretuser_adminadmin-secretuser_otheruserotherpassword;
};在这里我们创建了两个用户admin 和 otheruser。
1.3. 在启动 Kafka 之前设置以下环境变量
export KAFKA_OPTS-Djava.security.auth.login.config/data1/kafka/kafka/config/kafka_server_jaas.conf确实当您直接在终端中执行export命令设置环境变量时这些设置只对当前的shell会话有效。当会话结束或您关闭终端时这些设置会丢失。为了让这些设置在每次用户登录或开启新的shell会话时都生效您需要将这些export命令添加到某些特定的shell初始化文件中。
以下是几种常见的shell以及相关的初始化文件 bash: /etc/profile: 所有用户都会执行此文件。~/.bashrc或~/.bash_profile: 只对特定用户生效。 zsh: /etc/zsh/zshenv: 所有用户都会执行此文件。~/.zshrc: 只对特定用户生效。
根据您的需要和所用的shell您可以选择将以下内容添加到相应的文件中
export KAFKA_HEAP_OPTS-Xmx2G -Xms2G
export KAFKA_OPTS-Djava.security.auth.login.config/data1/kafka/kafka/config/kafka_server_jaas.conf例如如果您使用的是bash并希望这些设置对所有用户都生效可以执行以下命令
echo export KAFKA_HEAP_OPTS-Xmx2G -Xms2G | sudo tee -a /etc/profile
echo export KAFKA_OPTS-Djava.security.auth.login.config/data1/kafka/kafka/config/kafka_server_jaas.conf | sudo tee -a /etc/profile或者如果您只希望这些设置对当前用户生效您可以将上述export命令添加到您的~/.bashrc或~/.bash_profile中。
完成上述步骤后您可以通过执行source命令来重新加载配置文件使设置立即生效例如
source /etc/profile或者
source ~/.bashrc这样每次您登录或开启新的shell会话时这些环境变量设置都会自动应用。
1.4. 重启 Kafka 服务器以应用更改。
2. Spring Boot 连接到受密码保护的 Kafka
2.1. 在您的 pom.xml 或 build.gradle 文件中确保已添加了以下依赖
dependencygroupIdorg.springframework.kafka/groupIdartifactIdspring-kafka/artifactIdversionyour_version/version
/dependency2.2. 在 application.yml 或 application.properties 文件中添加以下内容
spring:kafka:bootstrap-servers: 192.142.25.119:9092,192.142.25.120:9092,192.142.25.121:9092consumer:group-id: your-group-idkey-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializerproducer:key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializerproperties:security.protocol: SASL_PLAINTEXTsasl.mechanism: PLAINsasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required usernameadmin passwordadmin-secret;这里我们使用了 admin 用户和对应的密码来连接到 Kafka。根据您的需求调整用户名和密码。
现在您应该能够使用 Spring Boot 连接到受密码保护的 Kafka 集群并进行消息生产和消费。
注意SASL/PLAIN 文本身份验证不提供传输安全性。在生产环境中您应该考虑使用 SSL/TLS 与 SASL/PLAIN 结合来确保数据的机密性和完整性。