kafka
文章平均质量分 54
wilson_go
这个作者很懒,什么都没留下…
展开
-
Kafka重要特性---幂等性
幂等性数学概念f(f(x)) = f(x) 。f函数表示对消息的处理。比如,银行转账,如果失败,需要重试。不管重试多少次,都要保证最终结果⼀定是⼀致的。保证在消息重发的时候,消费者不会重复处理。即使在消费者收到重复消息的时候,重复处理,也要保证最终结果的⼀致性。为啥需要幂等性问题Producer在生产发送消息时,难免会重复发送消息。Producer进行retry时会产生重试机制,发生消息重复发送。而引入幂等性后,重复发送只会生成一条有效的消息。Kafka作为分布式消息系统,它的使用场景常见与分布式系统原创 2022-08-06 18:58:14 · 468 阅读 · 0 评论 -
kafka的epoch
Leaderepoch(1,120)说明这个leader的版本号为1,版本的起始位置是第120条消息开始的KafkaBroker会在内存中为每个分区都缓存LeaderEpoch数据,同时它还会定期地将这些信息持久化到一个checkpoint文件中。当Leader副本写入消息到磁盘时,Broker会尝试更新这部分缓存。这样,每次有Leader变更时,新的Leader副本会查询这部分缓存,取出对应的LeaderEpoch的起始位移,以避免数据丢失和不一致的情况。...原创 2022-07-31 19:58:12 · 1498 阅读 · 0 评论 -
kafka的再均衡策略
Rebalance本质上是一种协议,规定了一个Consumer Group下的所有Consumer如何达成一致,来分配订阅Topic的每个分区。例如:某个Group下有20个Consumer实例,它订阅了一个有100个分区的Topic。正常情况下,kafka会给每个实例分配5个分区。这个分配的过程叫做Rebalance。 rebalance发生时,Group下的所有Consumer实例都会协调在一起共同参与。具体怎么分配,是有分配策略协助的。分配策略以后再总结。组成员数发生变化。比如有实例进入或者离开组原创 2022-06-26 14:30:30 · 357 阅读 · 0 评论 -
kafka 高水位
kafka中HW(High Watermark)有两个作用位移值小于高水位的是已提交消息,可被消费者消费,大于等于高水位的消息,属于未提交消息,不可被消费者消费Log End Offset 日志末端位移,LEO是表示副本写入下一条消息的位移,介于高水位和LEO之间的消息就是未提交消息,所以同一个副本中,高水位是不会超过LEO的Kafka 使用 Leader 副本的高水位来定义所在分区的高水位。换句话说,分区的高水位就是其Leader 副本的高水位Broker 0 上保存了某分区的 Leader 副本和所原创 2022-06-23 20:24:54 · 936 阅读 · 0 评论 -
kafka的ack原理
Kafka的ack机制,指的是producer的消息发送确认机制,这直接影响到Kafka集群的吞吐量和消息可靠性。而吞吐量和可靠性就像硬币的两面,两者不可兼得,只能平衡。acks有3个值可选 0、1和-1(或者all),默认值为1,值为字符串类型,不是整数类型...原创 2022-06-22 18:21:02 · 381 阅读 · 0 评论 -
kafka原理总结
KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。1.前言消息队列的性能好坏,其文件存储原创 2021-09-27 20:59:17 · 244 阅读 · 0 评论 -
Kafka速度快的原因-sendfile零拷贝介绍
。所谓的零拷贝是指将数据直接从磁盘文件复制到网卡设备中,而不需要经由应用程序之手。零拷贝大大提高了应用程序的性能,减少了内核和用户模式之间的上下文切换。对 Linux 操作系统而言,零拷贝技术依赖于底层的 sendfile() 方法实现。对应于 Java 语言,FileChannal.transferTo() 方法的底层实现就是 sendfile() 方法。所谓零拷贝,就是减少上下文切换,不经由用户空间,直接在内核空间把数据发往网卡接口。操作系统底层提供的sendfile(transferTo()函数原创 2021-07-22 15:56:21 · 1220 阅读 · 1 评论 -
Kafka的总结
1、Kafka 都有哪些特点?高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。可扩展性:kafka集群支持热扩展持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)高并发:支持数千个客户端同时读写2、Kafka 的设计架构?Kafka 架构分为以下几个部原创 2021-07-22 15:53:59 · 310 阅读 · 0 评论