扫码阅读
手机扫码阅读

Expedia 使用 WebSocket 和 Kafka 实现近实时的数据流查询

79 2024-07-04

摘要

Expedia 实现了一种解决方案,该解决方案可以从其平台上近实时地查询点击流数据,这使得产品和工程团队能够实时探索数据,以开发和增强数据驱动的特性。这一系统利用了 WebSocket、Apache Kafka 和 PostgreSQL 的组合,以流式传输查询结果至用户浏览器。

Expedia 面对的一个挑战是如何在数据注入后立即查看数据以确保数据质量。事件驱动的工具允许用户快速有效地查询和查看流数据。解决方案使用 WebSocket 实现了浏览器和服务器之间的双向实时通信,优化了性能并减少了资源开销。

这个解决方案包括 UI 应用程序、WebSocket Handler 和 Filter Worker。UI 提供了查询表单和通过 WebSocket 发送查询结果的小部件。服务器端的 WebSocket Handler 负责处理查询并发送流式结果。Filter Worker 将事件流发布到 Kafka 主题。这些服务在 Kubernetes 上运行,并通过 PostgreSQL 数据库同步查询细节,使用 Postgres 的 LISTEN/NOTIFY 功能保持缓存更新。

Filter Worker 显著减少了发布到筛选主题的事件的数量,并将事件路由给正确的用户。这种方法支持 WebSocket 层的扩展,以应对用户数量增长时的更大负载。

想要了解更多,点击 查看原文

为一线互联网公司核心技术人员提供优质内容。科技圈的观察者,前沿技术的传播者。

94 篇文章
浏览 3984
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线