火箭引擎:Firebolt,一款强大的流式数据处理框架
🚀 快速启动您的实时数据管道 🚀
Firebolt是一款由Golang编写的流式事件处理和数据管道应用框架。它简化了构建高可靠性数据处理系统的复杂性,特别适合用于日志收集、观察性数据管道以及流式ETL任务。
简介
Firebolt的核心设计理念是使开发人员能够轻松创建可靠的管道应用程序,这些程序可以从一个数据源接收事件并进行处理。其自带的Kafka消费者源和Kafka生产者节点,以及Elasticsearch索引节点,提供了基础的数据输入与输出能力。
我们还提供了一种灵活的接口设计,允许您自定义数据处理节点,以满足各种业务需求。
示例:日志收集管道
在DigitalOcean中,我们的首个Firebolt应用就是日志处理系统,它从多个系统获取日志,并将它们存储到Elasticsearch以便后续分析。这个系统包括一个Kafka消费者源,以及一些自定义节点和Kafka生产者节点。
Firebolt能为您提供什么?
Firebolt旨在解决实时数据管道应用中的常见问题,让您能够构建能够处理大量数据的集群应用,且性能稳定:
- Kafka集成:轻松配置Kafka源和sink,内置消费者和生产者的lag监控。
- 松耦合:节点间松散耦合,易于测试和重用。
- 过滤机制:通过返回
nil
轻松筛选数据流。 - 错误处理:通过简单的配置,将处理失败的事件发送至Kafka主题,方便后期恢复或分析。
- 断点管理:设置断点管理策略,以便在故障后快速恢复实时处理。
- 并行恢复:故障后,既能处理实时数据,也能按限速补发故障期间的数据。
- 监控:开箱即用的Prometheus指标,无需额外编码即可跟踪源和所有节点的性能。
- 领导者选举:基于Zookeeper的领导者选举,确保有且只有一个实例执行特定操作。
文档与支持资源
- 配置:了解配置文件格式。
- 执行:理解Firebolt如何处理数据。
- 注册表:添加自定义节点类型。
- 示例代码:运行Firebolt执行器的示例代码。
- 源:实现与使用自定义源。
- 同步节点:实现与使用同步节点。
- 扇出节点:实现与使用扇出节点。
- 异步节点:实现与使用异步节点。
- 领导者选举:启动选举及选举结果的使用。
- 消息传递:在系统组件之间发送和接收消息。
- 指标:默认暴露的指标及自定义节点指标的添加。
内置类型
- Kafka 生产者:向Kafka主题发布事件的节点。
- Elasticsearch:向Elasticsearch集群索引文档的节点。
开发与构建
Firebolt依赖于v1.3.0或更高版本的librdkafka。在开始构建Firebolt应用(或参与Firebolt本身的开发)之前,请按照这里的指南安装。
例如,在Debian系发行版上:
sudo wget -qO - https://packages.confluent.io/deb/5.4/archive.key | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.confluent.io/deb/5.4 stable main"
sudo apt-get update
sudo apt-get install -y librdkafka1 librdkafka-dev