Zilla实战案例:构建高效实时数据管道的完整步骤与最佳实践
【免费下载链接】zilla🦎 A high-performance, multi-protocol gateway for Apache Kafka and AI. Securely connect applications, APIs, agents, and devices to real-time data through Kafka, HTTP, SSE, MQTT, gRPC, and MCP.项目地址: https://gitcode.com/gh_mirrors/zi/zilla
Zilla是一个高性能的多协议网关,专为Apache Kafka和AI设计,能够安全地连接应用程序、API、代理和设备到实时数据流,支持Kafka、HTTP、SSE、MQTT、gRPC和MCP等多种协议。通过Zilla,用户可以轻松构建高效的实时数据管道,实现不同系统之间的无缝数据传输与集成。
Zilla网关核心功能与架构解析 🚀
Zilla网关作为连接消费者与系统数据的关键枢纽,具备众多强大功能。它支持无状态部署,可在用户环境中灵活运行,能够为每个请求携带身份信息,如OAuth、JWT等,还能基于主题、API和工具实施策略,进行允许、拒绝操作及角色管理,同时提供可观测性与审计功能,包括指标、跟踪和日志记录。
从架构图中可以清晰看到,Zilla网关左侧连接着Web和移动应用、设备和物联网、合作伙伴、内部服务以及AI代理等各类消费者,右侧则与Apache Kafka、REST和OpenAPI服务、数据库和缓存、数据产品等系统和数据相连,通过Zilla网关实现了多协议的统一接入与数据流转。
构建实时数据管道的准备工作 ✅
在开始构建实时数据管道之前,需要确保环境中已安装Docker,这是运行Zilla示例所必需的。可以通过Docker安装指南获取安装方法。同时,建议获取Postman collections,以便有更多方式与示例进行交互。
首先,克隆Zilla仓库,使用以下命令:
git clone https://gitcode.com/gh_mirrors/zi/zilla克隆完成后,进入项目目录,就可以开始后续的操作了。
实战案例:HTTP与Kafka的CRUD操作实现 🔧
下面以http.kafka.crud示例为例,详细介绍如何使用Zilla构建实时数据管道,实现通过REST API对Kafka主题进行CRUD操作。
启动Docker Compose栈
进入examples/http.kafka.crud目录,执行以下命令启动Docker Compose栈:
docker compose up -d该示例将Zilla配置为暴露REST API,对items-snapshots这个日志压缩的Kafka主题进行创建、更新、删除和读取消息操作,把Kafka主题当作一个表来使用。
了解API端点
启动后,可使用以下API端点进行操作:
| 协议 | 方法 | 端点 | 主题 | 描述 |
|---|---|---|---|---|
| HTTP | POST | /items | items-snapshots | 创建一个项目 |
| HTTP | PUT | /items/{id} | items-snapshots | 按键更新项目 |
| HTTP | DELETE | /items/{id} | items-snapshots | 按键删除项目 |
| HTTP | GET | /items | items-snapshots | 获取所有项目 |
| HTTP | GET | /items/{id} | items-snapshots | 按键获取项目 |
验证各项操作
创建项目
执行以下命令发送POST请求创建项目:
curl -k -v -X POST http://localhost:7114/items -H 'Idempotency-Key: 1' -H 'Content-Type: application/json' -d '{"greeting":"Hello, world1"}'如果成功,会返回HTTP/2 204状态码。这里的Idempotency-Key可以去除,去除后会生成随机键。
获取特定项目
使用GET请求获取刚才创建的项目:
curl -k -v http://localhost:7114/items/1成功的话,会返回类似以下的输出:
... < HTTP/2 200 < content-length: 27 < content-type: application/json < etag: AQIACA== < {"greeting":"Hello, world1"}%更新项目
通过PUT请求更新项目:
curl -k -v -X PUT http://localhost:7114/items/1 -H 'Content-Type: application/json' -d '{"greeting":"Hello, world2"}'返回HTTP/2 204状态码表示更新成功。
删除项目
执行DELETE请求删除项目:
curl -k -v -X DELETE http://localhost:7114/items/1返回HTTP/2 204状态码即删除成功。
停止并清理资源
完成操作后,使用以下命令停止并清理Docker Compose栈创建的资源:
docker compose downZilla Studio:可视化配置生成工具 🎨
Zilla Studio是一个简单、直观的可视化工具,用于生成zilla.json配置文件,支持部署Zilla API网关。通过Studio,可以创建用于与Kafka服务交互的REST和SSE API配置。
在Zilla Studio界面中,左侧可以配置Kafka集群、Kafka服务、HTTP服务器、REST API、SSE API、Guard和Vault等。配置完成后,点击“GENERATE CONFIG”按钮,将文件保存在Zilla目录中,并在运行Zilla时作为Docker卷挂载。例如,使用以下命令运行:
docker run -v `pwd`/zilla.json:/zilla.json ghcr.io/aklivity/zilla:latest start -v最佳实践与注意事项 ⚠️
- 确保Zilla版本最新:运行
docker pull ghcr.io/aklivity/zilla:latest命令获取最新版本的Zilla镜像,也可以通过设置ZILLA_VERSION环境变量指定特定版本。 - 合理规划主题设计:在使用Kafka时,合理设计主题结构,如使用日志压缩主题作为表来支持CRUD操作,能提高数据处理效率。
- 安全认证配置:根据实际需求配置合适的安全认证方式,如JWT授权等,保障数据传输的安全性。
- 充分利用示例资源:项目中的examples目录下有众多示例,如http.kafka.crud、grpc.kafka.proxy等,可根据具体场景参考使用。
通过以上步骤和最佳实践,你可以利用Zilla轻松构建高效、安全的实时数据管道,实现不同系统间的数据无缝集成与传输。无论是简单的HTTP与Kafka交互,还是复杂的多协议数据流转,Zilla都能提供强大的支持。
【免费下载链接】zilla🦎 A high-performance, multi-protocol gateway for Apache Kafka and AI. Securely connect applications, APIs, agents, and devices to real-time data through Kafka, HTTP, SSE, MQTT, gRPC, and MCP.项目地址: https://gitcode.com/gh_mirrors/zi/zilla
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考