Kafka
文章平均质量分 91
大数据深度洞察
一名大数据爱好者
展开
-
Kafka技术详解[8]: 存储消息
因为Kafka底层实现时,采用的是虚拟内存映射技术mmap,将内存和文件进行双向映射,操作内存数据就等同于操作文件,所以效率是非常高的,但是因为是基于内存的操作,所以并不稳定,容易丢数据,因此Kafka的索引文件中的索引信息是不连续的,而且为了效率,kafka默认情况下,4kb的日志数据才会记录一次索引,但是这个是可以进行配置修改的,参数为。HW高水位线会随着follower的数据同步操作,而不断上涨,也就是说,follower同步的数据越多,那么水位线也就越高,那么消费者能访问的数据也就越多。原创 2024-09-26 22:06:01 · 832 阅读 · 0 评论 -
Kafka技术详解[7]: 生产者消息发送机制与可靠性保障
但是不同的Broker可能无法全部同时接收到marker信息,此时有的Broker上的数据还是无法访问,这也是正常的,因为Kafka的事务不能保证强一致性,只能保证最终数据的一致性,无法保证中间的数据是一致的。只有提交后才能看见数据。此时,如果假设由于网络故障的原因,Kafka并没有成功将ACK应答信息发送给Producer,那么此时对于Producer来讲,以为Kafka没有收到数据,所以就会一直等待响应,一旦超过某个时间阈值,就会发生超时错误,也就是说在Kafka Producer眼里,数据已经丢了。原创 2024-09-26 21:54:26 · 903 阅读 · 0 评论 -
Kafka技术详解[6]: 创建主题
消息的生产者必须将消息发送到特定的主题,而消费者则从特定的主题中获取消息,并且可以同时消费一个或多个主题的数据。通常,分区的一个副本作为Leader副本,负责所有读写操作,其他副本作为Follower副本,用于数据备份。以上步骤展示了如何通过命令行工具创建具有不同分区和副本数目的主题,并简述了创建主题时涉及到的关键概念和ZooKeeper中的节点变化。创建带有3个分区和3个副本的主题后,ZooKeeper记录每个分区的配置和其副本分布。第四个副本索引:(2 +(1+(2+2)%3))% 4 = 0。原创 2024-09-25 18:47:15 · 1120 阅读 · 0 评论 -
Kafka技术详解[5]: 集群启动
因此,每一个服务节点都称为一个Broker,并且为了区分不同的服务节点,每一个Broker都需要有一个唯一的全局ID,即。Kafka集群含有多个服务节点,而在经典的主从架构中,需要从多个服务节点中选出一个作为集群管理的Master节点,即Controller。如果在运行过程中,Controller节点出现故障,Kafka会依赖于ZooKeeper软件来选举出新的Controller,以确保集群的高可用性。在我们的Kafka集群中,每个节点都有自己的ID,是一个唯一的整数。原创 2024-09-25 18:29:04 · 891 阅读 · 0 评论 -
Kafka技术详解[4]:构建简易Windows环境下的Kafka集群
因此,Kafka内部包含了许多用于数据传输的组件对象,这些组件相互关联,共同实现了高效的数据传输。下面,我们将详细介绍Kafka中的基础概念及核心组件,并展示如何在Windows环境下搭建一个简单的Kafka集群以供学习和练习之用。启动集群命令后,会打开多个黑窗口,每个窗口代表一个Kafka服务,请勿关闭这些窗口,否则对应的Kafka服务将会停止。尽管生产环境中通常使用Linux系统搭建服务器集群,但为了便于理解和实践,我们将在此章节中搭建一个基于Windows系统的简易集群。原创 2024-09-24 19:01:01 · 1084 阅读 · 0 评论 -
Kafka技术详解[3]: 生产与消费数据
一旦消息主题创建完成,就可以通过Kafka客户端向Kafka服务器的主题中发送消息。Kafka生产者客户端是一套API接口,任何能够通过这些接口连接Kafka并发送数据的组件都可以称为Kafka生产者。通常,也可通过Java程序来生产数据。同样地,可以通过Java程序来消费数据。一旦消息通过生产者客户端发送到了Kafka服务器,就可以通过消费者客户端对特定主题的消息进行消费。对于需要更直观操作的情况,可以使用专门的工具进行快速访问,例如。原创 2024-09-24 18:49:46 · 963 阅读 · 0 评论 -
Kafka技术详解[2]: 环境安装
由于Kafka的绝大多数代码都是用Scala编写,并且Scala基于Java开发,Kafka可以在JVM上直接运行,因此无需安装其他软件。在消息发布/订阅(Publish/Subscribe)模型中,为了可以让消费者对感兴趣的消息进行消费,而不是对所有数据进行消费,定义了主题(Topic)的概念。即将不同的消息进行分类,分成不同的主题(Topic),然后消息生产者在生成消息时,会向指定的主题(Topic)中发送,而消息消费者也可以订阅自己感兴趣的主题(Topic)并从中获取消息。原创 2024-09-23 23:18:51 · 1365 阅读 · 0 评论 -
Kafka技术详解[1]:简介与基础概念
Kafka是由Scala和Java语言开发的高吞吐量分布式消息发布和订阅系统,也是大数据技术领域中用作数据交换的核心组件之一。因其高吞吐量、低延迟、高可伸缩性、高可靠性、高并发性以及活跃的社区支持等特点而受到广泛欢迎。2010年,LinkedIn公司为了解决消息传输过程中的阻塞和服务不可访问等问题,主导开发了一款分布式消息日志传输系统。该系统的命名灵感来源于西方表现主义文学先驱小说家Franz Kafka的作品《变形记》,尽管这个名字与软件特性并无直接关联。原创 2024-09-23 22:37:39 · 1322 阅读 · 0 评论