1.4.1 Kafka入门及使用场景

主流MQ对比

ActiveMQ RabbitMQ Kafka
所属社区/公司 Apache Mozilla Public License Apache/LinkedIn
开发语言 Java Erlang Scala
支持的协议 OpenWire、STOMP、REST、XMPP、AMQP AMQP 仿AMQP
事务 支持 不支持 不支持
集群 支持 支持 支持
负载均衡 支持 支持 支持
动态扩容 不支持 不支持 支持(zk)
  • ActiveMQ 协议支持多,但数据吞吐率最低
  • RabbitMQ 为了保证可靠性和一致性使用这个
  • Kafka 如果数据很庞大,支撑高并发,支持动态扩容,廉价存储,Kafka是大数据中的生态,不能保证可靠性
  • RocketMQ 很少使用,使用成本比较高,官网信息很少,资料太少

Kafka 入门

kafka官网:https://kafka.apache.org/quickstart

Kafka 简介

Kafka 是 linkedin 使用Scala 编写具有高水平扩展和高吞吐量的分布式消息系统。

Kafka 对消息保存时根据 Topic 进行分类,发送消息者成为 Producer ,消息接受者成为 Consumer ,此外 Kafka 集群有多个 Kafka 实例组成,每个实例(Server)称为 broker。

无论是 Kafka 集群,还是Producer和Consumer都依赖于 zookeeper来保证系统可用性,为集群保存一些meta消息。

Kafka 主要功能

Apache Kafka 是一个分布式流处理平台

流处理平台特性

  • 可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。
  • 可以存储流式的记录,并且有较好的容错性。
  • 可以在流式记录产生时就进行处理。

Kafka 适合什么样的场景?

  • 构造实时流数据管道,它可以在系统或应用之间可靠地获取数据。(相当于消息队列)
  • 构建实时流式应用程序,对这些流数据进行转换或者影响。

Kafka 重要概念

接下来,我们将深入探索Kafka的特征,首先我们要了解一些重要概念。

  • Kafka作为一个集群运作在一个或多个服务器上
  • Kafka通过topic对存储的流数据进行分类
  • 每条记录中包含一个key,一个value和一个timestamp(时间戳)

Kafka 核心API

  • Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。
  • Consumer API 允许一个应用程序订阅一个或多个topic,并且对发布给他们的流式数据进行处理。
  • Streams API 允许一个应用程序作为一个流处理器,消费一个或者多个topic产生的输入流,然后生产一个输出流到一个或者多个topic中去,在输入输出流中进行有效的转换。
  • Connector API 允许构建并运行可重用的生产者或者消费者,将Kafka topics连接到已存在的应用程序或者数据系统。比如,连接到一个关系型数据库,捕捉表(table)的所有变更内容。

Kafka 核心API

在这里插入图片描述

相关概念 - AMQP协议

一些基本的概念:
在这里插入图片描述

消费者(Consumer):从消息队列中请求消息的客户端应用程序

生产者(Producer):向broker发布消息的客户端应用程序

AMQP服务器端(broker):用来接受生产者发送的消息并将这些消息路由给服务器中的队列

相关概念 - Topics和Logs

Topic 就是数据主题,是数据记录发布的地方,可以用来区分业务系统。Kafka中的Topics总是多订阅者模式,一个topic可以拥有一个或者多个消费者来订阅它的数据。
在这里插入图片描述

相关概念 - Partition

在这里插入图片描述

相关概念 - Distribution

在这里插入图片描述

相关概念 - Consumers

在这里插入图片描述

Kafka 整体架构

在这里插入图片描述
备份(Replication):为了保证分布式可靠性,Kafka0.8开始对每个分区的数据进行备份(不同Broker上),防止其中一个Broker宕机造成分区数据不可用。

Kafka 使用场景

消息

在这里插入图片描述

跟踪网站活动

在这里插入图片描述

日志聚合

在这里插入图片描述

流处理

在这里插入图片描述

事件采集

在这里插入图片描述

提交日志

在这里插入图片描述

发布了47 篇原创文章 · 获赞 15 · 访问量 7936

猜你喜欢

转载自blog.csdn.net/weixin_43871142/article/details/104920701