Kafka 设计之初是为了解决 Linkedin 公司数据管道(datapipe)问题.
KafkaProducer 的工作逻辑:将消息封装成 ProducerRecord 对象,然后使用KafkaProducer.send 将消息发送出去. 事实上,其拿到消息后会通过序列化,根据本地缓存的元数据,确定目标分区,最后写入缓冲区. KafkaProducer 专门有一个 Selector I/O 线程,负责将缓存区的消息分批次发送给 Kafka broker.
新版设计优点:
1.发送过程被分成了两个线程,即:主线程和 Selector 线程.
2.发送完全是异步的,并提供回调机制,用于判断发送成功与否.
3.分批机制,每个批次中包含多个发送请求,提升整体吞吐量.
4.更加合理的分区策略,旧版对于没有指定 key 的消息,它是默认一段时间发送到一个分区,这样容易造成数据倾斜,而新版采用轮询的机制,更加合理.
5.底层统一采用 Selector,效率更高.
consumer 的优势:
1.单线程设计,单个 consumer 线程可以管理多个分区的消费 Socket 连接
2.位移提交与保存交由Kafka来处理——位移不再保存在 Zookeeper 中,而是单独保存在 Kafka 的 topic 中.
如何选择 Kafka 版本
1.如果要使用流式组件,请使用 Kafka0.10.x
2.如果要使用 Kafka Secutiry,请使用 Kafka0.9.x(含)之后的版本.
kafka 为了保证同一类型的消息顺序性(FIFO),一个partition只能被同一组的一个consumer绑定消费,不同组的consumer可以绑定同一个partition进行重复消费。但是一个consumer可以绑定多个partition(哈哈不知道这里用绑定是否合适)。
分享到:
相关推荐
这个版本在 Kafka 的发展史上占据着关键地位,因为它引入了多项改进和新特性,旨在提升性能、稳定性和可管理性。 首先,Kafka 0.8.1 强化了其作为消息系统的角色,提供了更高效的发布/订阅模型。它支持多个消费者组...
大数据发展史: Flink和storm sparkstreaming对比 实时框架如何选择1:需要关注流数据是否需要进行状态管理 2:At-least-once或者Exectly-once消息投递模式是否有特殊要求 3:对于小型独立的项目,并且需要低延迟...
首先,本文档介绍了 Hadoop 的发展史,从 2009 年到 2016 年,Hadoop 的演进过程中,从一个简单的分布式文件系统到现在的数据处理平台。接着,作者介绍了 Hopsworks,一个基于 Hops Hadoop 的 Spark/Flink/Kafka/...
本资源提供了大数据史上最全的思维导图,涵盖了从基础到高级的关键概念,特别关注了Hadoop、Spark、Scala、Kafka以及Linux-CentOS 6的系统知识。以下是这些技术的详细解析: 1. **Hadoop**: Hadoop是Apache基金会...
- **Hadoop介绍,发展史,国内外现状,未来**:全面概述Hadoop的发展历程、当前的应用情况以及未来趋势。 - **Hadoop核心组成介绍及hdfs、mapreduce体系结构**:深入解析Hadoop的核心组件,包括HDFS和MapReduce的...
6. **Hadoop**:Hadoop是大数据处理的核心框架,其发展史、国内外现状和未来趋势是学习的重点。理解Hadoop的组成,包括HDFS(分布式文件系统)和MapReduce(分布式计算模型),以及YARN资源调度器的工作原理,是成为...
它可能会涉及到分布式服务、微服务架构、负载均衡等关键知识点,以及Redis、RabbitMQ、Kafka等分布式技术。这本书不仅适合初学者学习基础知识,也为有经验的开发者提供了进一步提升的机会。它能够帮助读者构建出高...
1. **数据处理发展史**: - **数据库阶段**:早期依赖RDBMS(关系型数据库管理系统)和存储过程,主要用于存储和处理结构化数据。 - **数据仓库阶段**:引入Hive和RDBMS结合的方式,配合ETL(提取、转换、加载)和...
阿里云大数据平台方案介绍涵盖了云大数据架构体系、阿里云自身的数据平台发展史以及如何协同各种计算引擎为云上客户提供服务。其中,包含的关键知识点如下: 1. 大数据架构体系:分为数据源、数据存储、批处理、...
随着技术的不断发展,Java程序员的需求也在持续增长,因此,Java面试题成为衡量求职者技能水平的重要工具。这份“史上最全的Java面试题独家整理”无疑是准备Java面试者的宝贵资源。 面试题通常涵盖以下几个核心领域...
以下是对"史上最全IT架构师技术知识图谱(34张)"的详细解读: 1. **系统架构**:IT架构师需要理解并掌握多种系统架构模型,如微服务架构、服务导向架构(SOA)、事件驱动架构(EDA)等,这些架构模式在现代企业中各...
《架构解密:从分布式到微服务》一开始并没有提及分布式的枯燥理论,而是讲述了一段精彩的IT发展史,其中重点讲述了大型机、UNIX小机器的没落与X86平台的崛起,从而巧妙地引出CPU、内存、网络、存储的分布式演进过程...
#### 二、宜信数据处理发展史 ##### 1. 数据库阶段 (2016年) - **主要技术栈**:关系数据库管理系统(RDBMS),如DB2、Oracle、MySQL等。 - **关键能力**:通过存储过程进行简单的数据处理和查询优化。 - **应用场景**...
重磅,史上最全的阿里云分享的云原生技术学习资料合集,共120份。 一、阿里云开源书合集 2020微服务领域开源数字化报告 阿里巴巴云原生技术与实践13讲 阿里巴巴云原生实践15讲 不一样的双11技术:阿里巴巴经济体云...
- **Kafka**:适合大数据流处理,高吞吐量,低延迟,适用于日志收集、用户行为追踪等场景。 - **ActiveMQ**:开源,支持多种协议,适用于企业级集成,但性能相对较低。 - **RabbitMQ**:基于AMQP协议,稳定可靠,...
在《专题04:架构设计面试题(卷王专供+ 史上最全 + 2023面试必备)-V105-from-尼恩Java面试宝典.pdf》这份资料中,资深架构师尼恩分享了一系列关于架构设计的面试题目及其解答思路。本文将围绕这些内容展开讨论,...
其次,"38张史上最全的IT工程师技能图谱(高清)"涵盖了多个IT领域的核心知识。架构师图谱将展示从初级到高级IT工程师需要掌握的技术栈和管理能力,包括系统设计、性能优化、架构模式等。互联网图谱则可能涵盖了网络...
对于学习资源,文中推荐了一些B站上的视频教程,如Java基础到高级的《Java基础到高级-宋红康》、数据结构的《数据结构-浙江大学》、Linux基础的《史上最牛的Linux视频教程—兄弟连》、数据库入门的《MySQL数据库教程...
#### 消息引擎家族史 阿里中间件消息引擎历经多年发展,从最初的关系型数据库为基础的第一代推模式消息存储,逐渐演化为结合推模式与拉模式的高性能、低延迟消息引擎——RocketMQ。在这一过程中,消息引擎不仅实现...
- **Apache Kafka 连接器**: 与 Apache Kafka 集成,实现数据流处理。 - **MongoDB Charts GA**: 提供图表和仪表板功能。 - **可重试读写**: 改进了读写操作的可靠性。 - **新索引构建**: 改进了索引创建机制。 - **...