微服务架构

1、微服务简介

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

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

2、特征

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

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

轻:轻量级通信

松:松耦合。对语言和工具要求松,可以选择最契合业务的语言

3、三维扩展模型

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

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

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

4、部署粒度

VM(不推荐)

Docker

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

5、基础设施

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

6、需要解决的难点

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

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

分布式调度

分布式全局id生成

服务命名、注册、发现

服务治理

服务间通信

 

 

 

点赞