00:02
好嘞,呃。那么我们说这个session共享哈,这个其实我们刚才已经说了这个事儿了,你在这个这个他盖上这个登录,你在其他的这个上边访问的其他的session的这个存储的空间哈,叫session池哈,这是我起的名字哈。这是我起的名字啊,所以说你你你你跟别人交流的时候,你得注意哈。那你就找不到你原来这个赛事里边存的数据啊,这个这个理解应该还是很好理解的,说这时候咱们这个看看咋样去解决呢。哎,咋样去解决呢,Session的这个同步呢。就是,哎,就是说我们。第一个方法叫session的同步啊,这个时候是借助于我们的tomcat。借助于我们的tomcat。Tomcat本身呢,它是有这样一个功能的啊,就它你在tomcat里边做一些个相关的配置,就能够去实现这个三的同步。
01:03
啊,就是说这个他俩让他俩商量好,诶,你里边这个赛事数据有任何变化呢,你在我这里边儿呢,你也给我存一下。他能够做到,但是这么做呢,是并不可取啊。它会造成session在各个服务器上同量保存,啥叫同量保存呢?因为你在这儿要多少session,要存多少数据,在我这里边儿呢,也得要多少session,也得要存多少数据。啊,这个数据呢,你在这儿,比如说呢,你存五个G的session。我这边呢,也得存五个G啊,那这个时候其实对内存的空间上来说,这个占用还是挺大的。哎,那当然了,你说这个这数据有可能有这么大吗?啊,能有这能能能存这么多的30吗?啊,那你这网站要是大的话,你这用户如果多的话,那他还真的有可能到到这么大啊。哎,所以说呢,这个呃,数据量太大啊,导致汤姆CA的性能会下降,嗯,数据同步呢,它也就做数据同步这个事儿,那你想它也是要消耗性能的啊,也是要消耗我们的这个。
02:10
呃,CPU内存的这样的这个资源。哎,然后呢,对于集群外的服务器呢,是无效的。哎,这个需要斟酌一下啊,这个是不是有问系集群,这个这个倒是跟集群倒是应该是没有啥关系啊,这个我应该把这条去掉。因为因为它是在tomcat里边做配置啊,是tomcat他们互相之间这个通信啊,跟这个集群其实应该关系不大啊。然后呢,说这个下一个办法啊,下一个办法是把session的数据呢,存储在cookie里边。那就是说就不不不找服务器端的cookie了。啊,这都在cookie里边存。那这个倒是也能够去一定程度上解决这个问题,因为每一个用户呢,你出发点哈,你一定是从这一个cookie里边出来的。
03:06
我服务器端的tomcat有很多个,但是你的你的出来的浏览器呢,就这一个,所以说你你从这儿呢,都数据都存在这儿。我就从你cookie里边去取这个数据,这个就没有这个问题了。逻辑上来说呢,是这么个意思,但是实际上你要是按这个去操作的话呢。哎。服务器端大大减轻了数据存储的压力,不会有财不一致的问题,这是个好处啊,但是这好处呢,很脆弱。它的缺点是呢,Cookie能够存储的数据非常有限。那这个各个资料上面说的好像有些差异哈,但是就几K就是几K啊,存储的数量非常有限,而且一个域名下边啊,一个域名下边,比如说你3w.aa.com。哎,你这一个域名下边大概就是个20个库品,你不能再存,也不能存在太太多了。
04:02
啊,所以说所以说这边它存储这个还是很有限的。呃,Cookie数据呢,在浏览器端存储呢,不受服务器端的控制,浏览器端的清理cookie的话,这个所有数据就都丢了啊,浏览器端这个说不准啊,你这个用户清理一下垃圾啊啥的,他把浏览器这边呢都勾选上了,他这个就都清清掉了,就没有了。所以说呢,这个看似挺好,但是实际上呢,实际要操作的话,这个会有很大的问题啊。哎。嗯,下边还有这么一个。这么一个办法叫反向代理哈希一致性。哎,说这个啥叫反向代理呢。说呢这边哈,你看这个。呃,浏览器A。通过负载均衡访问这个弹不开的浏览器B,通过负载均衡访问这个弹不开的,哎呃,那么这个负载均衡服务器上面呢,它根据你的IP地址,因为每个浏览器会有你的IP地址嘛。
05:08
哎,你比如这个呢,是幺九二幺六八点,呃,5.36啊,哎。或访问时的请求参数等等这些东西就是说你每个浏览器呢,你自己独特的一些东西。进行哈希的运算。根据这个运算的结果啊,一个哈希的一个运算的结果,就让它固定的对应一个弹不开的。诶,那么也就是说你这个浏览器。就会顾对应我们这个他不开这个浏览器呢,就对应这个他开的。就有你专属的,就有一个你专属的一个tomcat为你服务。就好比说什么呢,你去这个理发店。哎,你要是经常去一个理发店呢,他虽然说有很多个理发的老师是吧,现在理发都叫老老师了是吧。
06:02
哎。你你去你去你去时间长了是吧,你是充了好多钱是吧,哎,然后你在这专属的你去了以后,你每次去就专属的这个老师给你这个剪头发,哎。你要是他如果没有这个机制呢,你每次去访问谁是随机的。有点这个意思啊,有点这个意思。所以说那。呃,因为你是专属的,你跟这个理发老师呢,你也熟了,他也知道你喜欢的风格啊,他也知道你是想留的长一点,留的短一点是吧,是烫个卷是是是是咋回事啊。哎,或者是把一半给剃光了,还是怎么弄,他熟悉你的风格和你的这个需求,哎,这个就你就能够享受到更贴心的这个服务,我们这儿也是啊,就是这个你每一个浏览器这边,客户端这边呢,它是专门的一个他开的去服务。那么这个浏览器的数据就专门在这个tomcat的session里边去存啊,Session的这个管理里边去存。那么他不会访问这个time派,它也就没有这个不一致的问题。
07:05
这是这么一个思路,但是呢,这个也很有局限性啊呃,具体的一个浏览器,专门访问一个具体的服务器。这服务器它如果挂掉的话。哎,这数据就就都丢失了,你去理发店,你找这个专职的,你专属的这个老师,结果他今天生病了,他没有来啊,那你今天就剪不了了,是吧,要不你就换个老师,换个老师他就不熟悉你的风格了。你你你你通常你习惯是左半边剃光了,右半边留个需子是吧,结果结果他这边给你整反了啊,这就不能造成不一致了啊,就就就就会造成不一致了,然后呢,这边就这就说呢,存在单点故障的风险,我们本来配集群呢,就是为了避免单点故障啊,结果这样还反而还没有解决单点故障的问题。它也仅仅适用于集群啊,因为因为这个效果呢,是通过负载均衡的这个服务器呢,由他来实现的,你要是不在集群里边,就不从负载均衡的服务器这走,那这负载那这个当然就不起作用了。
08:09
啊,当然它就不起作用了,哎,所以说它这个有这样两个问题。所以说呢,看前面这些个办法吧,都不是很理想啊,都有各有各的缺陷,那么我们看看最后的这个呢。叫做我们在后端去统一的存储session的这个数据。怎么样让后端统一的去存储呢?呃呃,使用red这样的内存的数据库啊,一般不用买SQL这样的关系数据库啊。呃,Session的数据存取比较频繁,内存速度快,Session有过期的时间啊,类似这样内存数据库呢,比较方便实现这个过期的释放啊,一般不会统一存呢,不会考虑,通常不会考虑用MYSQL去存啊。哎,他的工作是这样的。这个浏览器发的请求过来哈,有的可能会找。
09:01
集群的负载均衡服务器有的可能不是,哎,因为可能负载均衡的是我们局部的去配负载均衡。然后呢,我们这个session呀,是统一的在里边去存这个session。在里边统一去存。那么你访问任何一个Tom cat,哎,访问任何一个他需要session的数据的时候呢,我们就都上red里边去找啊,都让他上red里边去找。那这个其实是都在red里边去存的,那就肯定就不牵扯他们这个互相之间这个不一致的问题了。解决了不一致的问题。那么说这个,那你都找red,都在这一个里边存,那你red里边他要挂了怎么办呢。那么我们可以给red呢,把它配成这个master slave。哎,这个red呢,它有集群,他们master slave之间呢,他们是有一个数据同步的。哎,然后那这个时候,这个时候你master slave里边你再给他来个哨兵。
10:04
哎,然后你这里边有有宕机的话,它会slave宕机的话是吧,它会检测到master宕机的话,从slave里边去选取一个就是说就是说咱们不能说呢,说绝对的杜绝说这种单点故障的问题,但是它把它已经降低到了极低的这个一个几率了。哎。所以它的优点呢,访问速度也比较快。哎,就是说这个,呃,也不必担心担心这个单点故障说,虽然说他需要经过网络访问啊,你从这个Tom派去找red。那实际开发生产环境下,我们运行的时候呢,基本上应该是这样的,这个每个tomcat哈,给他分配一个,专门给他分配一个服务器实例。就啥意思呢,就好像咱们在这个微里边啊,就这不是这么有这么多虚拟机吗。啊,一般吧,现在吧,不太可能说我。
11:00
就每个公司哈,自己去维护那个硬件的服务器。硬件的服务器。呃。嗯,就说起这个服务器的事儿哈。其实服务器我们是一个很笼统的说法。你看这个我们有硬件的服务器。哎,我们有这个。呃,虚拟机这样的服务器,有这样的服务器系统啊,有这样的这个软件的服务器,我们笼统的呢,都可以把他们称之为是服务器。啊,你看这个硬件的服务器呢,你像这个叫做刀片式的服务器啊,刀片式的啊,这个刀片式服务器就是说它这里边儿呢,CPU内存硬盘啥的这里边都有啊都这都已经准备好了这一套,你要用的话呢,就把它插上啊,就是这个它里边啊CPU啊是啥玩意儿是吧,电源啥都有。你这个有这样一个类似于相当于也是机箱一样东西啊,你要需要的话就把它插进去,需要就把它插进去,不需要就可以把它拔出来,也是可插拔的,哎,就很容易能扩展。
12:09
你要好像我们台式机这种叫塔式服务器,诶这种吧,这种现在其实是啥呢,就什么时候会用这个呢,这个公司吧,就他这个。也不是特别规模特别大的这个应用呢。可能他自己就需要一个啊这个,然后自己去整一个这个东西,他这个就不会一般不整这个机房了,他一般不会拿这个东西呢,组一个大型的机房。机房啥样的?哎,咱们没有机会带带大家去参观是吧,咱们去看看这个照片就就就完了啊。那你那你这就是机房的照片呀,你的看着照片呢,你还就不用问我了是吧。你不可能每个公司都整这么大吧?你不可能这这得花多少钱,别这么说,你这么大个场地,你是租啊,你是买啊。
13:00
咱就说你说这个这个这么大的房子,你是租你是买,租也是好多钱,买也是更多钱对吧。这都是啥样呢?就像阿里啊,腾讯啊,百度啊,华为啊,人家整这么大的机房,整这么大机房,然后整这么多的,真正整这么多,这是实实在在的硬件的服务器,对吧,然后人家准备好这个以后,人家干嘛呀。人家是不是发布这个云服务啊,你们这些中小型的公司,你自己整不了的话,你是不是租人家这个云的服务器啊。阿里云腾讯云,百度云京东云是吧,这哪来的。不就是人家去整这个硬件的服务器,人家上边呢,他硬件服务器上肯定他去装系统,然后呢,他再去装这个虚拟化的这样的软件,类似于咱们微R这样的,他再去创建很多虚拟机。我们租的就是人家这个上面的这个虚拟机。哎,我们租的都是这样的啊。呃,你这公司呢,规模到一定程度的话,也可能呢,说你会考虑说我自己去买硬件服务器。
14:02
这个我请教过一个人家这个做做做运维的一个同学哈,人家说这个事是这样的。嗯。就是说呢,从这个费用上来说呢。呃,我要是访问量不大哈,我需求量不大的时候这个。买这个就阿里云这种云服务器呢,它前期呢是属于这个哎,费用比较低的,但是你随着你需求越来越大的时候呢,你这边就会访问量呃,就花的钱就会越来越多。
15:21
把这个得看你看你看你找工作这情况了啊,就是说如果说考虑他这个其实大公司吧,他也不可能说那么简单,他可能是有自己的这个整个的服务器,它可能为自己也虚拟出来这个一个实例啊,虚拟出来的一个服务器的实例运行一个弹开,诶另外呢,在虚拟出一个实例呢,运行这个red,它们在不同的实例上面各有各的IP,所以它们互相访问呢。这个肯定是要经过网络啊,它肯定是经过网络去访问。你要有这么一个意识哈,就是说呢,这个。嗯。很有可能呢,将来是这么工作的,最底层呢,是这个硬件的服务器。
16:05
Hardware server。这个硬件的服务器你是联想啊是吧,什么浪潮啊是吧,这种服务器哈。呃,IBM的啊,这种服务器,嗯,然后在这个服务器上面呢,会有一个操作系统。别了,我一会儿英文单词不会写就尴尬了哈。它最底层的是我们这个硬件的服务器。呃,硬件服务器他们彼此之间呢,肯定是通过这个网络。就是你得接网线呀,他得接这个交换机啊,路由器啊,哎,他得去接这些东西啊,他们是通过这个网络互通。
17:00
啊,这。这个服务器呢,它底层呢,都是靠这个都是这样的啊。你们有人会做水晶头吗?拿那个,拿那个网线,那个钳子。我刚上班的时候就。我的工作任务,其中就有一部分就是掐水晶头。对呀,但我现在已经不记得了,那个线的顺序啊什么。白兰橙什么白绿啥玩意儿那个。那个就不记得。我第一份工作,你看第一份工作是网管加文员加一个人事的助理。嗯。其实你们现在挺幸福的,我第一份工作,我第一份工作挣一个月1000块钱给我,高兴坏了。
18:05
0606年吧,零六年吧。嗯。在这个硬件服务器上面呢,是这个操作系统啊操作系统。呃。操作系统在这个。行了行了行了行了,差不多得了哈。这边会有一个虚拟化。啊,需要使用这个虚拟化技术。这个虚拟化技术哈,其实它不是说。呃,他不是说拿这一个服务器呢,去给你虚拟化分出来这些哈,这个东西它会这个其实很厉害的。
19:01
就是说你比如说呢,你你这个一个服务器呢,就。到最后呢,它会转化为真正的硬件服务器去执行那些个指令,然后这一个服务器如果它的负载非常高的话,它会利用这个服务器就是虚拟化技术呢,它会虚拟出来的这个服务器实力哈。嗯,就是他虚拟出来这个服务器实例呢,不是这么,就是这个傻不愣登的啊,他我就只是这个实例就用这里边的资源,这个实例就用这这里边的,它是会非常的弹性的柔性的去平衡啊,就是呃,这个每个服务器实例呢,其实都是在综合的使用这些个硬件的服务器,它会有分摊的。啊,它这个是有分摊的。嗯,它会均匀的去,大致上把比较均匀的去把每个服务器上面的,你要需要用到的这些个,呃,需要执行的指令呢,去分摊到我们这些个硬件服务器上面去执行,诶。
20:01
嗯。哎,所以说呢,这里边儿哈,这个其实是应该是这样。这个虚拟化技术呢,应该这儿只有这一个啊。哎,所以说这时候它虚拟出来的假设呢,他在这儿,它有1万台这个硬件服务器哈,他虚拟出来的实力可能是几十万几百万的。啊,你想想这个阿里云上面这个用户这个租服务器的这得有多少啊,哎,所以说这个实例,这个实例的话其实会有很多。啊,他们会有这样的一个弹性的一个协调啊,而且为什么说你你。你的每一个实力,你需要增加CPU,你需要增加内存,你就你就改一下参数。
21:00
也可能需要重启一下,就这么简单。马上这边就按照新的参数新的配置去运行了啊,这个非常的这个弹性,哎,所以啥叫云计算呢,其实这就叫云计算啊,这就叫云计算。然后这个服务器实例,实例上面呢,它其实还要再装操作系统。这就是我们租了这个服务器以后,我们又在这上面去租的这个,又去这个装的操作系统。呃,这个操作系统上面呢,我们假设呢,装他们开的。哎。就是说也可能会去装。呃,买circle。这就是服务,这就是服务器软件了啊这个然后呢,还可能去装red。哎,可能去装这个莱斯search。
22:02
嗯,还可能去装点什么别的东西啊。嗯,Fast啊,就是举个例子说啊,举个例子说。嗯。哎,他们是这样一个一个一个一个关系啊,就他们是这样一个关系,我去这。我一会儿下课我再画线吧,啊这个。所以说我们真正的用户在发请求,那就是用户是给他们去发请求。啊,用户请求过来这儿,其实真正到执行的话,它背后还有很多层的。所以说这里边儿其实哈,这个为什么说真的是学无止境哈,学海无涯啊,这个里边其实倒不是说我们都要去学这些,但是我们知道有很多事哈,你像这种他是这种云计算,他们咋实现的这样的这个这样的这个这个这个。功能哈。
23:00
这个我们觉得非常的这个敬佩啊,人家怎么做到的。啊,这就是云计算的部分啊,哎。然后这个大数据呢,其实是另外一码事啊,大数据就是另外一码事了,人工智能又是在大数据的这个基础上做的人工智能对吧?啊就是这个真的是哈,咱们大千世界哈,就仅仅只是it的这一个领域里边就有这么多的东西。哎,说了半天的话,我们就想说的就是。Tom k呢,其实是通过网络找找的,Red这个网络呢,通过网络找他不费时间吗?这个不会慢吗?诶。那其实我们现在呢,这个网络吧,通过网线去传输数据呢,有的时候比你硬盘访问的时候,这数据数据数据都要快了。啊,其实硬盘呢,现在是已经是一个我们整个计算机系统里边的硬盘算是一个嗯,瓶颈了,性能上面硬盘已经可以算一个瓶颈了啊,你这个一个硬盘的话。硬盘的优势呢,就在于它存数据时间长。
24:03
就是它你存进去以后没有什么灾难的话啊,就是硬盘没有被雷劈了是吧,他这数据是不会丢的。哎,这个里边就是它现在是它的关键价值是在这儿,但是它速度真的是不如别的设备速度快啊,还是这个呃,内存的速度啊,包括网络的传输都其实比硬盘要快。啊,所以这个里边其实他们传输的话呢,是没有不没有太大的这个性能损耗的,哎。也不就是或者说没有太大的时间的延迟啊。所以说为什么说这个很多网吧做这个无盘工作站,其实它是有道理的啊,它其实你。那个客户机上面没有必要去给你有有有硬盘啊,它因为它只是装些个软件,让你能够用这些软件就好了。所以说我们下面要采取的一个解决的办法啊,就是后端统一存储这个session的数据,我们把session共享的数据呢,统一的存储到session里存,存储到里边。啊,这是我们说呢,咱们大方向上来说是要这么干。
25:03
但是真正要说的话呢,这事儿真正要干的话。这事其实挺复杂。哎,这个真正要干的事儿,它复杂在哪呢?你想哈浏览器。
27:35
嗯。呃。哎,这里边儿呢,我们会传一个session过来。然后这个section呢,咱们去点set at tribute。是吧?这是我们原有的习惯,这个return的话就无所谓了啊。诶,这是我们原有的操作习惯,我们希望呢,你给我做了这个赛身共享这事以后。
28:07
我在写代码的时候完全感觉不到。就是我的这边的代码呢,不需要做任何的改变。我这个代码呢,该咋写还咋写,甚至于说呢,我不不需要做任何改变,你所做的这些事呢,我还都不操心。哎,所以说要这么要要加上这些的话。那么其实呢,我们说谁要是能给我们提供这样的这个服务吧,我们觉得真的是挺了不起。啊,就是我们我们在表层呢,在这个我们写代码这一层哈,就是说这个我们写代码这一层,和人家框架运行的这一层,还有这个真正存储数据的这个red也好,是什么也好,这是有很多层次的,我们一再跟大家说,我们代码是有很多层次的。我们在写代码,我们这一层。感觉的非常的清新,非常的爽,非常的简洁,非常优雅,我们啥都没干,我们还是像以前一样,该干该干嘛干嘛,但是在这个下边呢,这个框架这一层,他替我们去做了这样的操作。
29:14
而且是把以前的操作,以前也有这样的操作,Topad本来就有这样操作,他接管过来,按照这个新的机制呢去去执行,这里边有大量的细节,这里边有大量细节,这些细节都不需要我们去做了,都是他替我们去做了。我们只需要呢。把reddis准备好,告诉他我们reddis在哪。然后呢,后边其实基本上啊,就把一些个简单的依赖拿过来,就不用我们管了。啊,所以说表面上我们没有干什么啊,但是其实他替我们做了特别多。这个东西叫什么呢?哎,这是spring提供的一个spring家族里边的又一个成员,叫spring session。
30:03
就是它这个哈,就spring加的东西吧。啊,不是这个哈,不是这个哈,不是这个哈。我怎么我怎么。那么这个不由自主点到我自己那去了是吧。呃。你不知道。不知道,这是我的呀。啊。就这这一串哈。这一串就你就是这是spring,你要看spring加的东西呢,这是最顶级的是吧,哎,就是各种各样的东西。是,他这东西是很好啊,但是我们看着这东西,我们很绝望。我们觉得这堆东西我们学一辈子可能也学不完,咱们就看一个哈,你从这里边儿点一个,你看过来cloud下边。啊,你就spring cloud里边呢,你随便点进去一个哈,咱们不不不不说那啥。
31:03
这个你看这个你要新购HR的话,整个文档在一个页面里面哈。我去。我去。我。是吧,这个东西真的是他东西是很好啊,但是我们觉得很绝望。他这怎么弄出来的啊,他这怎么弄出来的,然后然后我们现在说的是这个spring啊spring。就他的家族里边的这么一个,所以说这个不可能就是说我们。特别是作为我们现阶段哈,不可能说是全面的要去整这些东西。你就说是还是说呢,大家现在呢,就是咱们咱们讲啥呢,你就先体验体验一下,到了工作里边呢,还是上班的时候还是用啥,你工作当中用啥去学啥啊,用啥去学啥啊,然后当然说你要是呃没事的话,拿手机呢,你没事就天天去,没事就刷一刷,没事就刷一刷啊,这天长日久累积起来就不得了了啊。
32:03
水滴石穿是吧,哎,这个水磨石的功夫,这个是非常的了不起的。
我来说两句