Kafka简介

Kafka是一个分布式流处理平台,具备消息持久化、高吞吐量特性,广泛应用于数据推送、日志收集等场景。其工作原理涉及发布/订阅消息、分布式系统、容错性及可扩展性。Kafka架构包含Producer、Broker、Consumer和Zookeeper,通过Partition和Replica提供负载均衡和冗余。消费者组允许多个消费者并行处理消息,每个分区只能被一个消费者消费。
摘要由CSDN通过智能技术生成


Kafka 概念

简介

Kafka是一个分布式的流处理平台。一个流处理平台通常有以下特征:

  1. 发布和订阅消息流(类似于消息队列或者企业级的消息系统)
  2. 以容错的、持久的方式存储消息流
  3. 当消息流到来的时候,处理消息

Kafka是一个分布式分区的多副本的多订阅者基于zookeeper协调的分布式日志系统,其主要特点为:

  1. 以**时间复杂度为O(1)**的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能
  2. 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输
  3. 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输
  4. 同时支持离线数据处理和实时数据处理

应用场景

  1. 数据推送
  2. 作为大缓冲区使用
  3. 日志收集(scribe或者nginx)
  4. 服务中间件

工作原理

Kafka是一个分布式系统,由通过高性能TCP网络协议进行通信的服务器和客户端组成。它可以部署在内部和云环境中的裸机硬件、虚拟机和容器上。

服务器:Kafka作为一个或多个服务器的集群运行,这些服务器可以跨越多个数据中心或云区域。其中一些服务器形成存储层,称为代理。其他服务器运行Kafka Connect以将数据作为事件流持续导入和导出,以将Kafka与你现有的系统(例如关系数据库和其他Kafka集群)集成。为了让您实现关键任务用例,Kafka集群具有高度的可扩展性和容错性:如果其中任何一个服务器出现故障,其他服务器将接管它们的工作,以确保连续运行而不会丢失任何数据。

客户端:它们允许您编写分布式应用程序和微服务,即使在网络问题或机器故障的情况下,它们也可以并行、大规模和容错方式读取、写入和处理事件流。Kafka附带了一些这样的客户端,这些客户端由Kafka社区提供的数十个客户端进行了扩充:客户端可用于Java和Scala,包括更高级别的Kafka streams库,用于GO、python、c/c++和许多其他编程语言以及REST API。

Kafka架构

从整体看

从整体来看Kafka就是一个消息队列。生产者往里面发消息,消费者从里面取消息。

Kafka集群

Kafka 架构图

Kafka 的整体架构非常简单,是分布式架构,Producer、Broker 和Consumer 都可以有多个。

  • Producer,Consumer 实现 Kafka 注册的接口。
  • 数据从 Producer 发送到 Broker 中,Broker 承担一个中间缓存和分发的作用。
  • Broker 分发注册到系统中的 Consumer。Broker 的作用类似于缓存,即活跃的数据和离线
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值