摘要:
Kafka Producer消息发送producer直接将数据发送到broker的leader(主节点),不需要在多个节点进行分发。为了帮助producer做到这点,所有的Kafka节点都可以及时的告知:哪些节点是活动的,目标topic目标分区的leader在哪。这样producer就可以直接将消息... 阅读全文
摘要:
Kafka在提高效率方面做了很大努力。Kafka的一个主要使用场景是处理网站活动日志,吞吐量是非常大的,每个页面都会产生好多次写操作。读方面,假设每个消息只被消费一次,读的量的也是很大的,Kafka也尽量使读的操作更轻量化。我们之前讨论了磁盘的性能问题,线性读写的情况下影响磁盘性能问题大约有两个方面... 阅读全文
摘要:
不要畏惧文件系统!Kafka大量依赖文件系统去存储和缓存消息。对于硬盘有个传统的观念是硬盘总是很慢,这使很多人怀疑基于文件系统的架构能否提供优异的性能。实际上硬盘的快慢完全取决于使用它的方式。设计良好的硬盘架构可以和内存一样快。在6块7200转的SATA RAID-5磁盘阵列的线性写速度差不多是60... 阅读全文
摘要:
之前讨论了consumer和producer是怎么工作的,现在来讨论一下数据传输方面。数据传输的事务定义通常有以下三种级别:最多一次:消息不会被重复发送,最多被传输一次,但也有可能一次不传输。最少一次:消息不会被漏发送,最少被传输一次,但也有可能被重复传输.精确的一次(Exactly once):不... 阅读全文
摘要:
上篇文章中我们搭建了kafka的服务器,并可以使用Kafka的命令行工具创建topic,发送和接收消息。下面我们来搭建kafka的开发环境。添加依赖搭建开发环境需要引入kafka的jar包,一种方式是将Kafka安装包中lib下的jar包加入到项目的classpath中,这种比较简单了。不过我们使用... 阅读全文
摘要:
介绍Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢?首先让我们看几个基本的消息系统术语:Kafka将消息以topic为单位进行归纳。将向Kafka topic发布消息的程序成为producers.将预订topics并... 阅读全文