spring clound 之 架构篇

来源:互联网 发布:kindle资源 知乎 编辑:程序博客网 时间:2024/04/28 18:10

一、什么是微服务架构

简单的说,微服务架构是系统架构上的一种设计风格,它的主旨是把一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中进行,服务之间通过基于http协议的restful api进行交互,被拆分成的每一个小型服务都围绕着系统中某一项或者一些耦合度高的业务功能进行构建,并且每个服务都维护着自身的数据、业务和单测以及独立部署机制。

二、微服务带来的挑战

1、运维的新挑战:运维需要维护的进程数大幅度增加,这就需要更多的自动化脚本

2、接口的一致性:需要更完善的接口文档和版本管理,尽量遵守开闭原则

3、分布式的复杂性:错综复杂的分布式环境问题,比如:网络延迟、分布式事务、异步消息等。

三、微服务间的通信方式:

1、使用基于http协议的restful api或者轻量级的消息发送协议,实现信息传递和服务调用的触发

2、通过在轻量级消息服务总线上传递消息,类似rabbitmq等一些提供可靠异步交换的中间件。

四、去中心化数据管理

我们在实施微服务建构过程中,都希望每个服务来管理自身的数据库,这就是数据管理的去中心化。

虽然数据去中心化可以让数据管理更加细致化,通过采用更加合适的技术可让数据存储和性能达到最佳,但是数据一致性很难保证,分布式事务本身的实现难度就非常大,所以在微服务架构中强调进行“”无事务“”的服务调用,而对于数据一致性,只要能达到最终数据一致性即可,若在调用过程中发生异常,则可以通过补偿机制来进行处理。

五、基础设施自动化

1、自动化测试

2、自动化部署