Kafka
supermancoke
合肥架构师一名
展开
-
Kafka设计(9)配额
参考文档: http://kafka.apache.org/documentation/#design配额kafka集群能够限制请求的配置以控制客户端使用的broker资源。Kafka broker为共享配额的每个客户端组提供两类客户端配置:网络带宽配额定义了字节速率阈值(从0.9开始)请求速率配额定义CPU使用率阈值(网络和IO线程的使用率百分比)(从0.11开始)为什么需要配...翻译 2020-04-02 16:59:02 · 270 阅读 · 0 评论 -
Kafka设计(8)日志压缩
参考文档: http://kafka.apache.org/documentation/#design日志压缩日志压缩确保Kafka总是保留一个主题分区的日志数据中每个消息key的至少最后一个已知值。它解决了一些用例和场景,例如:应用崩溃或系统错误后还原状态,在维护操作时重启应用后重新加载缓存。让我们更详细深入这些用例并描述压缩如何工作。到目前为止,我们只描述了数据持久的简单方法(老数据...翻译 2020-04-02 16:58:48 · 394 阅读 · 0 评论 -
Kafka设计(7)复制
参考文档: http://kafka.apache.org/documentation/#design复制Kafka跨越指定配置数量服务器(可以设置这个复制因子在)复制每个主题分期的日志。这提供了自动故障转移功能,当集群中一个服务器宕机时消息依旧可用。其他消息系统提供了复制相关的功能,但在我们看来(完全有偏见),此功能像是附加功能,没有被大量使用,并有很大的缺点:副本处于非活动状态,吞吐...翻译 2020-04-02 16:58:30 · 335 阅读 · 0 评论 -
Kafka设计(6)消息传递语义
参考文档: http://kafka.apache.org/documentation/#design消息传递语义现在我们了解了一点消费者和生产者如何工作,让我们来讨论下消费者和生产者间的语义保证(semantic guarantees)。很明显有多种可能的消息传递担保形式:最多一次:消息可能会丢失但不会被多次传递至少一次:消息不会丢失但可能会重新传递精确一次:这是人们真正想要的,...翻译 2020-04-02 16:58:13 · 466 阅读 · 0 评论 -
Kafka设计(5)消费者
参考文档: http://kafka.apache.org/documentation/#design消费者Kafka消费者通过向期望消费的分区leader发送“fetch”请求来进行工作。消费者在每个请求中指定日志偏移量并接收到日志偏移量后的数据块。消费者由此可以显式控制日志位置并在需要时倒回去重复消费数据。推送vs.拉取我们考虑的最初问题是消费者应该从kafka拉取数据还是kafk...翻译 2020-04-02 16:57:57 · 371 阅读 · 0 评论 -
Kafka设计(4)生产者
参考文档: http://kafka.apache.org/documentation/#design生产者负载均衡生产者无需任何路由层接入直接发送数据到日志分区leader节点上。所有的Kafka节点都可以应答服务器存活状态和查询topic中各个分区的leader,以便在任何时间生产者都可以正确的直接发送请求。生产者指定消息发送到哪个分区。可以随机分配分区,采用各种随机负载均衡实现。...翻译 2020-04-02 16:53:47 · 104 阅读 · 0 评论 -
Kafka设计(3)效率
参考文档: http://kafka.apache.org/documentation/#design效率开发者取得了重大的成就以提升效率。我们的一个主要用例是处理大量的Web活动数据:每一次页面访问可能产生多个写入。我们假设每个已发布的消息被至少一个消费者(通常会更多),因此我们努力让消费尽可能低成本。基于研发经验和运行大量类似系统,我们同样发现,性能是高效多租户处理的关键。如果下游基...翻译 2020-03-05 15:37:23 · 159 阅读 · 0 评论 -
Kafka设计(2)持久化
参考文档: http://kafka.apache.org/documentation/#design持久化不要害怕文件系统Kafka重度基于文件系统实现消息存储和缓存。基于“磁盘很慢”的观点,人们会担心持久化结构会引起性能竞争。实际上基于如何使用磁盘,磁盘会比人们认为的更快或更慢,正确设计的磁盘结构通常比网络更快。关键因素是磁盘吞吐量早在10年前就和磁盘寻址延迟无关了。6块7200转...翻译 2020-03-05 15:36:56 · 279 阅读 · 0 评论 -
Kafka设计(1)设计动机
参考文档: http://kafka.apache.org/documentation/#design设计动机Kafka被设计为统一处理所有实时数据流(大公司级别)的平台。为了达到这一目标,设想了以下使用场景:高吞吐量:需要支持高吞吐量已满足大量事件流(例如:实时日志收集)大数据量:需要优雅处理大量待处理数据以满足离线系统的周期性数据负载低延迟:为了处理更多交易类消息需要低延迟传递...翻译 2020-03-05 15:36:36 · 277 阅读 · 0 评论 -
Kafka简介
参考文档:http://kafka.apache.org/intro简介官方说Kafka是一个分布式的流平台(distributed streaming platform,并没有说自己时一个消息中间件),主要由以下关键能力发布和订阅记录流,类似于消息队列或企业消息系统容错且持久的存储记录流记录流出现时快速处理Kafka适用于两类应用构建实时流数据管道,已在系统应用间可靠的获...翻译 2020-03-05 15:34:03 · 134 阅读 · 0 评论