1、服务管理平台1 产品综述1.1 产品定义服务管理平台,是将基于服务技术、组件式开发的、独立运行的服务进行统一的接入、统一管理、统一调度,实现异构服务间集成与管理,最终实现所有运行中的服务可以有序、正常、持续的运转。1.2 产品定位服务管理平台是针对系统庞大、需求持续增加、需求变化较为频繁、接口数目庞大、接口调用频繁,并倾向于使用服务架构系统管理,而提供一体化的服务管理平台。服务管理平台通过集成支撑服务、行业服务、工具服务、中间件服务,对所有的服务进行统一的管理和监控,对上层应用的服务调用提供基础支撑。2 产品核心价值2.1 快捷部署现有平台,针对单一系统,功能的增加或者原有功能的修改,都需要开
2、发人员重新梳理原有系统接口,并针对每个接口进行调整然后重新测试部署,对开发人员和运维人员都带来不小的负担,开发实施时间长。服务管理平台正是为解决这一难题而出现的,灵活的服务配置改变原有单模式,将服务按功能或行为划分为响度独立的功能服务,每个服务都可独立部署运行,对外提供统一的服务接口,快速应对用户需求的变化。2.2 强大的服务管理支撑服务管理平台可接入依照服务模式和灵活的调度策略开发出来的产品模块,实现服务的注册、服务依赖关系的管理、服务的资源目录、服务路由等功能,并可实现服务的计量功能,提供全面化的服务统一管理功能。2.3 一致的服务调用服务管理平台对接入的服务的运行进行统一的管理,根据服务
3、的调用关系,实现服务运行过程中的降级、熔断等调度功能,最终达到服务能有序、高效、正常的运行。3 产品架构数据存储外部系统 外部系统 外部系统W e b S e r v i c e / S o a p统一网关A d a p t e r 1A d a p t e r 2R E S T f u l缓存 服务调度 服务监控服务目录 流量控制服务管理H t t p服务管理平台通过统一网关来接受外部系统的服务调用,并实现服务路由、均衡负载、权限控制等功能。服务管理平台中的 Adapter 模块,主要实现第三方服务的接入、具体业务需求的定制和配置管理,以满足不同项目的特定业务和技术需求。服务管理平台可对接入
4、的服务进行统一的调度,可对运行中的服务根据系统需要进行降级、升级或熔断等操作,保证各服务正常有序的运行。服务管理平台还可以对接入的服务运行状况进行统一的监控,按照消息机制,将故障的服务统一通知给与故障服务相关联的其他服务,避免因故障服务的原因,引起其他服务运行失败。缓存模块主要实现配置项数据、部分业务数据的缓存,以减少与 DB 的交互次数,提高效率。4 产品功能4.1 服务网关提供服务路由、均衡负载、权限控制、流量控制等功能,将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。API 网关是系统的唯一入口,从面向对象设计的角度看,它与外观模式
5、类似。API 网关封装了系统内部架构,为每个客户端提供一个定制的 API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、“请求整形(request shaping)”与管理、静态响应处理。1)服务路由即服务使用者从提供者地址列表中,基于负载均衡算法,选择一个提供者进行调用,如果调用失败就再选另一个调用。当服务提供方有多个服务实例时,可以根据请求本身的信息(如参数、URL等)调用服务方的信息(如 IP 地址等),服务提供方的信息(如IP 地址等)等进行路由过滤,最后过滤出一个或多个实例提供服务。2)负载均衡是非常重要的环节,通过负载均衡将请求派发到网络中的一个或多个节点上进行处理。可进
6、行服务的负载均衡完成对请求的分配派发,提供负载均衡的功能以及扩展接口,当服务提供方有多个服务实例时,通过灵活的负载均衡策略选择一个实例进行服务调用。目前提供了多种负载均衡策略。3)权限控制针对不同调用方,调用前,需要通过用户鉴权,确定用户身份。对于服务方,需要按照调用方提供的鉴权信息,完成用户身份鉴定,并且通过系统中设置的用户权限,完成用户授权,确定用户是否具有调用该服务的权限。4)流量控制由于各类服务的负载能力不同且各有自己的限制,为了防止非预期的请求对服务压力过大而拖垮服务乃至影响整个服务平台,特制定流量服务控制。服务的流量控制策略:分流、降级、限流等。对于流量控制,可以对所有的服务调用总
7、量进行控制,也可以按具体的服务域控制,最细粒度可以单独控制到每一个服务。服务的流量控制包括了入口流量控制和出口流量控制两个层面的内容,对于入口流量控制即当触发流量控制策略后直接在服务调用访问的时候就驳回。而对于出口流量控制利用消息中间件和 MQ 机制,控制向目标的数据流入速度。4.2 服务管理服务的管理主要是对服务的注册、服务查询、服务调度、服务监控等进行的管理。1)服务注册包含三类角色:服务提供者,服务注册中心,服务消费者。服务提供者:服务提供者作为服务的提供方将自身的服务信息注册到服务注册中心,信息包含:隶属于哪个系统、服务的 IP/端、服务的请求 URL、服务的权重等等。服务注册中心:服
8、务注册中心主要提供所有服务注册信息的中心存储,同时负责将服务注册信息的更新通知实时的 Push 给服务消费者。也支持服务的停用。服务消费者: 服务消费者主要职责如下: 1、服务消费者在启动时从服务注册中心获取需要的服务注册信息; 2、将服务注册信息缓存在本地; 3、监听服务注册信息的变更,如接收到服务注册中心的服务变更通知,则在本地缓存中更新服务的注册信息; 4、根据本地缓存中的服务注册信息构建服务调用请求,并根据负载均衡策略来转发请求; 5、对服务提供方的存活进行检测,如果出现服务不可用的服务提供方,将从本地缓存中剔除,服务消费者只在自己初始化以及服务变更时会依赖服务注册中心。在整个服务调用
9、过程中,服务消费者不依赖于任何第三方服务。2)服务治理提供管理控制台,每一个服务都有一个唯一的名字,使用负载均衡策略来调用每个服务的实例。在控制台还可以看到每一个服务的状态,同时也可以定制服务信息的链接地址,比如把链接地址定制成接口文档的地址,即可实现在线 API 的功能。3)服务监控异常预警:异常报警是对服务非法操作、服务异常运行、服务注入式 SQL 攻击等异常情况进行实时报警。性能监控:构建基于平台的实时的性能分析工具,实现以:实现实时事务跟踪和实现批量分析,形成可用的通信图和延迟统计。4)安全审计安全审计记录、维护平台上的各种行为轨迹,为问题查找、定位提供支撑;同时也对平台上服务越权访问
10、、违规操作、损害服务运行安全等行为进行监控、组织和预警。包含:内容审计、行为审计、流量审计。能够提供完整平台的内容检测、信息还原功能,能够监控用户再平台上的行为轨迹对不合规行为事件实时告警并记录,能够实时统计平台当前网络中的各种报文流量进行综合流量分析。4.3 服务调度服务调度包含以下基本内容:1)调度策略提供调度策略配置页面,支持策略名称、策略规则、策略描述灵活配置,实时修改。2)人工调整透明化接入服务,支持服务提供方及消费方可灵活配置、服务调度动态调整。3)自动调整通过动态刷新配置文件的方式可实现服务调度的自动调整,主要包含:提供者、路由规则、权重调节、负载均衡等管理功能。4.4 服务目录
11、服务目录,展示、管理平台上所有服务,支持服务分类管理,同时也支持这些服务以列表形式展示,可对这些服务的状态以及应用详情进行管理。同时服务目录支持对服务的查询。5 产品应用案例应用案例:接口流向管理平台。主要是为昆明交通管理部门提供一个统一的接口管理平台。目前昆明交管有 21 个外挂系统需访问六合一库,造成六合一库接口调用并发高,性能差。基于此构建接口流向管理平台,制定调度策略访问六合一库、分发库、接口缓存。其中调度策略的配置与实现、返回给上游系统的信息可配置、接口访问次数限制等定制性较强的需求可以用 Adapter 来实现。即便有需求的变动或增加,也都在 Adapter 来实现,从而保证服务管理平台的核心功能不受影响。服务的路由、权限检验、负载均衡、服务流量控制等功能可以通过统一网关来实现。接口的异常告警、数据库同步告警、接口调用次数统计等功能可以通过服务监控、服务管理等模块来实现。总体来说,与业务强关联的功能主要由 Adapter 来实现,以插件的功能集成到服务管理平台中,其余的平台性功能集中由服务管理平台提供。6 产品:安装部署的环境运行环境支持的操作系统:Red Hat Enterprise Linux 3.10或以上 8 核 16G运行环境支持的数据库:Oracle 11g MySQL 5.6.1