【函数计算实践】一个应用案例

简介: 本文起源于一个用户匹配的需求。用户的不同信息分布于两个系统,且客观上无法直接打通(不必纠结具体是什么场景,这是真实存在,且非技术上能解决的),所以就涉及到两个系统id匹配的问题。

一 背景

   来自一个用户匹配的需求。用户的不同信息分布于两个系统,且客观上无法直接打通(不必纠结具体是什么场景,这是真实存在,且非技术上能解决的),所以就涉及到两个系统id匹配的问题。

   先抽象问题:系统A,系统B;系统A中存在一个用户a(字段:a_id, a_img, a_name), 系统B中可能有a的补充信息(字段:ab_id, ab_img,ab_name),

   目标:如果B中存在用户a的信息,那么希望能找到并进行匹配,并把匹配结果返回系统A,结果格式:a_id, a_img, a_name,ab_id。

   一些前提:首先由于必要信息从外部服务进入系统B不是实时的,这里就存在一些延迟,所以上述的匹配率数据,允许有一定的时间延迟,预期是最终的匹配率/绑定率达到预期水平。

二 问题详细描述

字段说明:

1)a_id 用户a在系统A的id;

2)a_img 用户a在系统A的属性图片链接,注: a_img和ab_img虽然都是用户a的图片链接,但可能链接并不相同。例如a_img: http://sysa/a1.jpg,ab_img:http://sysb/b2.jpg

3)a_name 用户a在系统A的属性昵称;

4)ab_id 用户a在系统B中的id。

   两个系统中的图片,正常情况下,img内容是相同的(链接可能不同);或者是缩略图关系; name通常不会修改,但存在多个用户昵称相同的情况。

   这两个属性是判定两个系统中的用户是否是同一个的主要依据。

三 匹配策略

注:以下只是项目初期的简化匹配策略。因为数据特性,经过统计和特征分析,验证准确率可以达到预期,所以初期不会为百分之几的优化投入过多资源和精力。所以不必纠结策略的准确率

1、首先通过昵称匹配

   当系统A的用户昵称,与系统B的有且只有一条记录昵称相同时,将这两个记录匹配 【根据真实数据经验,用户进入两个系统记录的时间规律,并允许较低的错误率;支持人工修复】;

2、当系统A的输入记录,与系统B的多条记录昵称相同时,继续判断图片内容。这里的判断步骤设计如下:

2-1 分别拉取a_img 和 ab_img的图片内容(字符串),如果内容相同,那么确定是同一条记录,记录匹配关系;

2-2 如果内容不同,计算两张图片的相似度(汉明距离)。当相似度大于指定阈值时,认为二者匹配,记录匹配关系

四 系统交互流程

系统A与B的交互设计如下图所示,注:系统B下又分为任务服务、web服务、api服务三个子服务。

五 计算资源管理

   可以看到,这里可能会有一个比较耗费资源的动作,就是需要匹配图片内容时。我们要拉取图片内容、字符串直接比对、简化特征、计算汉明距离,而当这个计算逻辑被并发调用的频率很高时,所需的带宽、计算能力都有可能成为瓶颈。自运维就需要解决峰值问题,或强制限制调用频率。所以采用函数计算来做弹性支持。

   另外,为了减少重复的图片拉取动作,降低流量消耗,且绑定数据存储在系统B中。那么我们先完成系统B内img的内容拉取,和特征提取工作,对于一个新的匹配请求,我们只需要拉取a_img的内容并特征提取就可以了,减少了近一半的工作。

六 上线后出现的问题及优化

   项目上线后,我们持续观察了一段时间,发现函数计算调用次数过高。官方的计价标准,每月全地域免费资源使用量:40万 GB-S。正常情况下,可以控制本业务的调用量在预算范围之内。但实际线上的调用发现,短短几天就快到达收费门槛,这显然是不符合预期的。

   为什么会造成这个问题?是真实的调用需要,还是有重复调用导致额外开销?这点需要先排查清楚。

首先查看匹配结果数据,发现线上A、B两个系统用户匹配率低于预期,这就导致有一些用户在系统B内找不到可以绑定的ab_id;而执行中发现,系统A触发绑定计算的时机是在用户进行微信登陆的时候,而且有会多次调用;预期借此提高最终匹配率(因为有些信息可能会更新,或延迟获取到,当信息补全时,是有可能匹配上之前计算时没能匹配的用户的。这也是一个客观前提)。但这带来的问题就是,会导致多次不必要的重复计算,至少在信息更新前的一段时间内是。

   为了解决上述问题,补加了一个输入用户id,在一个周期内不再重新计算的限制。因为绑定率/匹配率看中的是最终数据,所以能够接受一定的时间延迟。策略上线后进行了一周观察,确定在没有降低匹配率的前提下,计算量大大减少,而减少下来的这些计算资源,就是实实在在的真金白银。

七 未来优化方向

   目前,项目已经上线运营一个月的时间,观察服务正常,未来继续在调用量优化、匹配准确率、召回率提升几个方面进行深入优化。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
3月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
510 30
|
4月前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
532 12
|
5月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
国诚投顾携手阿里云,依托Serverless架构实现技术全面升级,构建高弹性、智能化技术底座,提升业务稳定性与运行效率。通过云原生API网关、微服务治理与智能监控,实现流量精细化管理与系统可观测性增强,打造安全、敏捷的智能投顾平台,助力行业数字化变革。
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
|
9月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
975 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
5月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
|
7月前
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
369 0
|
9月前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
775 30
|
4月前
|
人工智能 运维 安全
聚焦 AI 应用基础设施,云栖大会 Serverless AI 全回顾
2025 年 9 月 26 日,为期三天的云栖大会在杭州云栖小镇圆满闭幕。随着大模型技术的飞速发展,我们正从云原生时代迈向一个全新的 AI 原生应用时代。为了解决企业在 AI 应用落地中面临的高成本、高复杂度和高风险等核心挑战,阿里云基于函数计算 FC 发布一系列重磅服务。本文将对云栖大会期间 Serverless+AI 基础设施相关内容进行全面总结。
|
4月前
|
人工智能 Kubernetes 安全
重塑云上 AI 应用“运行时”,函数计算进化之路
回顾历史,电网的修建,深刻地改变了世界的经济地理和创新格局。今天,一个 AI 原生的云端运行时的进化,其意义也远不止于技术本身。这是一次设计哲学的升华:从“让应用适应平台”到“让平台主动理解和适应智能应用”的转变。当一个强大、易用、经济且安全的 AI 运行时成为像水电一样的基础设施时,它将极大地降低创新的门槛。一个独立的开发者、一个小型创业团队,将有能力去创造和部署世界级的 AI 应用。这才是技术平权的真谛,是激发全社会创新潜能的关键。

热门文章

最新文章