微服务架构ppt课件.pptxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

微服务架构

主讲人:xxx

组员:xxx

微服务的定义③

CONTENTS

微服务架构模式4

微服务的诞生①

Monolith

微服务架构的优点与缺点

具体应用⑥

目录川二

2

3

微服务架构(MicroserviceArchitect)是一种架构模式,它提倡将单块架构的应用划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。

4

心,虚拟化技

术与DevOps

文化的快速发

展以及传统单

块架构无法适

应快速变化等

多重因素的推

动下所诞生的

产物

互联网交付

微服务的诞生并非偶然。它是互联网高速

发展,敏捷、精益、持续交付方法论的深入人

背景

微服务架构

虚拟化DevOPS

传统

架构

持续

…5

Monolith

6

通常,要开发的服务所对应的代码由多个项目所组成,各个项目会根据自身所提供功能的不同具有一个明确的边界。

Code

PRo]

PROJ

PRo]

PRO

PRo]

CompileDeploy

WAR

7

在编译时,这些项目将被打包成为一个个JAR包,并最终合并在一起形成一个

WAR包。接下来,我们需要将该

WAR包上传到

Web容器中,解压该WAR包,并重新启动服务器。

Code

PRo]

PROJ

PRo]

PRO

PRo]

Compile

Deploy

WAR

8

在执行完这一系列操作之后,我

们对服务的编译及部署就已经完成了

Code

PRo]

PROJ

PRo]

PRO

PRo]

CompileDeploy

WAR

9

这种将所有的代码及功能都包含在一个WAR包中的项目组织方式被称为Monolith。在项目较小的情况下,这种代码组织方式还是可以接受的:更改完代码后,编译器编译代码,然后软件开发人员花费一分钟部署刚刚编译出来的WAR包以便测试自己刚刚所做的更改。但随着项目的逐渐变大,整个开发流程的时间也会变得很长:即使在仅仅更改了一行代码的情况下,软件开发人员需要花费几十分钟甚至超过一个小时的时间对所有代码进行编译,并接下来花费大量的时间重新部署刚刚生成的产品,以验证自己的更改是否正确。

10

如果应用的部署非常麻烦,那么为了对自己

的更改进行测试,软件开发人员还需要在部署

前进行大量的环境设置,进而使得软件开发人员的工作变得繁杂而无趣

更改代码

编译及部署

测试更改

从上面的示意图中可以看到,在应用变大之后,软件开发人员花在编译及部署的时间明显增多,甚至超过了他对代码进行更改并测试的时间,效率已经变得十分低下。

11

在变得越来越大的同时,我们的应用所使用的技术也会变得越来越多。这些技术有些是不兼容的,就比如在一个项目中大范围地混合使用C++和Java几乎是不可能的事情。在这种情况下,我们就需要抛弃对某些不兼容技术的使用,而选择一种不是那么适合的技术来实现特定的功能。

除此之外,由于按照Monolith组织的代码将只产生一个包含了所有功能的WAR包,因此在对服务的容量进行扩展的时候,我们只能选择重复地部署这些WAR包来扩展服务能力,而不是仅仅扩展出现系统瓶颈的组成

12

但是这种扩展方式极大地浪费了资源。就以上图所展示的情况为例:在一个服务中,某个组成的负载已经达到了90%,也就是到了不得不对服务能力进行扩容的时候了。而同一服务的其它三个组成的负载还没有到其处理能力的20%。

90%

ScaleOut

5%

10%45%

7.5%

20%

15%

5%

10%

7.5%

45%

10%

13

由于Monolith服务中的各个组成是打包在同一个WAR包中的,

因此通过添加一个额外的服务实例虽然可以将需要扩容的组成的负载降低到了45%,但是也使得其它各组成的利用率更为低下。

90%

ScaleOut

5%

10%45%

7.5%

20%

15%

5%

10%

7.5%

45%

10%

14

可以说,所有的不便都是由于Monolith服务中一个WAR包包含了该服务的所有功

文档评论(0)

chenzehao888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档