首页 > 其他 > 详细

kafka小记

时间:2019-11-05 22:15:05      阅读:74      评论:0      收藏:0      [点我收藏+]

Kafka小记

基础概念

  1. kafka的数据单元被称为消息,消息可以有一个可选的元数据,也就是键,主要作用是为消息选取分区
  2. kafka的消息通过主题进行分类,主题可以被分为若干个分区,分区中的消息是有序的(通过offset排列)
  3. 生产者是产生数据的客户端,消费者是消费数据的客户端,是消费者群组的一部分,群组保证每个分区的数据只能被一个消费者使用
  4. 一个独立的kafka服务器被称为broker,broker接收来自生产者的消息,为消息设置偏移量,并提交消息到磁盘保存

Kafka和传统的消息系统不同在于:

  1. Kafka是一个分布式系统,易于向外扩展。
  2. 它同时为发布和订阅提供高吞吐量。
  3. 它支持多订阅者,当失败时能自动平衡消费者。
  4. 消息的持久化。

参数的选择

分区数量:一般用主题吞吐量除以消费者吞吐量算出分区的个数
数据保留策略:可以让数据保留一段时间,也可以让数据保留一定数量
磁盘吞吐量:生产者客户端的性能直接受到服务端磁盘吞吐量的影响,磁盘写入速度越快,生成消息的延迟就会越低
磁盘容量:决定能保存的消息总量
内存:服务器端的可用内存影响消费者的性能,一般消费者从内存中直接读取消息要比从磁盘上读取要快得多
需要多少个broker:取决于需要多少磁盘空间(保存数据)和数据处理能力(磁盘吞吐量和内存)

生产者

技术分享图片

向kafka中发送数据,创建ProducerRecord对象,需要包含目标主题和要发送的内容,还可以指定键或分区,若指定分区,则分区器直接把指定分区返回,若没有指定分区,则分区器根据键来确定分区,接着,记录被添加到一个记录批次里,同一个批次将发送到同一主题的同一分区,若消息成功写入kafka,则返回元数据(包含主题分区信息以及记录的偏移量)

生产者可以选择同步发送或异步发送,异步发送吞吐量高
重要配置:acks,指定了必须要多少分区副本收到消息,生产者才会认为数据写入成功,acks=0表示生产者不需要等待;acks=1表示只要集群的首领节点收到消息则生产者就会收到一个来自服务器的成功响应,若没有收到消息的节点成为新首领,消息还是会丢失;acks=all表示只有当所有参与复制的节点全部收到消息,生产者才会收到来自服务器的成功响应

kafka小记

原文:https://www.cnblogs.com/LeonNew/p/11801800.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!