第 1 章 AMQ 流概述
Red Hat AMQ Streams 是一个可大规模扩展、分布式且高性能的数据流平台,基于 Apache ZooKeeper 和 Apache Kafka 项目。
主要组成部分包括:
- Kafka Broker
负责将记录从生成客户端传送到使用客户端的消息传递代理.
Apache ZooKeeper 是 Kafka 的核心依赖项,为高度可靠的分布式协调提供集群协调服务。
- Kafka Streams API
- 用于编写 流处理器 应用程序的 API。
- 生产者和消费者 API
- 基于 Java 的 API,用于生成和消费与 Kafka 代理来回的消息。
- Kafka Bridge
- AMQ Streams Kafka Bridge 提供了一个 RESTful 接口,允许基于 HTTP 的客户端与 Kafka 集群交互。
- Kafka Connect
- 使用 Connector 插件在 Kafka 代理和其他系统间流传输数据的工具包。
- Kafka MirrorMaker
- 在数据中心内或数据中心内两个 Kafka 集群之间复制数据。
- Kafka Exporter
- 在提取用于监控的 Kafka 指标数据时使用的导出器。
Kafka 代理集群是连接所有这些组件的 hub。代理使用 Apache ZooKeeper 来存储配置数据和集群协调。在运行 Apache Kafka 之前,Apache ZooKeeper 集群必须就绪。
图 1.1. AMQ 流架构
1.1. Kafka 功能
Kafka 的底层数据流处理功能和组件架构可以提供:
- 微服务和其他应用以极高的吞吐量和低延迟共享数据
- 消息排序保证
- 从数据存储中重获/重播消息以重建应用程序状态
- 使用键值日志时删除旧记录的消息紧凑
- 集群配置中的水平可扩展性
- 数据复制来控制容错
- 保留大量数据以便立即访问