闲鱼APP架构演进:从单一到平台的转型之路

2 下载量 56 浏览量 更新于2024-06-27 收藏 4.95MB PPTX 举报
"咸鱼APP架构的演进过程展示了从早期的单一服务架构到平台期的全面演进,包括服务化改造、效率提升、扩展性和业务隔离的建设,以及架构框架SWAK的引入用于解决代码耦合和稳定性问题。" 在闲鱼APP的发展历程中,其架构经历了多个阶段的演进,以适应快速变化的业务需求和市场规模的扩大。初期,由于业务规模较小,闲鱼采用的是未进行服务化拆分的单一服务架构,基于JavaServlet API的Webx框架和Velocity模板引擎进行开发,这种架构对于快速迭代是有帮助的。随着用户基数的快速增长,闲鱼面临着线上服务性能瓶颈和迭代速度跟不上业务需求的问题。 在试错期,闲鱼进行了第一轮服务化改造,通过Mbaas(移动后端即服务)提供基础数据源,使客户端能够通过类SQL描述获取所需信息,减少了后端接口的增加,从而实现活动和feeds投放的自动化。这一阶段,架构的核心原则是在可接受的业务范围内牺牲部分线上服务质量以换取更快的响应速度。同时,业务关注点转向提升效率,建设更多能力验证业务方向。 进入发展期,闲鱼全面拥抱Flutter,构建了基于Flutter和原生混合栈的开发框架,提高了开发效率和平台的扩展性。此时,业务的核心问题是如何让更多外部参与者加入共享经济平台,而平台生态建设超出了闲鱼自身的能力。因此,架构关注点转向扩展性、业务隔离和平台基础能力建设。 到了平台期,架构问题凸显,如代码耦合、开发运维效率低下和稳定性问题,这直接影响到个人业务的支撑效率。为了解决这些问题,闲鱼引入了业务隔离框架SWAK(Swiss Army Knife的缩写)。SWAK框架旨在通过分析对象标签,分离不变的逻辑和可变的逻辑,将可变逻辑抽象为接口,并根据标签实现多种独立的策略,以提高系统的灵活性和可维护性。 咸鱼APP的架构演进是一个从简单到复杂,从单一到多元化,从注重速度到兼顾稳定性和扩展性的过程。通过不断的迭代和优化,咸鱼成功地构建了一个能够支持大规模用户、高效开发和良好业务隔离的平台架构。