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

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

科技

作者 | Rafal Gancarz
译者 | 王强
策划 | Tina

lastminute.com 的团队将单个服务分解为多个服务,并引入异步集成来重新构建了搜索结果聚合流程。他们的开发人员使用 RabbitMQ 进行消息传递,使用 Redis 存储来自数据供应商的结果。改进后的架构有了更强的可扩展性和可部署性,资源占用率也有所下降。

lastminute.com 平台在平台的旅行解决方案搜索聚合流程中使用的是第三方供应商。过去,他们使用一个称为运输供应商聚合器 (TA) 的单个 Java 组件封装了整个聚合过程。具体来说,该组件在内部生成许多线程来执行对数据供应商系统的 HTTP POST 请求,并随后在可用时收集和处理结果。

初始搜索结果聚合架构(来源:lastminute.com 技术博客

lastMinute.com 团队发现,之前这个聚合流程架构存在耦合度高、扩展性差、部署复杂、资源利用率高等问题。lastMinute.com 的产品工程师 Giuseppe Pinto 解释了在该架构中观察到的资源利用率挑战:

该系统每天必须处理大约 5000 万个请求 [...],这意味着每秒大约 600 个请求(这里还是按日常流量算出来的数字;但在某些情况下,流量甚至可能会增加一倍)。值得注意的是,每个单独的请求都会生成 N+1 个线程来实现系统的目标。每个线程负责处理来自供应商的完整响应,在某些情况下,一个 HTTP 响应就封装了一个旅行解决方案,大小达到 25 兆字节之多。总之,就线程和内存使用而言,它是高度资源密集型的。

开发人员选择了分解 TA 服务,并将其中的数据提供者集成逻辑移至独立的微服务中,同时让 TA 服务专注于编排和结果聚合工作。新架构引入了 RabbitMQ 作为消息传递服务,它负责将搜索任务分派给数据提供者搜索驱动程序,并将任务完成通知从搜索驱动程序传递回聚合服务。

TA 服务和搜索驱动程序之间的交互采用了远程过程调用(RPC)模式,基于更通用的请求 - 答复模式。该模式需要两个消息队列,第一个用于发送搜索任务请求,包含相关标识符和回复队列的名称;第二队列传送搜索任务完成通知,包含来自搜索任务消息的相关标识符。聚合服务跟踪待处理的搜索任务,并使用相关标识符来匹配分派的搜索任务和接收到的完成通知。

新的搜索结果聚合架构(来源:lastminute.com 技术博客

在新设计中,搜索驱动程序服务在发送回 TA 服务的通知消息中不包含数据提供商返回的旅行解决方案数据。相反,它们以标准化形式将数据存储在 Redis 缓存中,一旦所有搜索完成通知到达,TA 服务就会从 Redis 获取这些数据。

原文链接:

lastminute.com Improves Search Scalability Using Microservices with RabbitMQ and Redis (https://www.infoq.com/news/2024/01/lastminute-search-rabbitmq-redis/)

声明:本文由 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

淘宝启动鸿蒙开发,微信会跟进吗?马云抄底阿里;“哄女友挑战”上线即爆火,24 小时用户达 60 万 | Q 资讯

贾扬清新作被某印度创始人内涵借鉴,懒得纠缠:巧了,正准备开源,GitHub 见

被严重宕机坑惨了!多家公司向这个已经存在10年却“鲜为人知”的架构迁移

Apache 顶级项目 MXNet 退役!大神李沐创办、亚马逊首选深度学习框架如何从大厂“宠儿”到落入“冷宫”?

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
个人感慨之四十七 幺蛾子人力资本管理服务提供商:罗科仕 ,来自北京,美国纳斯达克上市路演PPT(25页)拆分还是整合:单体和微服务的技术抉择《上海市优化政务服务提升行政效能深化“一网通办”改革方案》发布,你最期待哪些新变化?微软开源Azure RTOS,并更名为Eclipse ThreadX微服务穷途末路?新招式能否开启“黄金演进期”?百度搜索结果疑被微软Edge浏览器屏蔽/X首次暂停搜索Taylor Swift/周星驰将与抖音推出系列短剧外企社招丨Dräger德尔格,行业全球领导者,15薪,六险一金,多样福利,偏爱留学生个人感慨之四十六 神奇的国度Amex Delta 系列联名卡更新:年费上涨,增加各类credit,直接送MQD,同行票增强产出精氨酸酶活性提升5.2倍,湖北大学系统性改造地衣芽孢杆菌Tat途径,扩展高价值蛋白生产前景UBS,计划扩展国内资管业务!华为查询建议新范式MMQS入选WWW 2024,解锁基于人类反馈的多模态查询建议个人感慨之四十九微服务之间调用的异常应该如何处理?Llama2-7B升级为Pro版本!腾讯提出「块扩展」训练法,效果全面提升Quarkus 开发基于 LangChain4j 的扩展,方便将 LLM 集成到 Quarkus 应用程序中​AAAI 2024 | 首个多模态实体集扩展数据集MESED和多模态模型MultiExpan开源 Redis 的生命将就此终结?Redis 之父回应分叉浪潮:未来谁能领先,各凭本事!突发!美国将限制中国使用微软 Azure、亚马逊 AWS 训练 AI大模型微服务过微怎么办?字节跳动提供了一种合并编译的方案|QCon过去这一年High-Speed Train Compartment for Children Excites Netizens服装服务提供商:思宏国际,上调IPO股数至230万股 募资额增加16%人民银行设立信贷市场司:货币政策创新发力,金融服务提质增效Reddit IPO首日大涨48%,社交媒体卖用户数据第一股,股民追捧但Altman投资却差点亏本个人感慨之四十八 公权力10秒整理搜索结果,脑图表格一键生成,网友:搜索终于有了该有的样子字节AI助理产品海外上线;英伟达推出生成式AI微服务;GPT-4疑似被削弱澳洲房产搜索量飙升, 大批中国人来买房! 这些华人区搜索榜上有名使用 Docker Compose 部署 RabbitMQ 的一些经验与踩坑记录微软开抢年收入上亿美元的 Redis 饭碗?开源性能遥遥领先的 Garnet:无需修改,Redis 客户端可直接接入ChatGPT和视觉搜索,正在改变搜索市场格局在 Fedora ostree 系统上搜索软件包 | Linux 中国云原生消息流系统Apache RocketMQ在腾讯云的大规模生产实践
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。