Kafka深度剖析
文章平均质量分 96
介绍Kafka的整体架构,设计理念,HA方案分析,Consumer Rebalance原理,Benchmark,以及监控和实战
郭俊JasonGuo
这个作者很懒,什么都没留下…
展开
-
Kafka设计解析(八)- Exactly Once语义与事务机制原理
本文介绍了Kafka实现事务性的几个阶段——正好一次语义与原子操作。之后详细分析了Kafka事务机制的实现原理,并介绍了Kafka如何处理事务相关的异常情况,如Transaction Coordinator宕机。最后介绍了Kafka的事务机制与PostgreSQL的MVCC以及Zookeeper的原子广播实现事务的异同转载 2017-11-28 21:38:43 · 1153 阅读 · 0 评论 -
流式处理界的新贵 Kafka Stream - Kafka设计解析(七)
本文介绍了Kafka Stream的背景,如Kafka Stream是什么,什么是流式计算,以及为什么要有Kafka Stream。接着介绍了Kafka Stream的整体架构,并行模型,状态存储,以及主要的两种数据集KStream和KTable。并且分析了Kafka Stream如何解决流式系统中的关键问题,如时间定义,窗口操作,Join操作,聚合操作,以及如何处理乱序和提供容错能力。最后结合示例讲解了如何使用Ka原创 2017-11-27 09:29:12 · 6601 阅读 · 0 评论 -
揭秘Kafka高性能架构之道-Kafka设计解析(六)
本文从宏观架构层面和微观实现层面分析了Kafka如何实现高性能。包含Kafka如何利用Partition实现并行处理和提供水平扩展能力,如何通过ISR实现可用性和数据一致性的动态平衡,如何使用NIO和Linux的sendfile实现零拷贝以及如何通过顺序读写和数据压缩实现磁盘的高效利用。原创 2017-04-25 06:49:02 · 2972 阅读 · 0 评论 -
Kafka深度解析
介绍Kafka背景,使用消息系统的优势,常用消息系统对比,Kafka架构介绍,Kafka实现语义分析,Replication及Leader Election机制剖析,Consumer Group Rebalance实现原理介绍,以及Benchmark测试。原创 2015-03-28 00:24:26 · 1369 阅读 · 0 评论 -
Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告
本文详细阐述了Kafka的性能测试方法,并全面展示了Kafka各组件的性能测试报告。原创 2016-01-04 19:58:01 · 1890 阅读 · 0 评论 -
Kafka设计解析(四)- Kafka Consumer设计解析
本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以及适用场景。以及未来版本中对High Level Consumer的重新设计--使用Consumer Coordinator解决Split Brain和Herd等问题。原创 2015-11-20 09:28:03 · 934 阅读 · 0 评论 -
Kafka设计解析(三)- Kafka High Availability (下)
本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场景,如Broker failover,Controller failover,Topic创建/删除,Broker启动,Follower从Leader fetch数据等详细处理过程。同时介绍了Kafka提供的与Replication相关的工具,如重新分配Partition等。原创 2015-06-09 09:48:02 · 1939 阅读 · 0 评论 -
Kafka设计解析(二)- Kafka High Availability (上)
Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的可能性大大提高,对于Failover机制的需求非常高。因此,Kaf原创 2015-04-26 11:53:38 · 1860 阅读 · 1 评论 -
Kafka设计解析(一)- Kafka背景及架构介绍
本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对比。并介绍了Kafka的架构,Producer消息路由,Consumer Group以及由其实现的不同消息分发方式,Topic & Partition,最后介绍了Kafka Consumer为何使用pull模式以及Kafka提供的三种delivery guarantee。原创 2015-03-27 23:58:41 · 2523 阅读 · 0 评论 -
Java系列(一)Annotation(注解)
本文介绍了Java Annotation的概念及Java提供的四种Meta Annotation的功能,并结合实例详解了自定义Annotation的方法和注意事项原创 2016-04-18 20:36:16 · 1312 阅读 · 0 评论 -
Java线程间通信方式剖析——Java进阶(四)
本文将介绍常用的线程间通信工具CountDownLatch、CyclicBarrier和Phaser的用法,并结合实例介绍它们各自的适用场景及相同点和不同点。原创 2016-06-24 06:57:45 · 1692 阅读 · 0 评论 -
Java进阶(三)多线程开发关键技术
本文将介绍Java多线程开发必不可少的锁和同步机制,同时介绍sleep和wait等常用的暂停线程执行的方法,并详述synchronized的几种使用方式,以及Java中的重入锁(ReentrantLock)和读写锁(ReadWriteLock),之后结合实例分析了重入锁条件变量(Condition)的使用技巧,最后介绍了信号量(Semaphore)的适用场景和使用技巧。原创 2016-06-20 07:15:02 · 4205 阅读 · 0 评论 -
当我们说线程安全时,到底在说什么——Java进阶系列(二)
提到线程安全,可能大家的第一反应是要确保接口对共享变量的操作要具体原子性。实际上,在多线程编程中我们需要同时关注可见性、顺序性和原子性问题。本篇文章将从这三个问题出发,结合实例详解volatile如何保证可见性及一定程序上保证顺序性,同时例讲synchronized如何同时保证可见性和原子性,最后对比volatile和synchronized的适用场景。原创 2016-06-13 07:24:13 · 2281 阅读 · 0 评论 -
分布式事务(一) 两阶段提交及JTA
分布式事务与本地事务一样,包含原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。两阶段提交是保证分布式事务中原子性的重要方法。本文重点介绍了两阶段提交的原理,PostgreSQL中两阶段提交接口,以及Java中两阶段提交接口规范JTA的使用方式。原创 2016-08-02 06:49:20 · 7352 阅读 · 0 评论