入门大数据---Kafka是什么?

1.Kafka简介

Kafka是一种计算框架,结合了之前的MapReduce批处理和流式计算为一体,可以处理历史数据和实时数据。

流平台具有三个关键功能:

  • 发布和订阅记录流,类似于消息队列或企业消息传递系统。
  • 以容错的持久方式存储记录流。
  • 处理记录流。

Kafka通常用于两大类应用程序:

  • 构建应用程序和Kafka之间的管道流
  • 构建响应流

另外几个概念:

  • Kafka可以部署到多台机器上,甚至不同区域的机房里面
  • Kafka的记录流存在Topic(主题)里面
  • 每条记录由key,value和timestamp组成

Kafka提供了四个核心API:

kafka-apis

Topics and Logs(主题和日志)

一个Topic有0个,1个或多个订阅者。一个Topic有1个或多个分区。另外还有个任务概念,每个任务可以处理多个分区。如下图所示:

streams-architecture-threads-1583573766833

每个Topic维护着一个有序的Log,订阅者根据自己记录的偏移量来灵活读取Log。

扫描二维码关注公众号,回复: 9648427 查看本文章

Distribution

每个Log有一个主节点和多个从节点,这些节点分布到不同机器上,从节点同步主节点内容,当主节点挂了,会从从节点里面选取一个主节点继续运行。每个主节点机器上同时分布着其它机器的从节点,同时主节点也分布着其它Log的主节点,画个图脑补下:

Log分布图

Geo-Replication(地理复制)

要保证Kafka可靠,可以将服务部署到多个省,多个国家的云中心,在出问题的时候方便恢复。

Producers(生产者)

Producer负责将数据发送到Topic里面。

Consumers(消费者)

这里有个Consumer Group概念,每个Consumer Group里面有多个Consumer,Consumer Group负责订阅分区消息,并分配给Consumer。

consumer-groups

Multi-tenancy(多租户)

可以制定一个多租户解决方案,通过配置哪些主题可以生成或消耗数据来启用多租户。

Guarantees(担保)

Kafka通过顺序的记录日志和允许n-1台服务器挂掉来保障服务的稳定。

Kafka as a Messaging System(Kafka作为消息传递系统)

Kafka同时兼容了队列传递和发布订阅传递。并且通过分区机制可以有序并行的给消费者分发消息。

Kafka as a Storage System(Kafka作为存储系统)

任何消费订阅消息都能存储到Kafka里面,并分发备份到不同机器上。所以Kafka可以看作是一种高性能,低延迟,日志存储的分布式文件系统。

Kafka for Stream Processing(用于流处理的Kafka)

Kafka不仅可以进行写入,读取和存储,还可以进行实时的流处理。简单的通过发布订阅APIs就能进行处理,复杂的有专门的 Streams API.

streams-architecture-overview

Putting the Pieces Together(把多种方案汇聚一身)

Kafka汇聚了队列,发布订阅,批处理,流处理和分布式存储技术。可以说很厉害。

2.Kafka架构

Kafka架构图

系列传送门

猜你喜欢

转载自www.cnblogs.com/shun7man/p/12436729.html
今日推荐