Kafka之我见

一、 什么是kafka?

        答:kafka是一个高吞吐量、分布式的发布订阅消息系统,至于其吞吐量到底有多高,可以参考这篇博文:https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines,kafka被广泛应用于两大类的应用,分别是:1、可靠的从其他业务系统或者应用获取数据的实时流数据管道应用;2、传输或者扮演数据流角色的实时流应用。

 

二、 kafka有哪些核心的api?

        答:四类API,分别是:1、生产者API(Producer API)允许应用发布消息到一个或者多个kafka主题中;2、消费者API(Consumer API)允许应用订阅一个或者多个主题并处理数据流;3、流API(Streaming API)允许应用去扮演流数据处理者的角色,可以从一个或者多个主题中消费并且也可以向一个或者多个主题生产数据流,高效的进行传输;4、连接器API(Connector API)可以在一个现有的应用或者业务系统中建立并且运行可复用并且连接者kafka主题的生产者或者消费者,举个例子,如果连接了关系型数据库,那么它可以捕获表中的每一个数据变化。它们直接的关系如下图所示:


三、 kafka是如何做到高吞吐量的呢?

        答:分布式是一个其中一个原因,分区(partition)也是其中一个原因。一个kafka集群有多台节点(broker),每个broker可以有多个主题,而每个主题又是有多个分区的,这些分区是分布在各个broker当中,理论上来说broker、分区越多,吞吐量越大,但是也要考虑开销,所以很多时候并不是越多越好。生产者向主题大量地生产消息,kafka会根据一定地算法将数据写入到分布在各个broker的分区中,消费者去消费数据,也是从各个分区中消费数据,kafka不保证从各个分区读的数据是按照原本写地顺序,但是可以保证从一个分区中消费的数据是有序的。已经消费了的数据无法第二次消费,除非使用另外一个groupid。


四、 消费者线程数如何确定?

        答:目前而言,最优的方案是有多少个分区,就应该有多少线程,这样才能达到最高的吞吐量,因为kafka分区是不允许多线程去同时消费数据的,所以过多的线程是浪费。


--------------------------------------------------------------------------------------------

以上是我对kafka的一些见解,如有错误劳烦指出,转载请注明出处。

--------------------------------------------------------------------------------------------

《图解kafka之实战指南.pdf》是一本关于Kafka实践的指南书籍。Kafka是一种高吞吐量、低延迟的分布式消息系统,被广泛应用于大数据和实时流处理领域。 本书逐步介绍了Kafka的基本概念和架构,并提供了详细的实践指南。首先,书中介绍了Kafka的基本原理和术语,包括生产者、消费者、代理、分区和副本等,并通过图解的方式使读者更加直观地理解这些概念。 接着,书中详细介绍了Kafka的部署和配置。读者可以了解到如何搭建Kafka集群、如何配置生产者和消费者,并且介绍了一些常见的配置参数和调优技巧。这些内容将帮助读者实现高性能和高可用的Kafka集群。 然后,书中重点介绍了如何使用Kafka进行实时数据处理和流式计算。作者通过实际案例和代码示例,演示了如何将Kafka与其他工具(如Spark、Flink和Storm)结合使用,以实现数据的实时分析和处理。这对于需要处理大规模实时数据的企业和项目非常有实际意义。 最后,书中还介绍了一些Kafka的最佳实践和应用实例。作者结合自己的经验,提供了一些关于Kafka的使用场景、容错和监控的建议。这些实践指南将帮助读者更好地理解和使用Kafka,提高系统的可靠性和性能。 总之,《图解Kafka之实战指南.pdf》是一本系统而实用的Kafka实践指南,对于想要学习和应用Kafka的开发人员和系统架构师来说,是一本不可多得的参考书籍。通过阅读本书,读者将更加深入地理解Kafka的原理和架构,并掌握如何正确配置和使用Kafka进行实时数据处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值