京东SAF:服务架构框架详解

需积分: 10 6 下载量 3 浏览量 更新于2024-07-18 收藏 712KB PPTX 举报
"京东SAF是服务架构框架,旨在统一RPC调用、提升开发效率并确保服务质量。它包含RPC调用框架和服务治理功能,如服务注册、订阅、动态推送和灵活的路由规则。自上线以来,SAF已广泛应用于京东系统,接入了大量接口和服务实例,实现了高效的服务调用和管理。" 京东SAF(Service Architecture Framework)是一种服务架构框架,旨在统一公司的技术栈,推动系统服务化和SOA化。其主要目标包括为老板提供统一的RPC(Remote Procedure Call)调用框架,实现技术对齐,以及为开发人员提升开发效率和服务质量。自2014年4月上线以来,SAF已经成为京东系统服务化的重要基础组件,接入了九百多个接口,覆盖近两千台服务器,拥有超过六千个在线服务实例,并处理着每天数十亿次的服务调用。 SAF的核心功能分为两大部分:RPC调用框架和服务治理。RPC调用框架使开发人员能够以调用本地方法的方式透明地调用远程方法,只需简单配置,不需额外的API侵入。该框架支持长链接协议,利用非阻塞I/O(nio)和长连接进行远程调用,并且还支持Hessian、WebService、REST等多种协议。此外,它具备Failover机制,当服务调用出错时,能自动切换到其他服务提供者重试,并提供了多种负载均衡策略,如随机、轮询和最少调用等。 服务治理功能则包括服务注册和订阅,服务列表的动态推送,以及灵活的服务路由规则和调用参数下发。服务提供者在启动时向注册中心注册,而服务消费者订阅所需的服务,通过注册中心获取服务列表。注册中心负责解决服务提供者(Provider)和服务消费者(Consumer)之间的匹配问题,根据接口、版本和group分组进行区分。这一机制解决了服务调用的单点问题,实现了服务的自动发现和注册。 使用SAF的好处在于,它可以实现无代码侵入的服务发布与调用,加速服务解耦;支持多协议发布,无需修改业务代码;提供高性能的RPC调用;通过服务自动注册和发现解决单点故障;实施高可用策略,便于水平扩展服务能力;实现软负载均衡,减少对硬件负载均衡器的依赖;同时,SAF还提供了便捷的服务运维管理工具。 发布服务通常涉及配置服务接口、版本和实现,然后通过特定的注解或配置文件将服务注册到SAF框架。调用服务则需要指定服务的ID或名称,SAF会根据配置自动查找并调用相应服务。 京东SAF是京东内部服务化战略的关键组成部分,它通过提供一套标准化、高效的服务架构框架,提升了系统的灵活性、稳定性和可扩展性,极大地促进了京东的技术创新和业务发展。