Springboot+SpringCloud实战 07-第七章电子课件.ppt
《Springboot+SpringCloud实战 07-第七章电子课件.ppt》由会员分享,可在线阅读,更多相关《Springboot+SpringCloud实战 07-第七章电子课件.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Springboot+SpringCloud实战 07-第七章电子课件第七章 微服务架构介绍学习目标l了解单体架构、SOA以及微服务架构设计特点。l了解微服务架构的功能特点和优势。l熟悉微服务开发和传统开发的不同以及微服务数据库的挑战。随着互联网技术的迅速发展,人们对互联网产品的业务需求也不断也增加,传统的互联网产品已经无法满足广大使用者的要求与面对市场激烈的竞争压力,互联网产品往往需要更多、更琐碎复杂的业务才能满足人们多元化的互联网体验。而传统架构下的互联网产品在面对复杂烦琐的业务、项目快速部署、项目的低成本维护性以及可扩展创新性时显得力不从心。在这样的情况下,微服务架构应运而生。本章将通过
2、多方位的介绍和分析,带领读者认识微服务架构。单体架构12SOA架构3微服务架构4微服务架构的优势5微服务开发vs传统开发6微服务对数据库的挑战单体架构l单体架构介绍在互联网应用发展的早期,大部分的程序都是将Web应用所有的功能模块的表示层、业务层、数据访问层放到一起,最后通过Mevan等工具进行统一打包,并将其部署在同一台服务器上。这样的应用就是单体应用。例如,我们现在要做一个商城的项目,经过考虑和分析后我们使用Spring Boot框架来做这个项目,并且在项目初期就已经设计好了模块。单体架构上图中所示的应用,尽管也是采用模块化逻辑,但是最终它还是会被打包并部署为单体应用。例如,一些Java应
3、用会被打包为war格式,部署在Tomcat或者Jetty上;而另外一些Java应用则会被打包成jar格式并使用JDK运行。这种应用开发风格很常见,因为常见的IDE(Integrated Development Environment,集成开发环境)开发工具几乎都可以开发和打包这类单体应用。单体应用也容易部署,我们只需把要部署的war包或者jar包复制到服务器上使用Tomcat或者JDK就可以运行。在之前这类方式很受欢迎,甚至到目前也有很多这样的开发方式。单体架构l单体架构的缺陷 随着业务需求的不断增加,越来越多的人加入开发团队,代码库也在飞速地“膨胀”。慢慢地,单体架构的应用变得越来越“臃肿”
4、,可维护性、灵活性逐渐降低,维护成本也越来越高。下面是单体架构的一些缺陷。1复杂性高 随着业务的发展、需求的变更和开发人员的更迭,整个项目包含的模块非常多,导致模块和模块的边界变得越来越模糊,依赖关系不清晰;又因为开发人员的更迭,每个人水平不一样,导致代码质量参差不齐,让有些代码变得非常混乱,使得整个项目变得非常复杂。开发人员在这样的项目中添加一个新功能或者修改代码时会小心翼翼,害怕修改之后影响其他功能模块的使用或者导致核心业务出现问题。2代码重构难度大 采用单体架构的项目往往会有很多隐藏的小问题,并且随着时间的推移会越来越多。新的开发人员可能发现了原有设计的缺陷,但是因为整个项目太大且涉及的
5、业务太多,所以也不敢轻易地修改,整个项目进行重构的代价也变得非常大。3部署效率低 单体架构虽然部署步骤简单,但是随着代码的增多,构建和部署的时间也会增加。而在单体应用中,每次功能的变更或缺陷的修复都会导致需要重新部署整个应用,不仅耗时长、影响范围大,而且风险高。4稳定性差 应用的某个模块出现bug,如死循环、OOM(Out Of Memory,内存溢出)等,可能会导致整个应用的崩溃。5性能提升受限 单体应用都是整体部署运行的,无法根据业务模块的需要进行伸缩。例如,应用中有的模块是计算密集型的,需要强大的CPU(Central Processing Unit,中央处理器)处理能力;有的模块则是I
6、/O(Input/Output,输入输出)密集型的,需要更大的内存。由于这些模块部署在一起,因此不得不在硬件的选择上做出妥协。6技术创新能力低 业务复杂和庞大的单体应用,主要追求业务的正常运转,对于性能好、敏捷的新型框架不敢轻易尝试替换,替换的成本和代价也非常大。单体架构单体架构12SOA架构3微服务架构4微服务架构的优势5微服务开发vs传统开发6微服务对数据库的挑战SOA架构针对单体架构的不足,为了满足大型web应用开发和业务的需要,一些公司设计出SOA(Service-Oriented Architecture,面向服务的架构)以便于支撑软件稳定运行。SOA是一个组件模型,它将大型Web应
7、用的不同业务功能单元拆分成服务,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。SOA架构SOA将Web应用拆分成了不同的应用系统,并且通过服务中间件实现对服务的管理,可以一个服务使用独立的数据库,也可以多个服务共同使用一个数据库。可以看到,使用SOA在一定程度上弥补了一些单体架构的缺陷。下面是使用SOA的一些优势:(1)将重复的功能抽取为服务,可提高开发效率和系统的可重用性;(2)每个服务模块可以独立测试、部署,并且运行在独立的进程中;(3)可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Springboot+SpringCloud实战 07-第七章电子课件 Springboot SpringCloud 实战 07 第七 电子 课件
限制150内