没有合适的资源?快使用搜索试试~ 我知道了~
它可以让你发布和订阅记录流。在这方面,它类似于一个消息队列或企业消息系统。它可以让你持久化收到的记录流,从而具有容错能力。首先,明确几个概念:Kafka运行在一个或多个服务器上。Kafka集群分类存储的记录流被称为主题(Topics)。每个消息记录包含一个键,一个值和时间戳。Kafka有四个核心API:生产者API允许应用程序发布记录流至一个或多个Kafka的话题(Topics)。消费者API允许应用程序订阅一个或多个主题,并处理这些主题接收到的记录流。StreamsAPI允许应用程序充当流处理器(streamprocessor),从一个或多个主题获取输入流,并生产一个输出流至一个或多个的主题
资源推荐
资源详情
资源评论






























kafka架构与原理架构与原理
1、简介
它可以让你发布和订阅记录流。在这方面,它类似于一个消息队列或企业消息系统。
它可以让你持久化收到的记录流,从而具有容错能力。
首先,明确几个概念:
Kafka运行在一个或多个服务器上。
Kafka集群分类存储的记录流被称为主题(Topics)。
每个消息记录包含一个键,一个值和时间戳。
Kafka有四个核心API:
生产者 API 允许应用程序发布记录流至一个或多个Kafka的话题(Topics)。
消费者API 允许应用程序订阅一个或多个主题,并处理这些主题接收到的记录流。
Streams API 允许应用程序充当流处理器(stream processor),从一个或多个主题获取输入流,并生产一个输出流至一个或多
个的主题,能够有效地变换输入流为输出流。
Connector API 允许构建和运行可重用的生产者或消费者,能够把 Kafka主题连接到现有的应用程序或数据系统。例如,一个
连接到关系数据库的连接器(connector)可能会获取每个表的变化。
Kafka的客户端和服务器之间的通信是靠一个简单的,高性能的,与语言无关的TCP协议完成的。这个协议有不同的版本,并
保持向前兼容旧版本。Kafka不光提供了一个Java客户端,还有许多语言版本的客户端。
2、 架构
2.1 Broker
每个kafka server称为一个Broker,多个borker组成kafka cluster。一个机器上可以部署一个或者多个Broker,这多个Broker连
接到相同的ZooKeeper就组成了Kafka集群。
2.2 主题Topic
让我们先来了解Kafka的核心抽象概念记录流 – 主题。主题是一种分类或发布的一系列记录的名义上的名字。Kafka的主题始
终是支持多用户订阅的; 也就是说,一个主题可以有零个,一个或多个消费者订阅写入的数据。
Topic 与broker
一个Broker上可以创建一个或者多个Topic。同一个topic可以在同一集群下的多个Broker中分布。

当然,Topic只是一个名义上的组件,真正在Broker间分布式的Partition。
2.3 分区与日志
一个主题对应多个分区,一个分区对应一个日志
Kafka会为每个topic维护了多个分区(partition),每个分区会映射到一个逻辑的日志(log)文件。每个分区是一个有序的,不可变
的消息序列,新的消息不断追加到这个有组织的有保证的日志上。分区会给每个消息记录分配一个顺序ID号 – 偏移量, 能够
唯一地标识该分区中的每个记录。
日志分区是分布式的存在于一个kafka集群的多个broker上。每个partition会被复制多份存在于不同的broker上。这样做是为了
容灾。具体会复制几份,会复制到哪些broker上,都是可以配置的。经过相关的复制策略后,每个topic在每个broker上会驻留
一到多个partition:
2.4 保留策略与Offset
Kafka集群保留所有发布的记录,不管这个记录有没有被消费过,Kafka提供可配置的保留策略去删除旧数据(还有一种策略根
据分区大小删除数据)。例如,如果将保留策略设置为两天,在记录公布后两天内,它可用于消费,之后它将被丢弃以腾出空
间。Kafka的性能跟存储的数据量的大小无关, 所以将数据存储很长一段时间是没有问题的。
剩余8页未读,继续阅读
资源评论


weixin_38551431
- 粉丝: 4
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- JAVA 插件化漏洞扫描器,Gui基于javafx。POC 目前集成 Weblogic、Tomcat、Shiro、Spring等。.zip
- keil格式化工具astyle-3.4.13-x64.zip
- java 基于selenium抓取搜狗微信公众号文章.zip
- Java 实现的基于事件的量化回测框架.zip
- Java 基于文件流的加解密实现.zip
- java 基于webrtc+websocket简单直播模式实现,仅供学习webrtc.zip
- JAVA版基于netty的物联网高并发网关.zip
- JAVA版免费开源的微信管家平台。支持微信公众号、小程序、第三方平台等。平台已经实现了公众号基础管理、群发、系统权限、抽奖活动、小程序官网等功能,便于二次开发,可以快速搭建微信应用!.zip
- 大模型应用技术开发入门教程系列
- JAVA版免费微信管家系统。支持微信公众号、微信企业号
- java版微信公众号开发脚手架,基于weixin-java-tools与springboot进行搭建.zip
- Java本地打印程序(基于JasperReport开发).zip
- 基于C#语言的仓储精细化管理的设计与实现.caj
- Java笔记,从基础到进阶到源码分析,包括但不限于SSM,SpringBoot,SpringCloud,中间件.zip
- Java程序设计实训--基于socket网络聊天室.zip
- Java低代码快速开发框架,含轻量级数据中台、轻量级物联网平台
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
