00:00
各位同学大家好,我们继续通过前面的讲解,我们已经完成了doer comp的容器编排的理论知识的相关介绍,以及本机也成功安装了我们compos,那么接下来我们就要进入重要的验证和落地实战片,那么这个案例也是我精心准备的给大家呢,完成了一个麻雀虽小,五脏俱全的实际生产商用得到的一个案例,那么大家请务必动手参考并练习。那么接下来我们就来看看你do comp说的这么牛,对吧?可以把多个容器管理起来,最终的目的,我们是不是想给大家验证什么叫一键发布,一键上线啊?好,那么开工。那么。结合这个案例,我们呢,先要说一下他的业务诉求来达到一个什么样的目的,那么熟悉杨格风格的都了解我是不是说过一个东西叫AB学习法杨哥。理论知识我知道了。求证明。Before after,用comp之前和用过comp之后,两者的效果有什么不一样?我不用行不行?我不用的时候会有哪些问题,所以我要用,给我解决了哪些痛点你。
01:11
理论说的那么多,求验证,好,那么下面我们就什么口说无凭,手下见真章,Show you my code OK。那么下面兄弟们,我们呢,来看一下啊,我们这个小案例呢。很简单,主要是讲解容器,而不是Java编码,所以说大部分工作我就提前做好,并且用一键生成的软件给弟兄们搞定,那么在我们这个业务上呢,就干这么一件事啊,兄弟们呢,都用过这个supreme BOO微服务来做一些查询啊,增删改查的日常操作啊,我们最经典的,那么假设这个呢是我们的。前面的。Readya,然后呢,Ready如果查得到,直接返回给我们的微服务,如果查不到咱们呢,是不是再去找我们后端的啊。
02:03
MYL,哎,所以说呢,本次呢,主要是给大家讲讲报,那么对于我们的服务,比方说user这么一个模块,对吧,那么就进行两个验证,一个是读,一个是写,两种操作,比如说首先。什么数据都没有,我user先来下个单也好,或者做一个操作,先做一个写操作,那么去玩MYSQL里面插入数据,插入成功以后再回写red,那么下次啊,来查询我上一步插入的数据,那么是不是直接先从red里面查取给你返回,对吧?那么大家在做电商啊,在做医疗项目,金融项目的时候,这种模式的话呢,是写过太多太多了,OK,我们在这儿不废话,那么强调过重点不是说这个Java代码,所以说提前给大家呢搞定,那待会我们直接说砍好,那么明白了以后就是做一个结合red加MYSQL构成的一个读写操作,那么第二个。干嘛?那么是不是军事?
03:00
Worker。饭后那么慢慢的引入龙计划,我们说能跟上,所以说呢,我们的这些东西啊,包括微服务等等,全都部署到我们的这个红色的do卡上面,然后呢,在do卡上面给大家呢跑起来,好,那么把这个业务诉求我们说清楚以后,那么弟兄们,接下来我们工。首先啊,我们来来复习一下,承接着我们以前的基础版来进行改造,什么叫以前的基础版呢?大家还记不记得这一章do卡微服的实战,我们就是做了一个最最最最最最简单的一个,对吧?主要是告诉大家我们用Java编写的spring BOO微服务,结合我们的doer file如何发布微服务并部署到多块容器,形成一个新的镜像,然后跑出来一个新的容器,对吧?那么我们的泡沫也很简单啊,几乎就没什么东西了,对吧?一个web啊,一个test,然后呢,我们的亚M呢就更简单了,就是个。小小的一个端口,6001,其他的主启动业务类。
04:00
业务类呢,就是我就有的这么两个,OK,那么这个呢,之前呢,讲过没有什么太多的问题,那么接下来我们就来看看以前的基础版呢,我们呢就得到这么一个小东西,好吧,只有一个CTRL的order,然后呢,形成了这么一个架包,上传到我们的Linux服务器,然后来通过多块file形成镜像跑起来容器,让我们的微服务跑到多卡上。OK,这是我们之前的前情知识回过,那么接下来呢,我们就要干的呢,稍微复杂一点点啊,结合我们刚才的诉求,有了也就买了啊,更多的还有rabbit MQ来search等等等等,我就不再全部引入啊,那么弟兄们,我们走起,现在就是。用一个user实例来完成我们的业务诉求,好,我们首先circle的建表建库,那么来兄弟们,我们这儿有一个t user表,我本例呢,是在这个DB2021这个数据库下面,那么新建的这么一张t user表,OK,那么大家请看ID,那么主件用户名,密码,性别,是否要删除,更新时间,创建时间,脚本一张即可,OK,那么大家请看啊,建表的时候呢。
05:09
注释啊,都给大家写清楚了,那么注意有一些默认值,比如说性别默认就是零,那么。女。一难,然后呢,是否删除默认值也是零,然后这个呢,我们就晓得,只要你动了它会有。自动或者数据库帮你更新和创建这两个update time和create time时间,那么来建一个数据库啊,比如说DB2021啊,然后呢,建这张表,那么待会儿呢,我们就往这张数据库表里面把它移到容器里面,在do卡容器那个实例上面来进行增删改查好我们这是我们的第一步,那么第二个一键生成说明啊,那么这块我们节约时间,那么杨哥呢,已经呢把它呢全部做好,那么之前我们的基础版只有这么点东西,那么现在我们大家看一下啊。我们呢,这是我们的多开。Boot这个工程,那么就有了配置CTRL了,调service,调我们的dio,然后呢,NTT对吧,然后呢,结合我们的美,那么整合一个map,然后呢得到user map XL等等等等,最终又形成一个新版本的假包达到。
06:13
Linux服务器那么来了啊,这儿呢,我们节约时间,这些呢我提前写好,那么这怎么生成的呢?嗯啊这个呢,顺便说一嘴啊说一句搞笑的,我特别记得我在这个去年发布SUPREME20SPRING cloud啊,应该是不是BOO spring cloud2020版的时候的话呢,啊,有同学呢,就是我在那亲自动手编代码,一大堆弹幕过来呢,教我怎么用一键生成,把我干崩溃了啊所以说呢,希望各位网友或者粉丝呢,就是你杨哥还是懂什么叫一箭生沉好吧,那么这这块呢,那么来吧,我们呢又。Spring结合我们的美杯来做这么一个小案例,那么来兄弟们,我这儿是不是替user在本机?有这么一张表了,那么好了,我们这边呢,用的一键,省得你们说我不会用对吧,我们自己生成一个,我们用TK map,那么也是一个映射工具,那么来配置文件啊,这些之前我们都讲过,那么com。
07:10
At硅果doer,那么是不是就这个,然后呢,连上我们本机的3306端口DB202G好了,那么完活以后,这是我们生成的配置啊,那么就是我们的美T啊,我们用的是TK美T这个一键生成工具有很多种啊,随便你了,那么这些呢,我们之前都讲过了,快快的再过一遍,那么这个配置文件这儿呢,驱动URL,用户名,密码来弟兄们这块是不是读过了,然后完了以后我们的目的的。报名的地址那package点,那么弟兄们你晓得的。pack.name是不是就com at硅谷,然后呢,Do OK,那么完了以后我们这生成后台的实体类ntt map.xl和map这个接口,那么对应着我们这个哪个数据库啊,DB2021对应着哪张表,那么是不是t user这张表,然后完了以后生成哪一个实体类叫user OK,那么做了这个配置以后回到我们的美版。
08:07
那么找到我们配置好的一键生成工具,选择它,选择这个插件,选择我们的美贝瑞ta,那么。双击鼠标左键。等它自动化生成success这一波,OK吧,好吧啊。来,上次呢,我搞得我很郁闷啊,我所有东西亲自手敲,结果被鄙视,好像感觉非得用一键生沉,你们才觉得这个装逼才够是吧?我觉得这些工具在我眼睛里面看来没有任何价值和意义,还是希望同学们基本功扎实啊,这儿多说无解,你们来。Com还是硅谷叫do,那么大家看这是不是生成一个NTT,那么这是不是生成了一个map,然后这个是map接口美,这个是对应的user map XL的配置文件,对吧?做北媒体映射的,那么来我们的user,那么对应的哪张表是t user,那么这些只要你写了注射,所有全部自动化给你生产,那么结合我们的之前的这些就不用讲了吧,就是一个。
09:04
预对象好吧,那么完了以后。大家请看这个是一个接口,OK,这个接口里面很干净,没有那些需要明显定义那些什么增删改查的不需要了,那么接下来这在这块也很干净,只有一个map的一个映射,这些都是美的基本功啊,之前我们讲过不下八遍了吧,兄们也该操作熟练了,那么大家请看MG自动化生成,OK,只是做了一个什么表和我们这个字段的各种映射即可,那么这些自动化生成以后,我呢就把它拷贝回我们的。多开putt这个微服工程,达到了我们的一键生成Java代码,这些增删改查的我们就不写了,好,那么完成一键生成的说明以后,我们就要改一下泡沫,我们这个泡沫呢,那么请同学们啊,就是你直接粘都应该保证粘成功,不许偷懒,一定要动手,那么来了。我们完了这些的话呢。就是加了这些常见常用的啊,我也是从我们的项目当中抠出来的啊,那么我们给大家讲过那些金融系统还分布式事务,杨哥当时带着大家做过的,对吧?Boot呀,Swa呀,整合spring cash等等等等,那么这些po沫你直接粘,那么要么呢,稍微改一下,以前是不只有个6001,那么现在呢,就是阿里巴巴德鲁伊。
10:21
数据库。连接池的配置啊,那么这些不用我多说了吧,那么现在我们Linux服务器IP是169,那么在这儿弟兄们那么注意啊,你自己是多少就是多少,我这是169,所以我就写了169,那么用户名密码等等等等,那么这个是我们的MYQ和。数据库连接池的配置啊,这个是我们的什么red的配置啊,对吧,这个是我们美相关的配置,那么结合我们的美告诉你要在class pass下面新建一个map这么一个文件夹,然后再把那些user map点配置文件拷贝进去,N在这儿,所以说呢,我们到后面一键生成以后,是不是就按照我们的配置把这些挨个挨个的。
11:01
拷贝进去就OK,好,那么来同学们,这个是我们的,要么那么主启动类,由于我们用了TK免被这样的自动化部署工具,我们在主体同类上面添加map sky就不在每个接口上添,那保证我们读到的这个dio就是我们的map接口。指定我们对应的路径,OK,那么这是我们的主启动类,那么业务类呢,首先。看配置类,那么这两个一个呢,是red的这个配置,那么来吧,我们呢。用SOK生态这个不再用解ID了,那么这个呢,就保证我们那些序列化啊这种工具类的通道,那么答案呢。不废话了吧,只要是跟着我学过的都懂了,那么这是一个red的配置,那么第二个呢,是我们的什么斯瓦哥对吧,对于我们的这个rest的接口等等的话呢,都需要通过它来进行我们对应的联调。所以说这是一个配置类一。搞定它是RED2斯瓦哥,保证我们的接口调用好,那么这个是我们的业务类的第一步,那么下面新建entity,那么注意我这个下面啊自动化生成了。
12:15
En。只有一个user,那么直接拷贝过来没问题,但是我们晓得,在日常工作中,这个user一般是在dio层。映射我们的数据库,我们一般在controller和service层之间,我们需要有个传递数据的对象,一般我们把它称为data transfer object数据传输对象。那么所以说我们这儿也做了一个什么user d to,那么这个是我的。User,刚才我们的一键生成工具自己搞定的。那么来。拷贝着他来了一份user d to来进行我们相关的业务映射和说明,那么这个API mode什么意思啊,是不是就是我们袜哥里面的,那么待会我们联调的时候出现了一个界面,每个字段到底是干什么的,那么这都给大家呢,统一生成好,写好,好,那么这个就是我们业务类的第二步配置。
13:06
NTT,那么NTT完了以后啊,杨哥的习惯是倒着啊,我是先把环境整好了以后,我们再去写业务类,那么NT完了以后怎么着,是不是新建mappa,那不用多说了,那么这个map第一个新建user map这个接口我们自动化生成的,好说直接拷贝过来。那么。前面见过了,那么就是我们的,注意我们用的是TK美TOK,那么user map继承了以后,因为我喜欢它的什么呢?里面的话日常的都给你封装好了,就是个空的很清爽,很干净,那么这是第一步,那么第二步都晓得我们是不是要在resource文件夹夹下面结合我们的。Yam的配置文件,你看这是不是要。Class下面要新建一个map文件夹,然后丢进去,我们这下面自动化生成的这个XL use在map X丢进来,那么来也就是从下面拷贝过来的,它这个里面的也给你处理的干干净净,OK好,那么这个呢,是我们的业务类的第三步新建map,那么第四步新建service,那么在这个service呢,我们呢就需要。
14:08
手写,那么他也很简单,其业务逻辑呢,就两个啊,弟兄们。来吧。这么看不害怕了吧,我们前面是不是刚才也说过,我们对这个数据的验证就是一个读一个写,读写都支持就OK,那么user service来,由于我们要先从存进MY,然后再回写进,那么这个标准的就要有个前缀,那么对于user,我们这个就是user冒号,就是我们所有key的前缀,然后呢,User service,我这偷个懒,我就没有再去写那个什么user service的这个呃接口,然后再写个user service实现类啊,快快的过,我们这些不是在主要是讲这个put和cloud的这个Java代码,这些我们做过太多了,杨哥,几个月前大家大家都快做了吧,你们都已经一见生成很熟练了,那么接下来我们再看user service。
15:00
调两个接口,一个叫user,一个叫temp,那么首先新增数据,那么来很简单。那么弟兄们,Service这块的话呢,User,那么前台传过来userl对象,那么第一步先插入MYQL成功,那么首次的话是也没有MY里面没有新建数据库,新建记录,是不是先要往数据库里面插入记录,那么所以说直接用user,人家给你封装好的insert select这个方法把前台传user传过去,如果是I,比如说大于零就说明。插入成功100%数据库里面有了,那么数据库里面有了以后干什么呢?再从数据库,把数据库里面的。记录查出来,然后呢,得到它,这是第二步,然后干什么,这个时候这个K就是我们ready这个k OK user冒号结合我们从MYQL第二步查出这个user,得到它的主键ID,绝对。不会重复是唯一的,然后把这个K干嘛和value这个对象大家请看,再通过complete set。
16:05
插入进这一步是不是相当于我们的SK1。这个K就是我们的user冒号。比如说第一条记录是一。然后呢,这个就是user冒号1VALUE值,就是我们传过来的这个对象最终会以杰串的形式存进我们的。Red里面为什么,因为我们这儿是不是做了相关的序列化的工具配置类,OK,好,那么弟兄们这个呢,就是我们的。写入操作啊,只要插入数据库成功,马上会回写进,那么这条记录下次来查询的时候只会走我们的,就不会再走我们的MYSQL,减轻了后台MYSQL数据库的压力,好,这是我们的写操作,待会看验证能不能成成功,那么接下来就要干什么,是不是就是我们的读操作,那么我是不是就要按照。User ID去查询,那么来,首先user肯定没有嘛,那么结合我们这儿,你一查肯定是user的ID传过来,那么先从write里面去查,那么结合我们的前缀user冒号来到这儿,假设user冒号这个就是T,这个T先red里面查询,如果有直接返回,如果没有咱们再去找MYSQL,有的话,那么大家请看不进来这段对吧,有的话直接就从red返回了,如果没有呢,我们。
17:26
Red里面没有,再继续去查MYSQL里面有没有,那么在这来查一下,这个呢是从MYSQL数据库里面查来看看,如果说MYCQL里面也还是空,那么这个时候就变成什么是里面也call myql里面也那么加,MYQL里面都没有这个数据,那么记录下导致什么穿透了这个K回血进OK,那么当然如果说买S。需要将数据写回,保证下次。缓存命中月,OK,那么假设啊,里面没有,但是MYSQL里面是有的,那么这个时候过来把我们的数据从MYSQL里面该返回的返回,但是呢,MYS有的时候还需要再将数据回写进我们的red,保证下次可以从里面查到。OK,好,那么同学们,这个就是我们的什么service类,那么最后一个弟兄们大家看一下是不是就是我们的CTRLL了。
18:21
之前我们做这个,呃,最简单的对吧,这个不说了,就是读一个最简单的订单,那么现在我们的CTRL了。也很简单,那么来弟兄们第一步,那么是不是也是我们的CTRL调service,那么这些呢?不介绍了吧,那么这个是controltl了酸辣法,而日啊,这个是AP袜哥的对吧?那么这个时候user艾,那么来我点一下,相当于说调用at的方法干嘛呢?一次性插三条记录,那么来对应着我们的对吧,我们这呢也不用自己去写,那么比说user.that。Ad吧,你要一个一个的写没必要,那么这个时候也基本上一键生成,那么来兄们你看。
19:04
为什么只写了三条呢?那么第一个五件。需要吧吧,主见是MY,我们这动画生产,那么第二个用户名我们这儿写了个比方,杨哥加这个I是几就是几,对吧,好,已经有了,那么passwor,我们的糊图工具包里面的simple u悠I idea,然后呢,八个六位这也有了,那么thanks,我们呢。直接默认呢,它都是零对吧,我们这儿你看写的是不是都停。规范的default是零吧,对吧,那么在这块的话呢,零代表女性,那么好,我们这也不要,为什么直接是new,它随机点。一些数是二,二的话呢,就是零到一,那么这块字节的话,因为我们这儿用的是。迷你版微小版的in特类型对吧,因为它这个sex的话,性别嘛,两种是吧,零一然你不要跟我扯淡,什么泰国人妖第三种什么的那个有些同学瞧不起我们就不说了啊,那么这样呢,过来呢,保证呢这两个,那么其他的这个什么删除啊,更新啊,Create呢,由于我们在数据库里面啊,它自动化呢会给你。
20:06
数据库层面就给你生成,所以说我们这儿呢,也就不再去写,但你要想写可以,那所以说我们这只差用户名密码。以及性别,那么插入进去OK,好,那么接下来这块呢,查询一条记录,那么弟兄们说白了简单了吧,那么你丢个ID进去,我查出来就完活了,那么这个就是保证了我们大家新建我们control抽了,OK好,那么如果说我们的编码没有问题了,结合我们之前的操作,那么美package是不是这个命令将微服务形成新的一个架包,哎,拿这个价包是不是上传到我们的Linux服务器的,比方说my docker这个目录下面,然后是不是又跟成跟我们之前讲的这个。一模一样,这个案例是不是通过多快要发布微服务部署到我们的多款容器,说穿了,现在做到这一步以后,我们本地的这个。为服务Java代码写完搞定了,然后呢,Package OK,那么走起找到我们的这个,然后呢,Plug in,然后呢,诶,不是是这个,那么找到我们这这个哥们刷新一下,那么do。
21:15
Boot这个微服务新版的这个带着我们这些复杂功能的啊,Red什么MYQL之类的,OK,那么拍键给它编排着,完了以后,我们本地呢,在目录下面呢,就会形成我们的一个价包,那么这个价包上传到Linux服务器的MY多卡目录下面,然后是不是借用我们之前编写好的这个见过了吧,那么是不是还叫这个名字,然后呢,再重新编成编一次变成这个新的。进去啊,然后到时候跑到我们的do上好,那么同学们successful没什么问题,那么来。路径就是它,那么现在这个下面生成了,那么在这我们刷新好兄弟们,这个就是刚刚生成的,那么老规矩,这是我们Linux服务器,买doer服务器上面拖过来,马上上传,OK给他上传着。
22:03
那么上传以后我们呢,回到我们的。MY多卡文件夹下面LL,那么这个时候同学们请看这个是不是我们刚刚上传的这个微服务,然后结合我们的多开Fi啊,那么这两者一结合,多开一去构建的话,那么是不是就会生成一个我们新的镜像,那么这个镜像的名字按照我们的多开fair的编排规则是不是叫。这个名字这一波OK好了,那么编写多开file上传完了以后编写多开file干是然后呢,是不是开始构建镜像,那么原模原样的命令还是熟悉的配方,还是熟悉的味道,这么请看doer右杠T,那么还是叫这个镜像啊,那么就们我们来来执行一下,注意啊,一定是在my doer这个目录下面,然后呢,一定是多开fair和这个架包文件最好放一块啊,我们来兄弟们一回车。如果不出什么意外,那么等稍微等他一会儿,我们在本地将会生成我们最新的这么一个对应的。
23:05
杨格版的这么一个微服务,你看successfully successfully,然后呢,名字target就叫呃,Tag标签就叫这个好弟兄们。我们来看一下。Doer images来兄弟们,这个时候是不是就形成了我们一个新的一个镜像啊,诶,那么这个呢,就是完成了我们第一步改造升级我们的微服工程,每一步给答案说的清清楚楚。
我来说两句