dot 速度的未来正在您所在的城市举办活动。

加入我们参加 Redis 发布会

使用实时记录跟踪处理大量数据

在聚合了来自数百或数千个不同系统和位置的庞大数量的不一致数据后,DigitalRoute 的使用数据平台 (UDP) 随后会分析并对所有这些数据采取行动……实时!UDP 不仅转换数据,还过滤和转发数据,在公司基础设施中创建智能层。听起来很吓人,对吧?

确实 吓人,但跟踪大型复杂环境中的客户消费正是 DigitalRoute 的使用数据平台的构建目的,不仅适用于电信行业的组织,也适用于公用事业、金融服务和旅游等其他行业。

我们的技术每天处理 3000 亿次交易,其中大部分数据是流式数据。不用说,我们的平台非常需要速度。行业基准要求端到端处理时间少于 500 毫秒,每秒每客户的处理量轻松达到数千次交易。更苛刻的是我们的客户,他们依靠我们提供实时的洞察力,以便他们可以实时采取行动来改善用户体验。

使用 Redis 进行实时记录跟踪

我的应用程序开发团队最近为 DigitalRoute 的平台产品引入了新的跟踪功能。此功能跟踪任何给定记录在客户系统中的路径:其来源、当前位置以及沿途应用了哪些类型的转换。由于单个交易可以传播到系统的许多区域以进行细粒度关联,因此我们需要一个强大的后端,能够高效地存储这些信息,并将其实时呈现给请求应用程序。并且与我们平台的每个其他方面一样,它需要速度快。

Chart describing DigitalRoute's trace flow from workers, to platform, to backend services

最初,我们使用运行在我们自己的“抽象执行器”之上的 Akka 集群作为这些通信的后端工具,但事实证明,这种部署对我们来说管理起来非常痛苦,因为每次连接断开时,我们都必须执行一系列繁琐的管理步骤来恢复集群。在收到几个问题报告后,我们决定尝试使用 Redis 的发布/订阅 消息传递功能。

在发布/订阅通信模式下,发布者发布数据状态已更改(以及更改本身),订阅者以持续监听模式更新其内部状态以响应。Redis 的发布/订阅消息代理证明设置起来极其简单,而且非常非常快。我们用它来交换跟踪消息。由于我们的接口具有许多实例,因此 Redis 通道监听任何给定时间点活跃工作者报告的跟踪。然后,使用报告的 ID,我们可以找到一个排序集,其中包含按正确顺序排列的跟踪。我们受益于能够随时订阅通道,并监听任何工作者报告的任何新跟踪;无需创建单独的服务。

展望 Redis 流

在 RedisConf18 听说 Redis 流 后,我做了一些研究,相信这种新的数据结构将更适合我们的用例。发布/订阅消息模式是一种“发布即忘”的方式,但 Redis 流会持久化数据——即使数据消费者离线或断开连接。这种内置的数据持久性完美地补充了我们的跟踪功能想要提供的历史视图。Redis 流还在生产者和消费者之间创建了一个多对多的数据通道,这对于我们来说非常理想,因为我们的平台通常处理面向多个消费者的多源数据。

借助 Redis 的帮助,DigitalRoute 全速前进!

了解您如何 在您的应用程序中使用 Redis 流,并在 Digital Route 的 Twitter 上关注他们,了解他们的下一步计划。