服务管理框架

Posted on Sat 31 December 2011 in it

使大型分布式系统大型服务化之后足高可用及低运营成本,新的系统架构需要满足以下条件:

1. 服务管理框架需要具备的功能

1.1. 容错性

failover:客户端容错支持,并支持自动失效探测及恢复调用; failfast:快速失败。很多远程服务调用是在关键路径中,它可以容忍失败,但是不能容忍堵塞; failback:故障恢复。能够快速定位错误,进行reset来尝试恢复。

1.2. 中心化的运营管理

【部署】动态启用及停用服务及节点:可以动态启动及停用服务(热发布); 【配置】配置及推送功能:所有client在同一时刻配置的一致性,并且client会跟配置中心保持长连接; 【性能及可用性】负载均衡策略:支持round robin,least active, consistent hash,或者基于脚本的动态路由策略。这个都是由配置中心来控制; 【监控】访问统计及动态运行参数查看:可以对方法级别进行访问统计及实时观察;

1.3. 开发支持

跨语言:支持client能使用常见主流语言来访问; 零侵入:架构对调用方式和具体业务逻辑透明; 版本管理:同一服务可以有不同的版本并存; 可测试:对自动化测试友好;

2. 适用场景

垂直搜索爬虫:有利于降低爬虫运营成本,提升爬虫抓取性能的可伸缩性; 核心业务平台:降低开发和运营成本,优化服务的健壮性和稳定性;

3. Reference

服务管理框架的尝试:http://timyang.net/architecture/service-management/ 我们能在SOA架构里添加哪些特性?http://li3huo.com/2011/10/what-features-can-be-added-in-the-soa-architecture/ 网络应用系统设计的基本原则:http://li3huo.com/2010/05/web-application-design-basic-principles/ SOA架构设计概要:http://li3huo.com/2011/11/summary-of-the-soa-architecture-design/