微服务架构

一、微服务简介

微服务是一种软件架构模式。架构

它提倡将单一应用程序划分红一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每一个服务运行在其独立的进程中,服务和服务之间采用轻量级的通讯机制相互沟通(一般是基于HTTP的Restful API).每一个服务都围绕着具体的业务进行构建,而且可以被独立的部署到生产环境、类生产环境等。另外,应尽可能避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建

二、特征

小:粒度小,专一一项业务app

独:独立部署,服务独立测试、部署、升级、发布框架

轻:轻量级通讯分布式

松:松耦合。对语言和工具要求松,能够选择最契合业务的语言微服务

三、三维扩展模型

X轴,服务实例水平扩展,保证可靠性与性能;工具

Y轴,功能的扩展,服务单一职责,功能独立;性能

Z轴,数据分区,数据独立,可靠性保证;测试

四、部署粒度

VM(不推荐)接口

Docker进程

Docker是一个开源的应用容器引擎,让开发者能够打包他们的应用以及依赖包到一个可移植的容器中,而后发布到任何流行的 Linux 机器上,也能够实现虚拟化。容器是彻底使用沙箱机制,相互之间不会有任何接口(相似 iPhone 的 app)。几乎没有性能开销,能够很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

五、基础设施

基础设施自动化(devops、自动化部署)

六、须要解决的难点

分布式事务:2阶段、3阶段、tcc

分布式一致性:全局的分布式事务;事件驱动

分布式调度

分布式全局id生成

服务命名、注册、发现

服务治理

服务间通讯