分布式服务架构解决方案0.0.docx
文本预览下载声明
分布式服务架构解决方案
V1.0
2016年4月
北京天禾元创股份有限公司
目录
TOC \o 1-3 \h \z \u 1 引言 5
1.1 编写目的 5
1.2 服务化架构演进 5
2 架构设计 6
2.1 设计原则 6
2.2 架构原理 7
2.3 功能特性 8
2.4 性能特性 9
2.5 可靠性 9
2.6 服务治理 10
3 架构组成 11
3.1 架构图 11
3.2 服务路由 13
3.2.1 透明化路由 13
3.2.2 负载均衡 13
3.2.3 本地优先策略 14
3.2.4 路由规则 14
3.2.5 路由策略定制 14
3.2.6 配置化路由 14
3.3 注册中心 15
3.3.1 特性设计 15
3.4 发布和引用 16
3.4.1 发布设计 16
3.4.2 引用设计 18
3.4.3 灰度发布 19
3.5 优先级调度 19
3.6 服务治理 19
3.6.1 治理定位 20
3.6.2 治理对象 20
3.6.3 治理策略 20
3.6.4 治理目标 20
3.6.5 架构设计 21
3.6.6 运行态功能设计 22
3.6.7 线下治理 22
3.6.8 安全和权限管理 24
3.7 中间聚合层 24
4 微服务架构 25
4.1 带来的变革 25
4.1.1 应用解耦 25
4.1.2 分而治之 26
4.1.3 敏捷交付 27
4.2 架构解析 27
5 集成ESB 28
6 提供的服务 28
6.1 用户和组织机构 28
6.2 权限管理 28
6.3 单点登录 28
6.4 通信服务 29
6.5 业务提醒 29
6.6 待办工作 29
6.7 工作流服务 29
6.7.1 流程定义 30
6.7.2 流程测试 32
6.7.3 数据清理 32
6.7.4 流程审批 33
6.7.5 流程部署 33
6.7.6 流程升级/注销 33
6.7.7 调用接口 33
引言
编写目的
本文档的编写目的是为xxx烟草信息中心提供分布式服务架构的解决方案,随着企业内部业务的发展和应用规模的不断扩大,系统内部的应用越来越多,常规的垂直应用架构已经无法应对复杂业务带来的各种挑战。通过将业务公共能力抽象成原子服务,对复杂应用进行水平拆分和服务化,实现服务消费者和提供者的解耦。
服务化架构演进
传统软件的垂直架构改造的核心就是要对应用做服务化的改造,服务化改造使用到的核心技术架构就是分布式服务架构。
服务化架构演进图如下图所示:
图 SEQ 图 \* ARABIC 1服务化架构演化图
单一应用架构:当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本;此时,用于简化增删改查工作量的数据访问框架(ORM) 是关键。
垂直应用架构:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率;此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
分布式服务架构:当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求;此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
流动计算架构:当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率,此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。
微服务架构:随着云计算、移动互联网、Docker容器等技术的快速发展和应用,微服务架构(Micro Service Architecture)这一全新的架构风格越来越受到大家的关注,也有越来越多的企业和平台服务提供商在实践中尝试并使用它来解决具体业务问题,微服务架构的流行已经成为未来技术发展的趋势之一。
架构设计
设计原则
面向服务的架构设计原则主要包括如下内容。
服务可复用:不管是否存在即时的复用机会,服务均被设计为支持潜在的可复用性。
服务共享一个标准契约:为了与服务提供者交互,消费者需要导入服务提供者的服务契约,这个契约可以是一个IDL文件、Java接口定义、WSDL文件,甚至是一个接口文档。
服务是松耦合的:服务被设计为功能相对独立、尽量不依赖其他服务的独立提供者。
服务是底层逻辑的抽象:只有经服务契约所暴露
显示全部