= 布鲁克林
image:https://img.shields.io/github/license/linkedin/brooklin.svg[link="https://github.com/linkedin/brooklin/blob/master/LICENSE"] image:https://img.shields.io/badge/bintray-v5.1.0-blue.svg?style=popout[link="https://bintray.com/linkedin/maven/brooklin"] image:https://img.shields.io/gitter/room/linkedin/kafka.svg?style=popout[link="https://gitter.im/linkedin/brooklin"] image:https://img.shields.io/github/last-commit/linkedin/brooklin.svg?style=popout[link="https://github.com/linkedin/brooklin/commits/master"] image:https://img.shields.io/github/issues/linkedin/brooklin/bug.svg?color=orange?style=popout[link="https://github.com/linkedin/brooklin/labels/bug"]
image::images/brooklin-overview.svg[Brooklin 概览] {empty} + 布鲁克林是一个分布式系统,旨在在各种异构的源系统和目标系统之间以高可靠性和吞吐量的方式流式传输数据。为了支持多租户,布鲁克林可以同时支撑不同系统上的数百条数据管线,并且可以轻松地扩展以支持新的源和目标。
== 显著特征
- 可扩展到任何源和目标
** 布鲁克林提供了一个灵活的 API,可以扩展以支持各种各样的源和目标系统。它不局限于单一类型的源或目标系统。 ** 源和目标系统可以自由混合搭配。它们不必是相同的。
-
可扩展性 ** 布鲁克林支持创建任意数量的并发和独立处理的数据流,这样一个流中的错误不会影响其他流。 ** 布鲁克林的核心实现和 API 都支持分区数据流。 ** 布鲁克林可以部署在一个机器集群中(横向扩展)来支持任意多的数据流。
-
易于操作和管理 ** 布鲁克林提供了一个 REST 端点来管理数据流,除了基本的CRUD操作外,还提供了丰富的其他操作(如
暂停
和恢复
)。 ** 布鲁克林还公开了一个诊断 REST 端点,可用于按需查询数据流的状态。 -
在 Kafka 上经受过大规模考验 ** 虽然它不仅限于任何特定系统,但布鲁克林提供了以高可靠性大规模读写 Kafka 海量数据的功能。你可以在 <
-
支持变更数据捕获并启动 ** 布鲁克林支持传播来自数据存储(如关系数据库、键值存储等)的 https://en.wikipedia.org/wiki/Change_data_capture[变更数据捕获]事件。 ** 布鲁克林还支持在传播变更事件之前先流式传输现有数据的快照。
== 使用案例 === 镜像 Kafka 集群
- 多租户
单个布鲁克林集群可用于镜像多个 Kafka 集群间的数据。
- 跨分区的故障隔离
一个坏分区不会影响整个 Kafka 主题。镜像会继续进行其他健康分区。
- 使用正则表达式进行主题白名单
可以使用正则表达式模式匹配主题名称来选择要镜像的主题。
- 暂停和恢复单个分区
通过其 https://github.com/linkedin/brooklin/wiki/Brooklin-Architecture#rest-endpoints[数据流管理服务 (DMS)],布鲁克林公开了 REST API,允许更精细地控制复制管线,例如暂停和恢复 Kafka 主题的单个分区。
查看 https://github.com/linkedin/brooklin/wiki/mirroring-kafka-clusters[镜像 Kafka 集群]了解更多关于使用布鲁克林镜像 Kafka 集群的信息。
=== 变更数据捕获
- 布鲁克林支持传播来自数据存储(如关系数据库、键值存储等)的 https://en.wikipedia.org/wiki/Change_data_capture[变更数据捕获]事件。
- 布鲁克林支持从数据存储启动引导,即在传播任何变更事件之前先流式传输现有数据的快照。
- 对 MySQL 的支持目前正在开发中。
=== 流处理桥
- 布鲁克林可用作为底层流式基础设施,为流处理系统(如 http://samza.apache.org/[Apache Samza]、https://storm.apache.org/[Apache Storm]、https://spark.apache.org/[Apache Spark]、https://flink.apache.org/[Apache Flink])提供数据。
== 试用布鲁克林 欢迎查看我们的 https://github.com/linkedin/brooklin/wiki/test-driving-brooklin[分步教程],了解如何在本地运行几个示例场景中的布鲁克林。
== 文档 https://github.com/linkedin/Brooklin/wiki[布鲁克林 Wiki 页面]
== 社区
- 加入我们的 https://gitter.im/linkedin/brooklin[布鲁克林聊天室 Gitter]
- 使用 https://github.com/linkedin/Brooklin/issues[GitHub 问题]报告错误或提出新功能请求
== 贡献
- https://github.com/linkedin/Brooklin/wiki/Developer-Guide[开发者指南]
- https://github.com/linkedin/brooklin/blob/master/CODE_OF_CONDUCT.md[行为准则]
== 许可证 版权所有 (c) LinkedIn Corporation。保留所有权利。 根据 https://github.com/linkedin/brooklin/blob/master/LICENSE[BSD 2-Clause] 许可证许可。