微服务架构综述

第一部分 基础篇

单块架构及其挑战

单块架构

是指将系统的功能按照三层架构的思想,在逻辑上分为三层,然后将这种功能集中、代码中心化、一个发布包、部署后运行在同一个进程的应用程序,成为单块架构。典型的应用是j2ee的开发产品,他们的形态一般是WAR包或者EAR包。

单块架构的优势

1、易于开发

2、易于测试

3、易于部署

4、易于水平伸缩

三层架构

通常包括表示层、业务逻辑层以及数据访问层。

微服务架构综述

微服务定义

一、微服务架构是一种架构模式,他提倡将单一应用程序划分为一组小的服务,服务之间相互协调、互相配合,为用户提供最终的价值。每个服务独立运行在各自的进程中,服务与服务之间采用轻量级的通信机制相互沟通。每个服务围绕着具体业务进行构建,并且能够被独立的部署到生产环境中。应避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

微服务的程度

即微服务究竟应该多微才可以?

1、根据代码行数进行划分。

2、根据服务的重写时间进行划分。

轻量级通信

对于微服务而言,通过使用语言无关、平台无关的轻量级通信机制,使服务与服务之间的协作变得更加标准化。

微服务本质

1、服务作为组件
将服务作为组件,在组件和组件之间定义了清晰的、语言无关的、平台无关的接口。
2、围绕业务组织团队

3、关注产品而非项目

4、技术多样性
在微服务中,针对不同的业务特征选择合适的技术方案,有针对性地解决具体业务问题。
5、业务数据独立

6、基础设施自动化

7、演进式架构

微服务需要考虑的问题

分布式系统的复杂度

1、性能

分布式系统因为组件和组件之间的调用是跨进程、跨网络的调用,因此,必须考虑网络延迟以及带宽的影响。

2、可靠性

随着微服务数量的增多,会出现更多的潜在故障点。

3、异步

对于跨网络的调用,需要考虑异步的通信机制。
4、数据一致性

5、工具

原文地址:https://www.cnblogs.com/monty12/p/12149418.html