3台Centos7快速部署Kafka集群

这篇具有很好参考价值的文章主要介绍了3台Centos7快速部署Kafka集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先,我要说,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.gz

1.2 解压缩:

tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz
cd /data1/
mkdir kafka
mv apache-zookeeper-3.8.3-bin /data1/kafka/zookeeper

1.3 在每台机器上创建 myid 文件,并存放在一个特定的目录,例如 /data1/zookeeper_data。文件中的内容是每台机器的唯一ID,从 1 开始增加。

mkdir /data1/zookeeper_data
echo "1" > /data1/zookeeper_data/myid # 对于第二台机器为2,第三台为3

1.4 编辑 ZooKeeper 的配置文件:

cd /data1/kafka/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

编辑 zoo.cfg:

vi zoo.cfg

添加/修改以下内容:

dataDir=/data1/zookeeper_data
clientPort=2181
initLimit=10
syncLimit=5
tickTime=2000
server.1=192.142.25.119:2888:3888
server.2=192.142.25.120:2888:3888
server.3=192.142.25.121:2888:3888

2. 安装和配置 Kafka 集群

2.1 下载 Kafka:

cd /data1
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz

2.2 解压缩:

tar -zxvf kafka_2.13-3.6.0.tgz
mv kafka_2.13-3.6.0 /data1/kafka/kafka

2.3 编辑 Kafka 的配置文件:

cd /data1/kafka/kafka/config
vi server.properties

添加/修改以下内容:

broker.id=1 # 对于第二台机器为2,第三台为3
zookeeper.connect=192.142.25.119:2181,192.142.25.120:2181,192.142.25.121:2181
log.dirs=/data1/kafka/kafka-logs

2.4 设置 Kafka 的堆内存:

export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G"

3. 启动 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 依赖:

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
    <version>your_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

之后,你可以使用 @KafkaListenerKafkaTemplate 来进行消息的消费和生产。

注意:以上步骤提供了基本的集群设置,可能需要根据实际环境进行适当调整。尤其在生产环境中,需要考虑安全性、高可用性和性能优化等问题。




为 Kafka 设置身份验证通常涉及使用 SASL。在这里,我将向您展示如何使用 SASL/PLAIN 为 Kafka 设置简单的用户名和密码,并为 Spring Boot 提供相应的连接方式。

1. Kafka 设置使用 SASL/PLAIN:

1.1. 编辑 Kafka 的 server.properties:

cd /data1/kafka/kafka/config
vi server.properties

在文件中添加以下内容:

listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

1.2. 在 Kafka 配置目录下创建一个 JAAS 配置文件,例如 kafka_server_jaas.conf:

vi /data1/kafka/kafka/config/kafka_server_jaas.conf

添加以下内容:

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret"
    user_admin="admin-secret"
    user_otheruser="otherpassword";
};

在这里,我们创建了两个用户:adminotheruser

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以及相关的初始化文件:

  1. bash:

    • /etc/profile: 所有用户都会执行此文件。
    • ~/.bashrc~/.bash_profile: 只对特定用户生效。
  2. 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.xmlbuild.gradle 文件中确保已添加了以下依赖:

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
    <version>your_version</version>
</dependency>

2.2. 在 application.ymlapplication.properties 文件中添加以下内容:

spring:
  kafka:
    bootstrap-servers: 192.142.25.119:9092,192.142.25.120:9092,192.142.25.121:9092
    consumer:
      group-id: your-group-id
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
    properties:
      security.protocol: SASL_PLAINTEXT
      sasl.mechanism: PLAIN
      sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";

这里我们使用了 admin 用户和对应的密码来连接到 Kafka。根据您的需求调整用户名和密码。

现在,您应该能够使用 Spring Boot 连接到受密码保护的 Kafka 集群并进行消息生产和消费。

注意:SASL/PLAIN 文本身份验证不提供传输安全性。在生产环境中,您应该考虑使用 SSL/TLS 与 SASL/PLAIN 结合来确保数据的机密性和完整性。文章来源地址https://www.toymoban.com/news/detail-715714.html

