尽管不一样的分布式服务框架实现细节存在差别,可是核心功能差别不大,下面的架构图描绘了一个分布式服务框架的总体逻辑架构。缓存
总共分为 3 层:安全
服务层,Service,其中主要部分就是动态代理,主要用于将服务提供者的接口封装成远程服务调用。上层的服务接口用于 Spring 之类的业务框架使用,也是 Spring 的 bean.网络
过滤器层,服务调用职责链,提供多种调用切面供框架自身和使用者扩展,例如负载均衡,性能统计,服务调用完成通知,失败重试等。架构
RPC 层,这里就是 RPC 框架的核心部分,包括通讯框架,序列化框架,还有用于屏蔽底层通讯框架和序列化框架的抽象接口。负载均衡
分布式服务框架一般会包含另外两个重要功能:服务治理中心 和 服务注册中心。框架
1. 服务注册中心:负责服务的发布和通知,一般支持对等集群部署,某个节点宕机不会影响整个集群不可用。即便所有宕机,只影响新的节点注册和发布,不影响现有的,由于客户端须要缓存服务路由信息。运维
2. 服务治理中心: 服务治理中心一般包括服务治理接口和服务治理 Portal,架构师,测试人员和系统运维人员经过服务治理 Portal 对服务的运行状态,历史数据,健康度和调用关系等进行可视化的分析和维护,目标是要持续优化服务,防止服务架构腐化,保证服务高质量运行。异步
虽然每一个服务框架不尽相同,可是还有有一些核心功能是相同的,好比如下功能:分布式
以上功能能够按照业务定制,不须要 100% 支持。性能
分布式服务框架的性能确定比不上本地调用,缘由是:网络通讯,序列化,反射调用,动态代理这些都会消耗性能。因此须要有性能指标。
以上就是在设计分布式服务框架须要注意的地方,例如总体架构的设计,框架须要哪些功能,框架的须要保证哪些性能。同时,一个框架只是可使用时不够的,还须要服务治理,保证服务不被腐化,同时保证服务的健康。