扫码阅读
手机扫码阅读

基于 RabbitMQ 和 Redis,美版“携程”网使用微服务提升搜索扩展性

45 2024-07-04

摘要:lastminute.com 技术团队对其旅行解决方案搜索聚合流程进行了重构,从一个单一的服务转变为多个服务,并引入了异步集成。他们采用了 RabbitMQ 进行消息传递和 Redis 用于存储结果,这带来了更高的可扩展性和资源使用效率。

原架构问题:该平台原本使用单一的 Java 组件,称为运输供应商聚合器 (TA),处理所有聚合过程。这个组件通过生成大量线程来执行数据请求并处理结果,导致系统耦合度高、扩展性差、部署复杂且资源利用率高。Giuseppe Pinto 产品工程师指出,系统每天要处理约 5000 万个请求,每个请求都会产生 N+1 个线程,对资源的占用非常密集。

新架构:开发人员将 TA 服务分解,创建了专门的微服务来处理数据提供者的集成逻辑,而 TA 服务则专注于编排和结果聚合。RabbitMQ 负责分派搜索任务和传递完成通知,通过两个消息队列实现远程过程调用(RPC)模式。搜索驱动程序将搜索结果数据存储在 Redis 缓存中,而不是直接发送给 TA 服务,从而提高了处理效率。

结论:通过引入 RabbitMQ 和 Redis,lastminute.com 的新架构提高了搜索聚合流程的可扩展性和资源利用效率。这个案例展示了微服务架构和异步集成在处理大规模数据请求时的优势。

原文链接:lastminute.com Improves Search Scalability Using Microservices with RabbitMQ and Redis

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

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

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