分布式+微服务架构随着互联网技术的飞速发展,目前全球超过半数以上的人口在使用互联网,人们的生活、工作随着互联网的发展,发生了翻天覆地的变化
我们的工作随着越来越多的用户参与,业务场景越来越复杂,云计算、大数据、区块链、人工智能的飞速发展对系统架构也提出了越来越高的要求,我们原来使用的单体架构已经不能满足工作场景需求
此时 MartinFowler 提出来了微服务架构,一个分布式系统架构,按业务领域划分为独立的服务单元,满足越来越复杂的业务需求,并且可以自动化运维、容错、快速演进
微服务是“互联网+时代”催生的一种设计思想和理念
一、技术架构的前生今世1、单体架构单体架构将系统中的所有功能、模块耦合在一个应用中的架构方式
如 MVC 架构,表示层(View)+中间业务逻辑层(Controller)+数据库层(Model)
代表技术Springmvc、Struts2 等
该架构具有以下特点:1
1、复杂性高、项目包含的模块非常多、模块的边界模糊、依赖关系不清晰,随着业务复杂度的提高,代码的可维护性、扩展性和可读性在降低
2、可靠性差、某个模块的问题(内存溢出)可能会导致整个系统的崩溃
3、扩展能力受限、该构架只能作为一个整体进行扩展,无法根据业务模块的需要进行伸缩
4、易运维、项目可以直接打成 war 包发布
2、SOA 架构(面向服务)SOA 架构属于企业领域,将原来的单体架构按照功能分为不同的子系统,然后再由各个子系统依赖服务中间件来调用所需服务
服务之间采用 webservice、rpc 等方式进行通信,SOA 大部分概念是基于企业服务总线(ESB)的,即企业服务总线作为服务之间通信的桥梁
该架构具有以下特点:2
1、重用性、重复的功能抽取为服务,提高开发效率,提高系统的可重用性
2、针对不同服务的特点制定集群及优化方案
3、服务的颗粒度大