Kafka 知识汇总学习

本文详细介绍了Kafka,一种高吞吐量、性能优良的分布式消息队列系统,探讨了其优点如高可用性、容错机制以及与Zookeeper的集成。文章还涵盖了生产者API、消费者API、分区管理、序列化反序列化等关键概念和技术配置。
摘要由CSDN通过智能技术生成

kafka:消息发布队列、具有存储的功能   生产者 消费者
优势:吞吐量高,性能好;
具有良好的伸缩性,支持在线水平扩展;
具有容错性和可靠性;
与大数据生态结合


Kafka 是一个分布式系统,由服务器和客户端组成,它们 通过高性能 TCP 网络协议进行通信。 它可以部署在本地和云中的裸机硬件、虚拟机和容器上 环境。

kafka的消息是以  键值对的形式存储的
一般是三个分区
如果在没有指定key 的情况下,kafka 会以轮询的方式放到分区中
指定key的情况下,会根据key放到指定的分区
三个分区  保证当其中一个坏掉了  其他分区还能正常使用
kafka 通过副本基本,保证数据的可靠性
replication-factor =3  通过这个来设计副本的数量
其中,三个分区中,其中一个当作主分区,也就是leader
写入时 是写入到leader 中,读取的时候也是从leader 中读取的

其他两个副本我们称之为follower ,
follower 用来从leader 中复制数据,
broker 称之为消息代理 broker  负责消息的读写请求,
并把消息写入到磁盘中,
一台服务器 就是一个broker

kafka 依赖zookeeper
所以需要先启动zookeeper  然后在启动 kafka 

kafka  必要配置项:
1.server.properties 必要配置项
broker.id
log.dirs
zookeeper.connect

2. 还有一个重要的配置项就是    监听器 listeners: 指定broker 启动时本机的监听器名称和端口号
listeners: 指定broker 启动时的本机监听端口  ,是给服务端使用的
advertised.listeners: 对外发布的访问ip 和 端口号, 注册到zookeeper 中,给客户端使用

3. 搭建集群环境
此时用的是docker 部署
一个zookeeper 对应三个kafka 的形式
用Linux 下载
 
 通常  kafka 集群部署在内部网络
 
4.分区是最小的并行单位,
一个消费者可以消费多个分区
一个分区可以被多个消费者组里的消费者消费 (是一对多的关系)
5.重点!
生产者 API
 生产消息、同步与异步、消息确认、重试 批量 延迟、事务
 send() 异步发送   异步发送有利于提高生产效率
 异步模型可以理解为 将 快递送到菜鸟驿站 从而提高了送货的效率
 
 另外  kafka 也支持批量发送  设置两个参数最大大小 batch.size  
 延迟时间linger.ms 满足其中一个  就会进行批量的发送
 
 配置 至多一次: Acks = 0  或 Acks = 1 
 至少一次 :Acks = -1   retries >0
 
 消费者API
 
 通常在消息中  加入唯一ID 来保证精确性
 kafka 后来加入了事务
 就是事务的原子性  : 要么全部成功  要么全部失败
 
 isolation-level 事务级别  默认情况下
 default : read_uncommitted  未提交的情况下 也可以读取  也就是脏读
 
 6.kafka 的序列化 和  反序列化
 就是将对象以二进制的方式在网络之间传输或者保存到文件中,
 并可以根据特定的规则进行还原
 object > 二进制  是指的序列化
 二进制 > object  是指的反序列化

 
 优点:节省空间,提高网络传输效率,跨平台,跨语言
 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值