分布式服务框架设计指标
企业开发
2018-05-10 06:04:49
阅读次数: 0
特性名 |
功能名 |
说明 |
服务订阅发布 |
配置化发布和引用服务 |
支持通过xml配置的方式发布和导入服务 |
服务自动发现机制 |
支持服务实时自动发现,由注册中心推送服务提供者地址,消费者不需要配置服务提供者地址,地址透明化 |
服务在线注册和取消注册 |
支持运行态注册和取消服务 |
服务路由 |
默认提供随机路由、轮询、基于权重的策略等 |
|
粘滞连接 |
总是向同一个提供方发起调用 |
路由定制 |
支持用户自定义路由策略 |
集群容错 |
Failover |
失败自动切换,当出现失败,重试其他服务器,常用于读操作及幂等性写操作 |
Failback |
失败自动恢复,后台记录失败请求,定时重发,常用于消息通知操作 |
Failfast |
快速失败,只发起一次调用,常用于非幂等性写操作 |
服务调用 |
同步调用 |
消费者发起服务调用后,同步阻塞等待服务端返回 |
异步调用 |
消费者发起服务调用后,不阻塞立即返回,由服务端返回应答后异步通知消费者 |
并行调用 |
消费者同时对多个服务者提供批量发起服务调用请求,集中等待应答 |
多协议 |
私有协议 |
支持二进制协议,可以定制和扩展 |
公有协议 |
提供WebService等公有协议 |
序列化方式 |
二进制类序列化 |
支持Thrift、Protobuf buffer等二进制协议 |
文本类序列化 |
支持JSON和XML等文本类型的序列化方式 |
统一配置 |
本地静态配置 |
安装部署修改一次,运行态不修改配置 |
基于配置中心的动态配置 |
运形态需要调整参数,统一放到配置中心 |
|
|
|
线性特性 |
说明 |
高性能 |
在同等资源占用下,单服务提供者的TPS要尽可能高 |
低时延 |
在同等资源占用下,服务调用时延要尽量低 |
性能线性增长 |
扩展服务提供者,性能要能够线性增长 |
特性名 |
功能名 |
说明 |
服务注册中心 |
服务健康状态检测 |
注册中心通过心跳检测服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者 |
故障切换 |
注册中心对等集群,任意一台宕掉后,将自动切换到另一台 |
高HA |
注册中心全部宕机后,服务提供者和消费者仍能通过本地缓存通信 |
消除单点故障 |
服务无状态 |
服务提供者无状态 |
服务集群容错 |
只要集群中有一台可用,业务就不会中断 |
链路健壮性 |
心跳检测 |
|
断连重连机制 |
|
特性名 |
功能名 |
说明 |
服务运行态管控 |
服务路由 |
业务高峰期,动态修改路由策略实现导流 |
服务限流 |
资源成为瓶颈时,服务端和消费端的动态流控 |
服务迁入和迁出 |
实现资源的动态分配 |
服务降级 |
服务提供者故障时或业务高峰时,进行服务强制或容错降级,执行本地降级逻辑,保证系统平稳运行 |
服务超时控制 |
动态调整超时时间,在业务高峰期保证业务调用成功率 |
服务监控 |
性能统计 |
统计项包括服务调用时延、成功率、调用次数等 |
统计报表 |
提供多维度、实时和历史数据报表,同比和环比等性能比对数据 |
告警 |
指标异常,包括但不限短信、email、日志记录等 |
服务生命周期管理 |
上线审批 |
需要通过正规的审批流程上线 |
下线通知 |
在下线某个服务前一段时间,需要根据SLA策略,通知消费者 |
服务灰度发布 |
|
故障快速定界定位 |
分布式日志采集 |
|
海量日志在线检索 |
|
调用链可视化展示 |
|
运行日志故障定位 |
|
服务安全 |
敏感服务的授权策略 |
|
链路的安全防护 |
消费者和提供者之间的长连接,需要增加安全防护,例如基于Token的安全认证机制 |
转载自happytech.iteye.com/blog/2307320