![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kafka
华山论键
安能摧眉折腰事权贵,使我不得开心颜!
展开
-
常见kafka面试题你都会了吗?
1、Kafka 都有哪些特点?高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。可扩展性:kafka集群支持热扩展持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点...原创 2020-05-03 00:27:57 · 146 阅读 · 0 评论 -
Kafka是如何实现高吞吐率的?
Kafka的高吞吐率是一个使用起来很不错的性能,其中有如下几点原因:一、Broker NIO异步消息处理,实现了IO线程与业务线程分离Kafka的网络通信模型是基于NIO的Reactor多线程模型来设计的,这里先引入Kafka源码中注释。An NIO socket server. The threading model is1 Acceptor thread that handles ne...转载 2020-05-03 00:21:41 · 817 阅读 · 0 评论 -
Kafka Producer是如何动态感知Topic分区数变化
我们都知道,使用Kafka生产者往Kafka的经纪人发送消息的时候,Kafka会根据消息的密钥计算出这条消息应该发送到分区。最小的分区计算类是HashPartitioner,其实现如下:class HashPartitioner(props: VerifiableProperties = null) extends Partitioner { def partition(data: Any,...转载 2020-05-03 00:10:58 · 1160 阅读 · 0 评论 -
关于Kafka的分区分配策略
问题用过 Kafka 的同学用过都知道,每个 Topic 一般会有很多个 partitions。为了使得我们能够及时消费消息,我们也可能会启动多个 Consumer 去消费,而每个 Consumer 又会启动一个或多个streams去分别消费 Topic 里面的数据。我们又知道,Kafka 存在 Consumer Group 的概念,也就是 group.id 一样的 Consumer,这些 Co...转载 2020-05-03 00:04:59 · 447 阅读 · 0 评论 -
Kafka创建Topic时如何将分区放置到不同的Broker中
熟悉 Kafka 的同学肯定知道,每个主题有多个分区,每个分区会存在多个副本,本文今天要讨论的是这些副本是怎么样放置在 Kafka 集群的 Broker 中的。大家可能在网上看过这方面的知识,网上对这方面的知识是千变一律,都是如下说明的:为了更好的做负载均衡,Kafka尽量将所有的Partition均匀分配到整个集群上。Kafka分配Replica的算法如下:将所有存活的N个Brokers和...转载 2020-05-02 23:51:52 · 393 阅读 · 0 评论 -
Apache Kafka消息格式的演变(0.7.x~0.10.x)
用 Kafka 这么久,从来都没去了解 Kafka 消息的格式。今天特意去网上搜索了以下,发现这方面的资料真少,很多资料都是官方文档的翻译;而且 Kafka 消息支持压缩,对于压缩消息的格式的介绍更少。基于此,本文将以图文模式介绍 Kafka 0.7.x、0.8.x 以及 0.10.x 等版本 Message 格式,因为 Kafka 0.9.x 版本的消息格式和 0.8.x 一样,我就不单独介绍了...转载 2020-05-02 23:42:51 · 138 阅读 · 0 评论 -
Hadoop生态之kafka史上最全详解!
1、消息队列的介绍消息(Message):是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue):是一种应用间的通信方式,消息发送后可以立即返回,有消息系统来确保信息的可靠专递,消息发布者只管把消息发布到MQ中而不管谁来取,消息使用者只管从MQ中取消息而不管谁发布的,这样发布者和使用者都不用知道对方的存在2、K...原创 2020-03-19 07:37:01 · 5415 阅读 · 0 评论