首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
kafka
刘不二
创建于2021-06-21
订阅专栏
kafka
等 5 人订阅
共15篇文章
创建于2021-06-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
kafka系列之消费者与分区(07)
发布-订阅模型中,消息被广播给所有的消费者,接收到消息的消费者都可以处理此消息。 Kafka为这两种模型提供了单一的消费者抽象模型: 消费者组 (consumer group)。 消费者用一个消费者组名标记自己。 条条发布在Topic上消息被分发给此消费者组中的一个消费者。 假…
kafka系列之offset的那些事(08)
每个消费者在消费消息的过程中必然需要有个字段记录它当前消费到了分区的哪个位置上,这个字段就是消费者位移(Consumer Offset),它是消费者消费进度的指示器。 不过切记的是消费者位移是下一条消息的位移,而不是目前最新消费消息的位移。 提交位移主要是为了表征 Consum…
kafka系列之消费模式(10)
和消费者组相同的是,它们也要配置 group.id 参数值,但和消费者组调用 KafkaConsumer.subscribe() 不同的是,独立消费者调用 KafkaConsumer.assign() 方法直接消费指定分区。 我们说 KafkaConsumer 是单线程的设计,…
kafka系列之事务生产者(12)
Kafka 自 0.11 版本开始也提供了对事务的支持,目前主要是在 read committed 隔离级别上做事情。 它能保证多条消息原子性地写入到目标分区,同时也能保证 Consumer 只能看到事务成功提交的消息。 事务型 Producer 能够保证将消息原子性地写入到多…
kafka系列之重试机制(15)
kafka 消息的重试机制作为kafka 生产者端的数据不丢失的重要保障,对我们学习和理解kafka 大有裨益,前面我们学习kafka 生产者的时候,了解了kafka 异步生产者的Callback 机制,合理使用Callback机制也可以保证我们生产者端的数据不丢失,但是Cal…
kafka系列之kafka基础架构(02)
在上一节我们也说过一些名词概念什么的,这一节我们就详细看一下这些概念都是什么,怎样去理解。 主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。 前面我们说过Topic 是一个逻辑容器,Partition 其实是Topic数据的物理存储,其实就是一个文件夹,它的命名方式…
kafka系列之kafka生产者与分区(03)
对于这样的业务,消息既不能丢失也不能重复,由于交易量大因此吞吐量需要尽可能大,延迟可以稍微高一点。 再举个例子,假如我们需要收集用户在网页上的点击数据,对于这样的场景,少量消息丢失或者重复是可以容忍的,延迟多大都不重要只要不影响用户体验,吞吐则根据实时用户数来决定。 不同的业务…
kafka系列之kafka分区与备份(04)
不同的分布式系统对分区的叫法也不尽相同。比如在 Kafka 中叫分区,在 MongoDB 和 Elasticsearch 中就叫分片 Shard,而在 HBase 中则叫 Region,在 Cassandra 中又被称作 vnode。从表面看起来它们实现原理可能不尽相同,但对底…
kafka系列之幂等生产者(11)
在命令式编程语言(比如 C)中,若一个子程序是幂等的,那它必然不能修改系统状态。这样不管运行这个子程序多少次,与该子程序关联的那部分系统状态保持不变。 在函数式编程语言(比如 Scala 或 Haskell)中,很多纯函数(pure function)天然就是幂等的,它们不执行…
kafka系列之Coordinator(14)
"协调者"有些陌生,所谓协调者,在 Kafka 中对应的术语是 Coordinator,它专门为 Consumer Group 服务,负责Group Rebalance 以及提供位移管理和组成员管理等。 Consumer 端应用程序在提交位移时,其实是向 Coordinator…
kafka系列之Producer 拦截器(06)
拦截器(interceptor)是个相当新的功能,它是在Kafka 0.10版本被引入的,主要用于实现clients端的定制化控制逻辑。 拦截器作为一个非常小众的功能,Kafka 拦截器自 0.10 版本被引入后并未得到太多的实际应用。 如果你用过 Spring Interce…
kafka系列之Consumer 拦截器(09)
前面我们详细介绍了拦截器的原理,可以参考kafka系列之Producer 拦截器(06),其实拦截器的在很多技术中都有,关于拦截器的应用场景我们在前面一节中也介绍过了,这一节我们直接看一下消费者端拦截器的使用。我觉得为了学习kafka ,你可以打开kafka 的源码包,看看都有…
kafka系列之kafka入门概论(01)
举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100个鸡蛋,消费者1秒钟只能吃50…
kafka系列之数据不丢失的保证—ACK(05)
ACK 是acknowledge 的缩写,意思就是确认,这里的指的是producer 需要接受到来自Broker 的ack 信息,其实更准确的说法是接收到来自Leader partition 的ack 信息 ,需要注意的是ACK机制的开启,会直接影响Kafka集群的吞吐量和消息…
kafka系列之Controller(13)
控制器组件(Controller)是 Apache Kafka 的核心组件。它的主要作用是在 Apache ZooKeeper 的帮助下管理和协调整个 Kafka 集群,例如分区领导者副本的选举。 集群中任意一台 Broker 都能充当控制器的角色,但是,在运行过程中,只能有一…