Spring Cloud微服务笔记(一)微服务概念

微服务概念

一、什么是微服务架构

为什么需要微服务:

    1)单体系统部署在一个进程中,修改了一个小功能,为了部署上线就会影响其他功能。

    2)单体应用各个功能模块的使用场景、并发量、消耗资源类型各不相同,对于资源的利用又互相影响,

       这样使得对各个模块的系统容量很难给出较为准确的评估。

微服务是系统架构的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个在各自独立进程中运行的小型服务,

服务之间通过基于HTTP的RESTful API进行通信协作。

二、实时微服务的挑战

一)运维新挑战:

在微服务架构中,运维人员需要维护的进程数量增加,运维过程需要更多的自动化,

这就要求运维人员具备一定的开发能力来编排运维过程并让它们能自动运行起来。

二)接口一致性: 

由于业务逻辑上的依赖,微服务构建从单体应用的代码依赖变为了服务之间的通信依赖。

当我们对原有的接口进行了修改,那么交互放需要协调这样的改变来进行发布,以保证接口

的正确调用。因此我们需要更完善的接口和版本管理,或是严格地遵循开闭原则。

三)分布式的复杂性:

分布式环境问题,例如:网络延迟、分布式事务、异步消息。

三、微服务架构特性

一)服务组件化 

组件,是一个可独立更换和升级的单元。

二)按业务组织团队 

优势:一是可以服务内部修改产生的内耗,二是团队边界更加清晰。

三)做“产品”的态度

四)去中心化治理

当我们采用集中化架构治理方案时,通常在技术平台上都会制定统一的标准,但是每种

技术平台都有其短板,如果解决不好,很可能称为系统瓶颈。微服务构架系统中的各个

组件可以针对不同业务选择不同的技术平台。

五)去中心化数据管理 

概念:让每个服务管理自由的数据库。

优势:让数据管理更加细致化,通过采用更合适的技术让数据存储和性能达到最优。

劣势:数据一致性问题。

六)基础设施自动化 

微服务架构中需要运维人员关注的问题成倍增长,所以,务必从一开始就构建起"持续交付"

平台来支撑整个实施过程,该平台需要:

1)自动化测试

2)自动化部署

七)容错设计

八)演进式设计

猜你喜欢

转载自www.cnblogs.com/Shadowplay/p/10471001.html