文章插图
什么是KafkaKafka基于Scala和Java语言开发 , 设计中大量使用了批量处理和异步的思想 , 最高可以每秒处理百万级别的消息 , 是用于构建实时数据管道和流的应用程序 。
Kafka的应用场景Kafka是一个分布式流式处理平台 。流平台具有三个关键功能:
消息队列:发布和订阅消息流 , 这个功能类似于消息队列 , 这也是Kafka被归类为消息队列的原因 。容错的持久方式存储记录消息流:Kafka会把消息持久化到磁盘 , 有效避免消息丢失的风险 。流式处理平台:在消息发布的时候进行处理 , Kafka提供了一个完整的流式处理类库 。Kafka主要有两大应用场景:
消息队列:建立实时流数据管道 , 可靠地在系统或应用程序之间获取数据 。数据处理:构建实时的流数据处理程序来转换或处理数据流 。注: Kafka在2.8预览版中 , 采用Raft元数据模式 , 取消了对Zookeeper的依赖 。
Kafka的版本里程碑版本号备注0.8引入了副本机制 , 成为了一个真正意义上完备的分布式高可靠消息队列解决方案0.8.2新版本 Producer API , 即需要指定 Broker 地址的 Producer0.9增加了基础的安全认证 / 权限 , Java 重写了新版本消费者 API0.10引入了 Kafka Streams0.11提供幂等性 Producer API 以及事务(Transaction) API , 对 Kafka 消息格式做了重构 。1.0Kafka Streams 的各种改进2.0Kafka Streams 的各种改进Kafka的优势高吞吐、低延时:这是 Kafka 显著的特点 , Kafka 能够达到百万级的消息吞吐量 , 延迟可达毫秒级 。持久化存储:Kafka 的消息最终持久化保存在磁盘之上 , 提供了顺序读写以保证性能 , 并且通过 Kafka 的副本机制提高了数据可靠性 。分布式可扩展:Kafka的数据是分布式存储在不同broker节点的 , 以topic组织数据并且按Partition进行分布式存储 , 整体的扩展性都非常好 。高容错性:集群中任意一个 broker 节点宕机 , Kafka 仍能对外提供服务 。Kafka基本结构Kafka具有四个核心API:
Producer API: 发布消息到1个或多个topic(主题)中 。Consumer API:来订阅一个或多个topic , 并处理产生的消息 。Streams API:充当一个流处理器 , 从1个或多个topic消费输入流 , 并生产一个输出流到1个或多个输出topic , 有效地将输入流转换到输出流 。Connector API:可构建或运行可重用的生产者或消费者 , 将topic连接到现有的应用程序或数据系统 。例如 , 连接到关系数据库的连接器可以捕获表的每个变更 。Kafka的关键术语Producer:消息和数据的生产者 , 向Kafka的一个Topic发布消息的进程/代码/服务 。Consumer:消息和数据的消费者 , 订阅数据(Topic)并且处理发布的消息的进程/代码/服务 。Consumer Group:对于同一个Topic , 会广播给不同的Group 。在一个Group中 , 一条消息只能被消费组中一个的Consumer消费 。Consumer Group中不能有比Partition数量更多的消费者 , 否则多出的消费者一直处于空等待 , 不会收到消息 。
Topic:每条发布到Kafka集群的消息都有一个类别 , 这个类别被称为Topic 。作用是对数据进行区分、隔离 。Broker:Kafka集群中的每个Kafka节点 。保存Topic的一个或多个Partition 。Partition:物理概念 , Kafka下数据储存的基本单元 。一个Topic数据 , 会被分散存储到多个Partition , 每一个Partition都是一个顺序的、不可变的消息队列 , 并且可以持续的添加消息 。注:
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 交互过程及区别介绍 socket服务端和客户端的区别
- 送33朵玫瑰代表什么(生生世世的爱 33朵玫瑰代表什么意思)
- 做空:最危险的交易 做空是什么意思啊
- 设置ip地址的详细教程 win10如何手动设置ip地址
- 简介后备式ups工作原理和优势 后备式ups的性能特点有哪些
- 分析这4个本质区别 笔记本睡眠和休眠的区别
- 网络协议基础知识应用 常见的网络协议有哪三种
- 纯干货——史上最全的快捷键 刷新快捷键
- 八种适合糖友吃的低糖水果 低糖水果
- 我国最长的十大河流是哪些? 中国最长的河流