00:00
前面我们完成了整个s pou的大保存功能,那接下来我们就要重启这些服务进行测试,当然我现在的内存比较吃紧了,而且我们要批量重启,我们现在来都来对每一个服务来进行设置一下,可以来设置每一个服务的内存占用,包括为了批量重启方便,我们可以选择,比如这有一个edit configuration,我们在这里边呢,创建一个上面的compound,我们在这里边将我们所有要重启的服务都加入进来,首先我们的优惠券服务,还有网关,还有我们的会员服务,我们要获取会员等级的,包括订单服务,这个我们先不用我们的商品服务,还有库存服务,我们现在也先不用我们的第三方服务,还有我们的后台管理系统,那每一个呢,我们来都先修改一下,主要呢,设置上它最大的占用内存在这儿,V里边我们来加上一个杠XMX,那最大占用让它占用100兆就够用了,好我们把它复制过来,其他的人呢,我们都来加一个线。
01:02
我们将每一个都加一个限制。在我们的商品服务也都一样,库存包括我们的第三方,包括我们的这个人人啊。我们来都来点击应用,那完成以后呢,我们这个name的,我们就给它起名叫鼓励email。好,来点一个应用,那以后呢,我们想要启动这么多服务,我就直接选中这个国立ma,我来让它重启一下。我们让所有的全部都重启。库存我们可以先停掉。那整个都重启完成以后,我们可以看一下,现在内存占用70%,比原来省了将近20%,我们来做一个整体测试,我可以给这个保存方法先来打一个断点,我们将商品服务呢以debug的模式来重启一下。来到我们的前端页面,还是用我们之前录入的这些数据,那么现在就来点击下一步进行提交,来点击确定,现在呢,给我们后台来发送请求,我们来到这儿进入debug模式,好,那现在来一步一步看,第一步我们会封装s po、英OND的信息,这些信息都来源于页面,我们看一下这个VO,这个VO里边收集的数据有很多,诶,都非常完整,没问题。那么接下来属性对拷先过来走走走,那这个infoendity准备好了以后能调用第一个保存infoendity的信息走。
02:30
那么第一步保存,那保存成功,那是九号华为,那我们可以去数据库看一下,那么这个数据库呢,我来刷新一下这张表,我们发现呢,在SSP英O这张表里边并没有九号华为,原因就是由于我们这是一个事物,事物没有提交之前,数据是读不出来的,而我们MYSQL默认的隔离级别是可重复读,也就是必须最起码读到已经提交了的数据。所以为了测试方便,我可以先用这条命令将set session trans session isolation level read on committed,比如将我当前的这个会话隔离级别等级我们设置成读未提交,那我当前这个窗口就能读到没有提交的数据来,有了它我们就可以很方便的来看数据库的变化了。好,我们来把这个命令执行一下,然后呢,我们在这来刷新,现在九号华为没问题,这是进来的,那我们这块就没问题了,接来保存这个图片,这个图片呢。
03:30
我们来继续往下走走走,包括呢,我们来保存的时候发了什么SQL语句,我们在这儿都有打印,第一句insert这已经发了,那接下来我们来保存图片,我们来看一下这个图片呢,我们来继续运行,调一个保存方法,那这个保存呢,应该就是没问题的,来看一下。哎,我们这个保存,我们来继续让它执行,我发现这抛了一个异常,那这个异常原因呢,我们来分析一下,这个circleql语句,它是insert into spo的描述,插入了一个describe,而这个describe呢,我们来注意一下,在我们表设计的时候,这张表啊,我改变表它的po ID不是自增的,也是每一个商品,我们在这是指定的当前商品的所有的描述图片,My babies呢,默认当成了自增的,所以他插入的时候只插了这个字段,那就导致我们这抛了一个异常,那既然是这一个异常了,那我们直接整个放心丸,我们方法结束了,由于我们是事物,其他的东西肯定也都没提交,但是我们把这个异常得解决一下,来看以前的这些数据有没有提交上来,来把它重新打开。
04:41
我们打开在这个绘画里边,我来刷新,诶这个数据呢,已经回滚了,这是一个新绘画,把它关掉啊,这是我们在这个绘画上设置的,好,我来刷新,那我们在这一块呢,要修改我们就来修改这个q info describe entity,虽然它是一个主键,但主键呢不是自增的,所以我们需要设置table ID里边有一个ID type,就是我们这个主件的类型,类型里边呢就有一个叫input,这个input就是我们自己输入的主键,而不是自增的,所以我们在这儿来给它指定一下type类型,我们就叫ID type,我们不叫auto,我们是input,它是比较特殊的,那这个修改了以后呢,我们来重启一下我们商品服务以debug模式。
05:27
那这个重启完成呢,我们来继续测试前端,我们来让他重新发送请求,好,我来点,下一步我们来确定好,这个请求呢发出来,我们嘴巴ug进来,先是基本信息走,让它保存。这个基本信息现在已经是十号华为了,我们来查询一下十号华为没问题,然后我们继续来保存图片,我们来继续往下走走走,这个图片保存走,诶现在这个已经放行了,没问题了,说明图片保存也没问题,来打开图片这一块也能查到十号商品的描述,图片是这么多,而且这个图片呢,有非常多,每一个图片跟图片之间我们可以看一下,它是用逗号分割的,前面诶这有一个逗号,那这一块图片保存完了以后呢,接下来是保存pou的图片集,包括我们来看控制台现在的这个插入就指定了我们po ID了。
06:20
接下来我们来保存整个po的图片集,来保存这个图片集呢,也从VO里边获取到我们所有的这个图片集,然后调用image service进行保存,Image service我们当时写的一个批量保存,来看circle的语句打印,诶,这块图片集有这么多,它是insert into,这张表里边SPID是这些image u了有这么多,来看一下图片,这张表十号对应的这个图片集确实非常多。接下来就到了我们保存s pou的规格参数,我们继续来看,首先从VO里边获取到它的基本属性,现在有六个,分别代表这些,比如CPU的品牌以及CPU型号等等,其他东西,好,这全部都要保存,保存呢,我们先封装成一个集合,然后最后调用保存方法,行,我给这打一个断点,这个封装过程呢,我们就直接放行,我们直接放行,放行过来,我们这个集合呢,就算是封装好了,那接下来我们要准备的就是将这个集。
07:20
把里边的数据整个一保存好,我们来直接放行,那这个保存呢,我们又发现这是一个批量保存,发了一条circleq,所有的数据设置进去,在product at t r y6这张表里边,我们来确认一下product at t ry6点一下好,我们十号的商品这些属性信息也都保存进来了,没问题,接下来我们继续。来到我们这一块是po棒的VO,这是保存商品的这些积分信息,好我们来保存,把这些积分呢,我们先准备了一个to,从VO里边的这些数据对拷过来,设置上po的ID,关键这是要调用远程服务,那远程服务呢,我们首先得启动起来,启动稳定以后呢,来第一次来调用来执行走,那这个调用呢,我们发现,诶经过稍微一段时间以后,它调用成功了,这个成功了以后,我们这个R最终返回的这个成功失败,这个成功失败呢,就有一个code,诶这个code的呢,就是in配零给我们返回成功,那在这判断成功了,我们继续往下走,所以我们接下来这是成功的继续往下。
08:26
诶,我发现这个往下呢,现在没有跳到下一步,我们来再来往下,这抛了异常,这抛异常的原因,我们来直接给它放行,我们看控制台有没有打印我们这个异常的这个原因是inte不能转换成string,就是在这个R里边,我们get code,那get的这个code本来它就是一个integer,我们没必要把它强转string,再给它转换过来,或者呢,我们非要这么来做的话,就点一个to string,实际上我们直接把这个get code给它拿出来。
09:00
就行了,但是我们要返回in,放心的强转,因为我们这个code保存的就是,那么就需要把这个商品服务继续重启来,以debug模式我们重新启动一下。也是只有我们通过不断的debug,我们才能修改掉这些简单的异常,好,我们来等待它重启完成,我们继续从前端来发送请求,把这一块呢都来清空,控制台我们来也清空,来重新给他发送保存这个商品的信息,好来点击保存,确认发送。好,这个先是503 503service ona available,那我们这个服务还没重启成功,好来现在再来发一次,下一步确定,那我们再来稍等一下,这个服务启动还稍微得有一点漫长的过程,他得到注册中心先慢慢注册。来,等这一块全部完成好。古妙。那现在来点,下一步确定好,现在请求呢,发送过来,那这个po info的信息,那以前的这些,由于我们上一次没成功,肯定整体回滚呢,那就没什么问题了,来给他继续来执行,那这一块呢,我们就直接给他放行,到我们下一个断点来到这儿我们来放行。
10:11
好保存它的这些基本属性信息,这一块是来远程保存,来继续来放行,到这一块远程方法来放行。好,远程也都是成功的,这一块都没什么问题,包括我们来看数据库以前的这些数据走这也是没问题,这也有图片也有,包括商品的属性,Product属性,11号也都有,好将远程保存成功了,我们来判断,这个判断呢是成功的,将来要保存SKU信息了,我们先来从VO里边获取到所有的SKU组合,这是有数据的,然后我们再在这挨个遍历来处理相关的数据,特别在这来遍历处理的时候,我们在这要做一些保存SQ的基本信息,我给这先来打一个断点,接下来是保存我们SQ的图片信息,我给这儿也来打一个断点,还有我们这个SQ的销售属性信息,包括我们来远程调用其他服务保存的优惠信息,好,我们就来直接放行到下一个断点走,这个先是来保存SQ的基本信息,来给它放行,这个基本信息呢,我们来看SQL语句。
11:21
SQ语句这一块都是正常的,Update成功了一个,它是insert的一个数据,那我们来看我们SQ info这张表里边,好,我们现在保存了一个SQ,它对应的商品ID是11SQID是这个,包括它的默认图片,我们也拿到了标题以及副标题,我们这都有商品的价格,好,这一个SQ就算是保存完了,那我们接下来继续往下。这接下来是SQ的所有图片信息,好,我们直接放行到下一个断点,SQ的图片信息们来放行,这是一个批量保存bench,好,我们来看一下整个图片信息最终保存到SQ image表里边来,SQ image图片信息也都没问题。
12:06
不过这有一个bug,也就说我们页面由于他提交的是全量图片,有些图片呢是没有路径的,那相当于是我们没有选中,所以我们在这一块就是应该将没有选中的这些图片不给数据库里边进行保存,所以我们在这儿来给这儿先来写一个凸度,就是主要是没有没有图片路径的。路径的无需保存好,由于我们这个土度啊,它占用了一行,所以我们这个断点给失效了,我们现在回到之前的这个锻炼,我们土豆放在这儿啊,我们以后再来处理这个问题,我们继续来走下边这是它的销售属性的保存,那销售属性最终整合成一个集合,我们直接来放行,放行到这儿们来看保存的这个销售属性集合,走这一块批量保存呢,也都成功了,我们来看一下效果,来到我们这个SKU的。
13:05
整个销售属性集合里边点开,我发现一号的SKU这些数据都是正确的,没问题的,那我们接下来就来到优惠的这个保存。那这个优惠信息呢,也是一样,我们来构造好页面的数据,把相应的东西都拿过来以后,我们在这来调用远程服务走,我们发现远程服务呢,在这调用完成以后,会给我们返回一个结果也是成功没问题了,判断远程成功了,那也就没问题了,那么这个都没问题了,那么直接再来放行,那这是第二个SK,第二个SQ,我们来看SQ表,Skuo,第二个SQ,我们就直接给它将所有的全部放行。全部放行,放行。加第三个SQ放行。接下来第四个KSQ,我们全部都给他放行完成。
14:01
好,整体放行,那么这块如果全部放行完,我们数据库完全保存成功以后,那么整个业务就结束了,那结束以后呢,我们数据库里边就保存了我们之前录的八个SQ组合信息全都有,那我们的这一块就会成功,只不过我们这一块呢,由于是debug,所以超时了,到没显示成功,那么这一块的整个保存调整我们就做完了,那这些细节信息呢,我们下节课继续来调整。
我来说两句