第一部分 基础篇
单块架构及其挑战
单块架构
是指将系统的功能按照三层架构的思想,在逻辑上分为三层,然后将这种功能集中、代码中心化、一个发布包、部署后运行在同一个进程的应用程序,成为单块架构。典型的应用是j2ee的开发产品,他们的形态一般是WAR包或者EAR包。
单块架构的优势
1、易于开发
2、易于测试
3、易于部署
4、易于水平伸缩
三层架构
通常包括表示层、业务逻辑层以及数据访问层。
微服务架构综述
微服务定义
一、微服务架构是一种架构模式,他提倡将单一应用程序划分为一组小的服务,服务之间相互协调、互相配合,为用户提供最终的价值。每个服务独立运行在各自的进程中,服务与服务之间采用轻量级的通信机制相互沟通。每个服务围绕着具体业务进行构建,并且能够被独立的部署到生产环境中。应避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
微服务的程度
即微服务究竟应该多微才可以?
1、根据代码行数进行划分。
2、根据服务的重写时间进行划分。
轻量级通信
对于微服务而言,通过使用语言无关、平台无关的轻量级通信机制,使服务与服务之间的协作变得更加标准化。
微服务本质
1、服务作为组件
将服务作为组件,在组件和组件之间定义了清晰的、语言无关的、平台无关的接口。
2、围绕业务组织团队
3、关注产品而非项目
4、技术多样性
在微服务中,针对不同的业务特征选择合适的技术方案,有针对性地解决具体业务问题。
5、业务数据独立
6、基础设施自动化
7、演进式架构
微服务需要考虑的问题
分布式系统的复杂度
1、性能
分布式系统因为组件和组件之间的调用是跨进程、跨网络的调用,因此,必须考虑网络延迟以及带宽的影响。
2、可靠性
随着微服务数量的增多,会出现更多的潜在故障点。
3、异步
对于跨网络的调用,需要考虑异步的通信机制。
4、数据一致性
5、工具