目录

1、Kafka下载

2、安装 Zookeeper

3、安装 Kafka

4、spring boot 整合Kafka

5、使用 kraft 注册中心


1、Kafka下载

进行 Kafka官网 下载 kafka

wget https://downloads.apache.org/kafka/3.1.0/kafka_2.12-3.1.0.tgz

2、安装 Zookeeper

Zookeeper 集群搭建

可以不使用 zookeeper 集群,单节点 zookeeper 即可。

        后面会有 kraft 作为注册中的说明,不想使用zookeeper的可以使用 kraft 。

3、安装 Kafka

使用tar命令解压 kafka_2.12-3.1.0.tgz,通过 -C 指定 kafka 的安装目录。

在 Kafka 根目录下创建 data 文件夹,存放数据文件

[root@server01 software]# tar -zxvf kafka_2.12-3.1.0.tgz -C /usr/local[root@server01 software]# cd /usr/local/kafka_2.12-3.1.0/[root@server01 kafka_2.12-3.1.0]# mkdir data

修改Kafka 的配置文件 server.properties

[root@server01 kafka_2.12-3.1.0]# vi config/server.properties

每台服务器的 broker.id 必须唯一,host.name=ip 是新增的一行配置,避免本来连接虚拟机中的Kafka服务器报错。

在配置zookeeper 的连接地址时,后面需要加上 /kafka ,这样Kafka 的相关配置就在zookeeper的 /kafka 节点下。

Kafka 集群的IP分别是192.168.19.11、192.168.19.12、192.168.19.11,对应如下:

Kafka 01 配置:

broker.id=1
        host.name=192.168.19.11
        listeners=PLAINTEXT://192.168.19.11:9092
        advertised.listeners=PLAINTEXT://192.168.19.11:9092
        zookeeper.connect=192.168.19.11:2181,192.168.19.12:2181,192.168.19.13:2181/kafka

Kafka 02 配置:

broker.id=2
        host.name=192.168.19.12
        listeners=PLAINTEXT://192.168.19.12:9092
        advertised.listeners=PLAINTEXT://192.168.19.12:9092
        zookeeper.connect=192.168.19.11:2181,192.168.19.12:2181,192.168.19.13:2181/kafka

Kafka 03 配置:

broker.id=3
        host.name=192.168.19.13
        listeners=PLAINTEXT://192.168.19.13:9092
        advertised.listeners=PLAINTEXT://192.168.19.13:9092
        zookeeper.connect=192.168.19.11:2181,192.168.19.12:2181,192.168.19.13:2181/kafka

分别启动 Kafka 服务,启动成功后,我们可以使用jps 查看启动情况,也可以通过 Kafka 日志查看 Kafka 是否启动成功,Kafka 日志文件在 Kafka 根目录下 logs/server.log。

[root@server01 kafka_2.12-3.1.0]# sh bin/kafka-server-start.sh -daemon config/server.properties

使用 PrettyZoo 连接zookeeper,查看 Kafka 注册情况

PrettyZoo GitHub 地址:GitHub PrettyZoo

PrettyZoo 下载地址:Releases · vran-dev/PrettyZoo · GitHub

ids 分别代表启动的三台 Kafka 服务器,topics 是Kafka 集群上的所有 topic。

4、spring boot 整合Kafka

新建 Spring Boot 项目

引入 kafka 整合 spring 的依赖

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

application.yml 配置

server:port: 10009
spring:application:name: spring-boot-kafkakafka:bootstrap-servers: 192.168.19.11:9092,192.168.19.12:9092,192.168.19.13:9092producer:retries: 3 # 客户端会发送失败重试次数batch-size: 16384 #16Kbuffer-memory: 33554432 #32M# 指定消息key和消息体的编码方式key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializerconsumer:group-id: consumer-group # 消费者组key-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializer

使用 KafkaTemplate 发送一条简单的MQ 消息

@RestController
@RequestMapping("/kafka")
public class KafkaTopicController {@Resourceprivate KafkaTemplate<String,String> kafkaTemplate;@RequestMapping("/sendMessage")public void sendMessage(){String topic = "order-topic";kafkaTemplate.send(topic,"{orderId:1}");}
}

使用 @KafkaListener(topics = {"order-topic"}) 配置监听的topic。

@Slf4j
@Component
public class KafkaTopicListener {@KafkaListener(topics = {"order-topic"})public void receiveMessage(String message){log.info("接收到的消息:{}" , message);}
}

访问 127.0.0.1:10009/kafka/sendMessage 测试 Kafka 消息是否发送成功。

在 zookeeper 上,我们可以看到刚刚我们新创建的 order-topic ,Kafka 配置文件中,分区数配置的是1 ,num.partitions=1 ,所以 order-topic 下只有一个分区。

代码地址:

GitHub spring-boot/spring-boot-kafka

5、使用 kraft 注册中心

Kafka决定未来弃用zookeepr已经有很长时间了,从Kafka 2.8开始,官方提出了Kraft模式,使用raft算法。不过目前仍然处于测试阶段,生产上不建议使用
        使用Kraft模式,元数据会存储再controller节点中的KRaft quorum中。相比与zookeeper模式,Kraft模式更加容易扩展。

KRaft mode in Kafka 3.1 is provided for testing only, NOT for production. We do not yet support upgrading existing ZooKeeper-based Kafka clusters into this mode.

There may be bugs, including serious ones. You should assume that your data could be lost at any time if you try the preview release of KRaft mode.

下面,我会根据官方给出的文档,搭建一个Kraft集群。

KRaft 相关的文档和配置,都在 kafka_2.12-3.1.0/config/kraft 目录下面