到了这里,关于3台Centos7快速部署Kafka集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据技术栈-Hadoop3.3.4-完全分布式集群搭建部署-centos7(完全超详细-小白注释版)虚拟机安装+平台部署

    目录 环境条件: 1、安装虚拟机(已安装好虚拟机的可跳转至  二、安装JDK与Hadoop) (1)直接新建一台虚拟机 (2)首次启用虚拟机,进行安装 一、集群前置环境搭建(三台机器分别设置hostname、网卡(ip)配置、ssh免密登录) 1、查看一下本机与虚拟机的网卡和ip信息 (1)

    2024年02月06日
    浏览(41)
  • CentOS7安装Zookeeper分布式集群

    前言 ZooKeeper 是一个开源的分布式协调服务框架,主要用于分布式系统中的数据同步、配置管理、集群控制和命名服务等方面的处理。本文在3个系统为CentOS7的Linux节点上配置了Zookeeper分布式集群,安装配置的过程均在普通用户 sxZhang 的账户上完成,安装路径为 ~/bigdata ,3个

    2024年01月17日
    浏览(45)
  • 【分布式应用】kafka集群、Filebeat+Kafka+ELK搭建

    主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。 我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队

    2024年02月16日
    浏览(28)
  • spark 基于物理机centos7环境搭建分布式集群

    非生产环境,就使用一个新一点的版本,提前先踩踩坑,版本的选型真是一个头疼的问题,先看一下apache的官网的测试图: 伪分布式看这里: 配置之前:若是用伪分布式时,在本机必须生成key-gen 与ssh-copy-id到本机,且hosts中必须加入127.0.0.1  本机名并关闭防火墙这几步才可

    2024年02月03日
    浏览(55)
  • HBase集群搭建记录 | 云计算[CentOS7] | HBase完全分布式集群搭建

    本系列文章索引以及一些默认好的条件在 传送门 默认使用master节点并用root用户登录终端进行操作 文章难免会有点小bug,如果有显而易见的错误,比如没有创建文件夹时就已经开始在该文件夹下操作,还请读者自行创建~ 官网下载地址 博主因为课程需要以及版本问题,下载的

    2023年04月23日
    浏览(59)
  • 分布式应用之zookeeper集群+消息队列Kafka

           ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。为分布式框架提供协调服务的

    2024年02月06日
    浏览(46)
  • 分布式消息流处理平台kafka(一)-kafka单机、集群环境搭建流程及使用入门

    kafka最初是LinkedIn的一个内部基础设施系统。最初开发的起因是,LinkedIn虽然有了数据库和其他系统可以用来存储数据,但是缺乏一个可以帮助处理持续数据流的组件。 所以在设计理念上,开发者不想只是开发一个能够存储数据的系统,如关系数据库、Nosql数据库、搜索引擎等

    2024年02月16日
    浏览(37)
  • Hadoop集群搭建记录 | 云计算[CentOS7] | 伪分布式集群 Master运行WordCount

    本系列文章索引以及一些默认好的条件在 传送门 首先需要明确eclipse安装目录,然后将hadoop-eclipse-plugin_版本号.jar插件放在安装目录的dropins下 关于插件,可以通过博主上传到csdn的免费资源获取,链接 具体版本可以自己选择: 在eclipse界面中依次选择:Window→show view→other→

    2023年04月09日
    浏览(56)
  • 三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(一)

    这个是笔者大学时期的大数据课程使用三台CentOS7.6虚拟机搭建完全分布式集群的案例,已成功搭建完全分布式集群,并测试跑实例。 1.1安装完虚拟机发现没有sudo命令和hadoop用户执行命令失败 我在安装CentOS 7.6虚拟机后,我发现不能执行sudo命令,同时hadoop用户执行命令失败。

    2024年02月03日
    浏览(45)
  • CentOS7中新版本自带zookeeper搭建Kafka集群

    一、zookeeper在kafka中的具体作用     它是一个分布式协调框架。很好的将消息生产、消息存储、消息消费的过程结合在一起。在典型的Kafka集群中,Kafka通过Zookeeper管理集群控制,选举leader,以及在Consumer Group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Con

    2024年02月08日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包