大数据--kafka学习

痞子三分冷 提交于 2021-01-10 12:48:29

第一部分 Kafka架构与实战

1.1 概念和基本架构

1.1.1 Kafka介绍

Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多生产者、多订阅者,基
于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日
志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。

主要应用场景是:日志收集系统和消息系统。
Kafka主要设计目标如下:
	  以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。
	  高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。
	  支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。
*	  同时支持离线数据处理和实时数据处理。
	  支持在线水平扩展

  • 有两种主要的消息传递模式:点对点传递模式、发布-订阅模式。大部分的消息系统选用发布-订阅模式。Kafka就是一种发布-订阅模式。

  • 对于消息中间件,消息分推拉两种模式。Kafka只有消息的拉取,没有推送,可以通过轮询实现消息的推送

      1. Kafka在一个或多个可以跨越多个数据中心的服务器上作为集群运行。
      1. Kafka集群中按照主题分类管理,一个主题可以有多个分区,一个分区可以有多个副本分区。
      1. 每个记录由一个键,一个值和一个时间戳组成。

Kafka具有四个核心API:

    1. Producer API:允许应用程序将记录流发布到一个或多个Kafka主题。
    1. Consumer API:允许应用程序订阅一个或多个主题并处理为其生成的记录流。
    1. Streams API:允许应用程序充当流处理器,使用一个或多个主题的输入流,并生成一个或多个输出主题的输出流,从而有效地将输入流转换为输出流。
    1. Connector API:允许构建和运行将Kafka主题连接到现有应用程序或数据系统的可重用生产者或使用者。例如,关系数据库的连接器可能会捕获对表的所有更改。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!