在QCon纽约2016大会上,Etsy软件工程师Stefanie Schirmer介绍了其公司如何成功转换到API优先的架构,实现了多设备支持,解决了服务器端性能问题,并被开发团队迅速采用。
Etsy工程团队已经名声在外,他们设计的架构针对变更进行了优化,方便了持续试验,让他们可以每天部署50次。因此,你可能会觉得意外,几年前,他们还在研究解决严重的性能问题。
他们的目标是1000毫秒以下,因此,他们需要降低每个客户端请求的服务器处理时间。遗憾的是,单线程的PHP世界轻易不允许并发API调用,只能缓慢地顺序执行。Schirmer及其同事需要解决如何实现并发,否则,他们就会冒着永久性性能问题的风险。更为复杂的是,他们并不清楚,性能退化的根本原因是后台问题,还是客户端请求的性质。
遗憾的是,开发团队不能只是致力于提高性能。除了要支持和升级Etsy.com网站外,移动应用的新特性需要从平台上增加可扩展性。这两个问题的解决方案需要API团队采用一种新的设计哲学,同时要保证它们是开发团队所熟悉且易于为他们所使用的API。
Etsy使用“元端点(meta-endpoints)”创建了一个两层的API,而不是依赖于一个有一组扁平端点的API。和Netflix及eBay的ql.io的模式类似,Etsy的每个元端点都聚合了多个其他的端点。这让服务器端可以将底层的通用资源组合成设备或视图特有的资源。
整个技术栈构成了一棵多层的树,如下图Schirmer的幻灯片所示。面向客户的“订制(bespoke)”主页被裁剪成了特定的视图。它使用了一个并行元端点层,后者反过来又调用了原子组件端点。只有最底层的组件(它们不是元端点)能够和数据库交互。

元端点层降低了组合网站和移动应用订制视图的复杂性。不过,多个元端点单线程处理无法满足性能需求。Etsy工程师利用cURL发起并行HTTP调用,甚至是修改libcurl以满足需求。自定义的监控工具在请求通过框架扇出时将其调用层次可视化,让开发人员可以定位故障点。
他们还创建了其他的内部工具,用于简化新API的应用。Etsy首先自动化了API客户端(它知道每个端点的具体参数)生成,然后又配上了文档,简化了开发人员的学习曲线。团队没有采用一种通用的培训方法,而是参加实验小组、代码实验室、午餐和学习研讨班,以及与有经验的开发人员结对。
Schirmer认为,她讲述的故事是一个关于架构变革的案例,可以移植到其他系统。与API辅助工具和服务相关的工作有助于平台团队将新API“卖给”开发人员。为此,Schirmer及其同事一直保持着与开发团队的沟通,以确保框架在不断演化的过程中可以照顾到所有人的利益。

原文来自:聊聊架构
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
Nano Banana(gemini-2.5-flash-image 和 gemini-3-pro-image-preview图像模型)是图像生成与编辑的最佳选择,可集成 Nano Banana API,实现高速预览。
支持通过自然语言文本智能生成高质量短视频。用户只需输入一段描述性文字,即可自动合成画面连贯、风格鲜明、配乐匹配的定制化视频内容。适用于短视频创作、广告预演、社交内容生成、游戏素材制作等场景,为开发者与创作者提供高效、灵活、富有想象力的视频生产新范式。
先进的图像理解和分析能力,它能够快速准确地解析和理解图像内容。无论是自然风景、城市建筑还是复杂的场景与活动,都能提供详细的描述和深入的分析。
根据文本提示(prompt)和图片公网访问链接,编辑原图按照特定风格、场景和氛围感的输出新的图像。广泛应用于电商营销、广告设计、创意灵感等领域,为用户带来高效且个性化的AI图像创作体验。
根据文本提示(prompt),生成生成具有特定风格、场景和氛围感的图像。广泛应用于电商营销、广告设计、创意灵感等领域,为用户带来高效且个性化的AI图像创作体验。