Kafka学习

本文详细介绍了Kafka的基本知识,包括安装配置、Kafka概念、创建与消费topic、分区、集群搭建和消费组等内容。还探讨了生产者与消费者的特性,如同步异步发送、ack配置、消息缓冲区、手动与自动提交。此外,文章还涵盖了SpringBoot整合Kafka以及Kafka集群中的关键组件如controller和rebalance。
摘要由CSDN通过智能技术生成

1.kafka的基本知识 

安装及配置 

1部署一台zookeeper,.kafak安装之前需要提前配置jdk

2.然后安装解压后,需要找到config,找到server.properties ,vim编辑内容如下

broker.id=0 表示这台服务器的标识,和zookeeper中的myid类似

listeners=PLATNTEXT://:192.168.217.55(本服务器ip):9092(默认端口号,对外)

log.dirs=/user/localkafka/data/kafka-logs  //存放日志的地址

zookeeper.connect=172.16.253.35:2181(borker的信息存储是无状态的,而这些信息存到哪里呢?存到zookeeper,与zookeeper建立连接)

3.保存退出

4.进入bin文件夹下 启动服务器 ./kafka-server-start.sh -daemon ../config/server.properties

5.ps -aux| grep server.properties//查看是否启动成功(启动的前提必须安装jdk) 

打开连接的zookeeper服务 

ls / 后发现多了一个brokers节点

ls /brokers 里面信息【ids,topics,seqid】

ls/brokers/ids 里面信息【0】发现这是我们配置的kafka的broker.id

kafka基本概念

1.创建topic

1.通过Kafka命令向zookeeper中存储一个topic(主题)

2.发送消息

3.消费消息

方式一不会显示之前发送的信息,只有再次发送才能收到

方式二会显示之前发送的信息。

 

发送消息后消息会被保存到kafka配置文件中自定义日志的文件夹下的topic下的log下

 4.单播消息

 5.多播消息

6.查看消费组及信息

1. 2.

7.分区

 8.kafka集群搭建

 

副本是为了为主题中的分区创建多个备份,多个副本在Kafka集群的多个broker中,会有一个副本作为Leader,其他是follower.

刨析:一共有三个集群,每个集群中的broker分别是broker-0、broker-1、broker-2

同时又有两个主题topic分别是 partition-0、partiton-1

备份三份的意思是:对应每个主题分别一共有三份主题topic

Partition:0 Leader:2 的意思是:主题partition-0 的三个备份topic中第三个(下标从0开始)为主节点Leader作为Leader的topic负责读写操作,然后将数据同步到另外两个topic节点

Partition:1 Leader:0 的意思是:主题partition-1 的三个备份topic中第一个(下标从0开始)为主节点Leader作为Leader的topic负责读写操作,然后将数据同步到另外两个topic节点

 9.集群中发送消费信息**消费组消费信息

  1.分区分消费组的集群消费细节

 

 10.kafka客户端-生产者

1.同步异步发送信息 

 

 2.生产者的ack配置

 

 props.put(ProducerConfig.ACKS_CONFIG,"1");

自定义ack应答类型:有三种

ack=0 :类似异步,发送信息后不需要任何broker收到消息,就立即返回ack给生产者,最容易丢消息,但效率最高

ack=1(默认):多个副本之间的leader收到信息后,并把消息写入本地log中,才会返回ack给生产者,性能和安全性最均衡。(leader收到消息并写入log中,可能副本还没有收到消息,就立即返回,这样如果leader宕机,会造成消息丢失)

ack=-1/all:里面有默认的配置min.insync.relicas=2(默认为1,推荐配置大于等于2,因为此值代表的是副本和leader收到信息的总数,如果为1.只有leader有信息,如果leader宕机,数据丢失。类似ack=1的情况),此时就需要leader和follower同步完成后,才会返回ack给生产者(此时集群中有2个broker已完成数据接收),这种方式最安全,但性能最差。 

 3.关于消息发送的缓冲区

 kafka客户端-消费者

 1.提交

1)提交的内容

 2)自动提交

3)手动提交

 手动提交又分为两种:手动同步提交和手动异步提交

2. 消费者poll消息

 3.消费者的健康状况检查

 4.指定分区和偏移量、时间消费

 

 5.新消费组的消费offset规则

11、springboot整合kafka

1.引入依赖

 

2.编写配置文件

 3.编写消息生产者

 4.编写消息消费者

 注:因为配置的是手动提交所以参数里有ack

 12.kafka集群中的controller、rebalance、HW

 13、Kafka中优化问题

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值