基于 RabbitMQ 和 Redis,美版“携程”网使用微服务提升搜索扩展性
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
摘要: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
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)