在 kafka_2.12-3.1.0 目录下创建 kraft-combined-logs 文件夹存储数据文件。

启动KRaft集群,需要执行以下操作:

(1)、修改kraft/server.properties
       (2)、生成一个cluster ID
       (3)、格式化存储目录
       (4)、启动Kafka服务

1、修改kraft/server.properties

node.id=1

controller.quorum.voters=1@192.168.19.11:9093,2@192.168.19.12:9093,3@192.168.19.13:9093

listeners=PLAINTEXT://192.168.19.11:9092,CONTROLLER://192.168.19.11:9093

inter.broker.listener.name=PLAINTEXT

log.dirs=/app/kafka-3.1.0/kraft-combined-logs

2、生成一个cluster ID

[root@server01 kafka_2.12-3.1.0]# ./bin/kafka-storage.sh random-uuid

3、格式化存储目录

[root@server01 kafka_2.12-3.1.0]# ./bin/kafka-storage.sh format -t jkrwjNohQKm2iVf4ttheQQ -c ./config/kraft/server.properties

4、启动Kafka服务

[root@server01 kafka_2.12-3.1.0]# ./bin/kafka-server-start.sh ./config/kraft/server.properties

CentOS 搭建Kafka集群相关推荐

  1. Docker搭建Kafka集群

    对于个人开发者而言,一般手头上没有多台服务器,有人可能会有云服务器,不过一般也只会买一台来用用就好:有人可能更习惯将本机当作服务器来玩.都可以.那么如何通过一台服务器或本机来搭建Kafka集群呢? 无 ...

  2. 单机 搭建kafka集群 本地_单机快速搭建多节点kafka集群

    有时候为了更好地了解kafka集群的运行机制,需要自己搭建kafka集群.本文的目的就是让大家在单机上快速搭建kafka集群(仅作为单机测试使用). 环境及工具版本 mac OS 10.15.5 ka ...

  3. Mac 使用 docker 搭建 kafka 集群 + Zookeeper + kafka-manager

    Kafka 搭建: 建立Zookeeper容器: 这里我们用最简单的方式创建一个独立的Zookeeper节点,如果要考虑zookeeper的高可用,可以将其做成一个集群,最好是能有多台机器. $ do ...

  4. 搭建Kafka集群环境

    计划使用三台主机:11.12.112.206.11.12.112.207.11.12.112.208搭建Kafka集群环境, 使用的zookeeper集群为:11.12.112.215:2181,11 ...

  5. docker环境,搭建kafka集群

    https://zhuanlan.zhihu.com/p/114968151 docker环境,搭建kafka集群

  6. 单机 搭建kafka集群 本地_10分钟搭建单机Kafka集群

    单机版kafka集群有什么作用 练习上手用. 搭建zookeeper集群首先下载zookeeper解压 apache zookeeper tar -zxvf apache-zookeeper-3.5. ...

  7. Kafka:搭建Kafka集群

    博主在之前已经介绍过如何部署Kafka,Kafka的部署模式只有集群模式,Kafka的架构本就是天然的集群架构,因此单节点的部署和多节点的部署是类似的. 集群节点: 节点 地址 ZooKeeper 1 ...

  8. Linux 搭建Kafka集群,最新教程,细到极致

      大家好呀,今天给大家带来的是,最新版kafka集群的安装教程,希望给小伙伴们一点小小的帮助. 注意:提前安装好jdk, Jdk安装教程 1.准备安装包,Kafka官网下载 2.kafka安装需要z ...

  9. docker-compose快速搭建kafka集群

    文章目录 前言 docker-compose快速搭建kafka集群(较详细) docker-compose快速搭建Zookeeper集群+kafka集群 参考资料 前言 当前是在学习kafka3.0的 ...

最新文章

  1. 专业的java培训机构是否靠谱,对比一下就知道了!
  2. 如何让自己在云服务器上部署的项目一直运行
  3. apache commons常用工具类
  4. ML 自学者周刊:第 2 期
  5. httpHandlers和httpModules接口介绍 (7)
  6. 神经网络的基本工作原理
  7. kubenetes 1.4 安装后8080端口无法访问
  8. merge into用法mysql_Oracle MERGE INTO的用法示例介绍
  9. 2015美团校招面试总结
  10. Windows 11 上手机!小米 8、一加 6T、微软 Lumia 950 XL 都可以运行
  11. Kubernetes 健康状态检查(九)
  12. 火车头V9翻译插件-终极稳定版(翻译10000篇文章不报错)
  13. MoverScore: Text Generation Evaluating with Contextualized Embeddings and Earth Mover Distance
  14. python返回索引值_python 返回列表中某个值的索引方法
  15. [转载]某大学生写给女朋友的信~爆笑!
  16. Java使用mpxj导入.mpp格式的Project文件(甘特图)
  17. 兼容最新版浏览器的陀螺仪的心得
  18. 计算机/软件专业课【考一门】的211学校集合!
  19. cordic的FPGA实现(三)sin、cos函数运算与源码分析
  20. “记健康”完成6000万元天使融资,以大数据驱动人工智能建立精准健康管理

热门文章

  1. Android DNS解析的过程
  2. 【亡羊补牢】JS灵魂之问 第18期 修炼内功 Object.creat()基础
  3. 10米分辨率土地利用图LUCC的下载、出图
  4. Flume-NG源码分析-整体结构及配置载入分析
  5. 混音器(AudioMixer)
  6. docker安装redis主从复制模式
  7. 如何根据一张图片,转换到3D图
  8. 计算机网络—— 3.9以太网交换机自学习和转发帧的流程
  9. 欢迎访问我的网站——翔宇亭IT乐园
  10. 《惢客创业日记》2020.08.18(周二)一包沙子的救赎