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