00:00
啊,那么同学们给了大家呢一点点课堂练习的时间,大概15分钟左右吧,然后呢,让大家呢,读了一下微服务架构的原作者马丁福勒的论文,那么呢,英文版的呢。大家呢,有时间的同学呢,去看一下,但是呢。如果说真是你智力的同学,我也给大家呢发了中文版的,那么这个时候我们一起来解读一下好。那么首先。无服务架构,我们可以看作比较关键的知识点,有这么几个,在整篇论文当中,15分钟左右,有些同学读完了,有些同学呢,没有读完没关系,那么下面呢,跟着杨。歌来处理一下。相关的技术点我再给大家汇一遍,我们呢,一开始就深刻理解一下什么是微辅务,以及它的架构基础的原型,第一个它是一种将单个应用程序作为一套小型服务办法的方法,那么言下之意,这个东西是不是。
01:05
化整为零,宏大啊,多个小啊。第二个。都是运行在自己的什么中,进程中。第三,一个经量级的通信机制,通常是HTTP的资源API进行通信,啥意思啊,说白了就是基于rest。风格调用进程和进程之间通过rest。开工和调用,那么呢,围绕业务部件可以全自动的独立的部署,那言下之意,比方说以前一个大的工程,现在呢已经划分成了十个微服务,我可以第六个,第九个都拿出来部署,二其他的不动,那么这样的话呢,那么大家呢,是不是更加细力度化的不足啊,那么呢,与编程语言不同,可以使用。不同的数据存储,那么呢,我们呢,来对比一下帮我们的。
02:01
氨基板和现在的分布式微服物,看看两者之间的对比。那么下面呢,请跟我来。好,我们呢,回到我们的论文原图。阿看。以前我们提出的架构啊,我。In。图案,那么呢,是不是俗称我们的什么呢?氨基系统啊,全部都在一块,那么呢,也就是说可以看作。里eclipse里面。只有一个二的工程。是呢,我们的什么呀商品。干。交际。然后呢,库存。等等等等,各个模块那么呢,都集中在一起,同样的呢,啊成一个挂包,让它部署里他们看一看。
03:08
你看左边论文的原话,这种乌万氨基的俗称玉石。那么呢,顾名思义,大家是不是聚在一块,紧紧的耦合在一块啊。那么这个时候大家看。这个可以把它当做我们的商品订单交接库存。物流模块等等,那么大家是不是在一个里面,然后这么这么的一个呢?作为一个外包,就是在一个白色的盒子里面,就是我们的瓦包,可以把它定似的理解为整个外包好包以后,当它成功的部署进了我们的开,那么呢,在我们的电商项目当中和大家介绍过他们开的集群,如果一个不够用了,那咱们是不是来多个,那么这个时候出现的问题就是。所有的服务,所有的模块加在一块。
04:01
后续呢,办法。出现一个最大的问题就是。其中一个模块出问题了,那么是不是有点像全体连坐啊,都得陪着他迎击。整改。为了减轻这样不必要的麻烦和痛苦,那么慢慢的我们也说过一句话,天下大势,分久必合,合久怎么样一分呐,那么呢,开高,我们呢,慢慢的过渡到了我们的分布式。系统,那么这样的话呢,是不是。各个模块。或者说服务。各自独立出来,分灶吃饭。好,那么这个时候大家请看。子时。不再像过去这样是挤在一块。
05:00
现在是不是拿出来了,以后你是你的,我是我的,然后呢,我们呢。独立出来以后,各自形成各自微小的。一个进程,然后呢,让专业的人。关业的模块。来做专业的事情。之后我们统一的呢。无力部署。注意。什么呢?大家请看。子时咱们在容器里面不在是在一块儿,咱们是不是就像是什么这个群租房,那么住一块占下铺建在那么各自有各自的独立小单间,那么从住宿的角度,从部署的角度,哪一种更舒服,我相信是不言自明吧。那么这个时候。
06:00
各个服务有各自的一块单独的进程,服务和服务之间我们通过什么基于HTTP的rest来进行互相调用和协作,那这样的话呢,是不是有没有以前这样的挖包,这样的一种挤压和大规模大面积的冲突了?这个模块。出问题了,其他三个模块没事,那咱们冤有头债有主,从部署的角度而言,各自谁出问题我们找谁,不用像这样一个模块出问题了,卷体或者受到影响和联络吧,那么好。接下来是一个知识点,那么也就说什么论文当中特别重要的一句话就是。第二,单个应用程序或一套小型服务的开发方法,那换句话说,是不是开始到业务找功能,或者按照一定的业务规则进行分。好。
07:00
这个呢是我们的第一点,那就是。拆分。那么第二个请大家看是什么?各自独立的进程。那么第三个呢,非常重要,下面呢,请跟着杨哥走,整篇论文呢,让大家读一遍,一定有老师的安排和道理,深刻的理解这个概念,大家呢,他能够后续呢,跟我有更好的学习,因为重要的是增加自己的内功啊,你今天只能写一些增山查和helloard起不了太大作用,真课的理想中架构的概念啊,那么我们往下看。往下翻。那么呢,我们呢,重要的三个知识点,可以看到这么一个东西。来。大家请看以前吧,各个产品的角色哈,他说这是开发人员。是什么运维人员?是产品经理,或者说就是一堆别做的小伙伴吧?
08:05
商品模块,交易模块,物流模块,订单模块等等等等,大家呢?业务层一个整体塞在一块,挤在一块,第二个商品表吧,订单表吧。物流表吧,三张不同的表也在一个单一的数据库里面,那么这个时候,那么是不是耦合度很高啊,你任何一个出了小问题,大家都得陪着。那么慢慢的我们呢,可以看。在这儿我们呢,形成了第二种模式,干脆大家呢,让专业的人做专业的事,我们可以通过一个外部的配置,注意这张小纸条,所以大家把它近似的理解为我们就是后面要讲到的一个知识点,什么呀,Spring cloud的conflict分布式配置中心,他拿了有什么作用呢?也就是说各个不同的人群,那假设哈,这是运维人员。
09:11
突然跟你说我们的数据库要做一下迁移,你给我从一号库换到三号库,那么这个时候啊,这两个可以在外部收到配置修改信息,自动的进行刷新和变更,而且这张图最好的告诉大家微服务。低于应用的数据库啊,这不是可以出来各自的服务连各自的数据库,他们业务之间既可以连同一个库,也可以连各自的库,将耦合度降低到最小啊。哎,所以说这个时候呢,我们呢,来回到杨哥的脑图。再来看看这句话,那么呢?
10:01
大家请看。传统的一站式应用,根据业务拆分成一个一个服务,个体的去耦合,每一个提供单一的功能,一个服务就做一件事。无力的处理过程,类似于进程的概念,能够单独启动和销毁,最终是不是我们的第三点非常重要,后续呢,会给大家演示啊,是不是啊,拥有自己的数据库,最极端的情况可以一个服务,连一个自己关一单数的数据库也可以什么?多个微服物连同一个库,那他这样的部署就是极其灵活和方便了,哎,那么呢,我们这儿呢,就是从论文的角度给大家呢,重新。深度的理解了马丁福勒为微伏的概述,那么这请大家呢,深刻的理解什么是微伏?
我来说两句