| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 系统架构演进与Spring Cloud Alibaba简介 -> 正文阅读 |
|
[Java知识库]系统架构演进与Spring Cloud Alibaba简介 |
系统架构演进与Spring Cloud Alibaba微服务架构体系项目架构演变史
随着互联网世界的快速发展,网站应用的规模也在不断地扩大,这种规模的扩大必然会影响这我们研发的项目的架构体系。 早期的一个单体架构的模块已然不能满足不断复杂的业务逻辑和不断增长用户数量,直到如今微服务架构体系的发展才有效、丝滑的解决了这一问题。 从互联网早期的单体架构到如今的微服务架构,项目系统架构大致经历了如下几个过程:
? 单体应用架构回想我们早期开发的项目,系统的每个功能模块都放在一个应用中,一个数据库,甚至一个开发人员都能搞定。 单体架构的开发、部署以及维护成本较低,这也是其优点所在。 当然任意模块的BUG都会影响整个应用,系统的可靠性及性能明显不高。 ?
垂直应用架构所谓垂直应用架构,其实就是把之前的单体应用拆分成多个应用,以提升效率,比如原来单体应用中的后台、电商、CMS等功能模块可以拆分成:后台系统、电商系统、CMS管理系统。 ?
分布式系统架构垂直架构带来的问题是会带来功能代码的冗余,而随着业务的增加,拆分的应用越多,冗余的代码就越来越多。 那咋整?没错你猜对了,我们可以把冗余部分的代码再次拆解出来,做成统一的业务层供其他地方调用,该业务层就变成了一个单独的服务。 控制层调用不同的业务层服务从而完成不同的业务功能,其具体表现就是一个项目拆分成?表现层?和?服务层?两个部分,服务层中包含业务逻辑,表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现,这就是?分布式架构?。 ? 在分布式架构中,我们把重复的代码抽取出来作为一个公共的服务,提高了代码复用率。同时,我们从图中也可以看到,业务服务之间的调用变复杂了,这就给维护增加了成本。 小结一下分布式系统架构的优缺点:
SOA通过前文分析得知,分布式架构中的缺点就是?调用复杂?,而且当服务越来越多,或者当某一个服务压力过大需要水平拓展和负载均衡时,对于资源的?调度和治理?就需要用到治理中心 **SOA(Service Oriented Architecture)**为核心来解决,同时治理中心还可以帮助?解决服务之间协议不同的问题?。 举个栗子,比如电商系统去调用用户服务时,用户服务的负载均衡中轮询到的那一台主机宕机了,那么治理中心会自动忽略掉这个挂掉的节点,找到健康的节点提供服务。 ? 但是,由于服务间有依赖关系,一旦某个环节出现问题,对整个系统的影响较大,也就是常说的?服务雪崩?! 这种服务关系的复杂,也带来了运维、测试、部署的困难。 服务雪崩当一个依赖的服务宕机,导致整个应用系统都无法访问的现象就是服务雪崩。 举个例子,服务A和B分别依赖服务C和D,而C和D均依赖服务E: ? 当这几个服务都正常的时候,调用没有任何问题,当 服务E 出现问题无法正常给 服务C 和 服务D 提供正常的服务时,C和D执行超时重试机制,但是当A和B不断新增请求的时候,C和D对于E的调用请求会?大量积压?,最终它也会耗尽资源扛不住而倒下的! ? C和D倒下了,A和B就会不断消耗资源,最终也会宕机下线!直至最后整个应用系统不可访问,服务雪崩。 ? 微服务架构微服务架构是在SOA的基础上进一步拆分,它强调服务应该?彻底拆分?,从而提高效率。 在微服务架构中,每个服务必须独立部署,并且互不影响,这种架构更加轻巧。 SOA和微服务的不同点在于:
Spring Cloud发展史? 2020-12-22日Spring?官方博客宣布,Spring Cloud 2020.0.0?正式发布。2020.0.0是第一个使用新的版本号命名方案的Spring Cloud?发行版本。在此之前Spring Cloud?使用英国伦敦地铁站的命名方式来命名一个大版本(train version),如果不按照新的版本号命名的话,本次的版本号应该是Ilford。 更新版本本来是产品的常规操作,但是Spring Cloud的本次更新却正式开启了?Spring Cloud Netflix?体系的终结进程。
这给Spring Cloud Alibaba成为微服务开发的主流选择提供了机会。 ? 初识Spring Cloud AlibabaSpring Cloud Alibaba?致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。 ? Spring Cloud Alibaba 的主要功能及相应的组件介绍在其开源项目有详细的介绍,参考:Spring Cloud Alibaba 小结
后续,我将从?注册中心和配置中心 Nacos?开始,从实战到原理一步步掌握?Spring Cloud Alibaba?微服务技术栈,敬请期待。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 15:33:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |