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 退役!大神李沐创办、亚马逊首选深度学习框架如何从大厂“宠儿”到落入“冷宫”?

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

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