00:00
首先呢,第一个内容呢,给大家先来介绍这个登录,或者说用户登录的一个业务流程,就是咱要做个登录,它里面的方式应该是怎么样的,那给大家我来详细说一下啊,我们这个登录。这个位置我画个图啊,首先咱们看第一种登录,就是我在我的课件中写到的叫单一服务器的模式啊,这是一种比较早期的一种登录方式,那咱们来画一下啊。首先我解释一下什么叫单一服务器。比如说我现在啊,我一个程序里边有功能,包括业有登录,那咱把这程序最终比如说我又给它部署到一台to快D中去,咱用一台烫快的服务器就来运行这程序,这叫单一服务器,比如说这个过程中的,你没有做集群,也没有做分布式,就是普通的一台服务器做操作,那这个要做登录,那我们怎么做呢?
01:02
我觉得各位应该都知道啊,他的做法就是咱们最原始方式,比如我们刚才给大家回顾的,那怎么做到咱就可以使用。我们一个最基本技术,就是咱经常说那个session对象是不是来实现,而怎么实现呢?比如现在我们在登录之后,当你登录成功之后,咱可以把那个用户的数据。用户的数据给他就放到我们这个session预对象里面去。就放到里边去,然后你放完之后,比如说每次你要判断是否是登录,那怎么做呢?咱就从session里边获取数据,如果说它可以获取到,那现在就是登录,如果说你获取不到,那它就不会登录,这是一种最普通方式,咱通过session来做这个登录,就是session里边每次登录往里边放出去,然后其他地方你取出去,从里边取,如果能取出来是登录,取不出来就不是登录啊,这是一种就原始方式。
02:10
而像三中放数据和取数据这个代码,我觉得各位应该也都记得啊,如果你不记得,我这里写一下啊,一个最简单代码,像里边放数据用个方法叫set attribute。不是,各位是否记得啊,Attribute就是属性嘛,里边的名字,比如说我叫user,假如说值是个user,这是往里边放数据,然后咱取出去的话,用session里边的方法叫get at tribute。从里边取数据,根据它的名字,名字就是user,那这个时候登录成功,往里边放出去,然后你取数据,用get,当能取出数据,那它就是登录,取不出来那它就不是登录啊,所以这是我们最原始方式做登录,而这种方式呢,我们适合在这个单一服务器模式,也就是说啊,你现在这种模式中,你在集群和分布式中做会有问题,如果说你只是一台服务器,或者说一台tomcad,用这种方式是很合适的。
03:15
这个啊,是我们最原始方式做登录,也是我们在外部阶段学到的,所以各位把这个给他知道啊,但是大家注意啊,咱们在实际的项目中,比如我们做个项目,那咱一般项目呢,很少是单一服务器,就是很少是一台烫不开的。特别是我们的互联网项目,咱不可能只有一台服务器,咱肯定要做这个服务器的集群,或者说做分布式,经常是集群分布式再去用,说的通俗点啊,就是你肯定是有多台服务器,多台服务器中来共同分担你的访问压力,如果说你只有一台服务器,我这里写到了,那它问题就是你的这个性能压力,肯定压力特别大,另外你要扩展特别不方便,因为它只有一台服务器。
04:03
所以我们现在啊,我们在实际中肯定都是多台服务器做这种集群,或者说做这种分布式的方式。那给大家来画一下啊,这是我们的第一种最原始方式,单一服务器就是一台开头。但实际中咱们分布式集群经常用到,那现在我来画一下另一种模式啊,比如现在我们这里边啊,在咱们部署项目的时候,咱做了一个叫集群的部署。那大家看你词。集群。什么叫肌群?看看这个啊。集是不是有集合的意思,群是不是有多个,也就是说你这里边在集群操作中,它就不是一台服务器,至少是两台服务器啊,就是多台服务器,那什么叫集群,给大家画一下啊,假如我现在呢,我这里边有这么一个项目,比如是一个在线教育项目,那咱项目呢,这里边肯定不是一台服务器部署,它肯定是多台服务器部署。
05:06
这个叫集群,另外集群操作中呢,咱经常结合一种东西叫做。分布式评估数。这分模式我之前应该提过啊,也就是说咱们现在的项目的架构模式是什么模式。之前各位说到过,我们现在项目用的什么架构?是不是叫这种架构。是微服务架构,而微服务它的特点就是每个模块是不是都独立运行的,所以但在实际中每个模块肯定会单独进行部署啊,所以现在比如说我们这么来部署。假如我现在的第一个模块。就是我们这个service edu。比如说第二个模块是这个叫service oss。比如说第三个模块是service,这个叫做CS啊,就是咱那班ner等等一管理,当然还有更多服务,那这些服务最终构成的肯定是我们一个在线教育的这么一个项目。
06:04
在线教育项目由这些我们最终构成。然后这个啊,理解为就是一种简单的分布式的这么一个基本的一个部署方式。当然这种方式中啊,就有我们刚才说的问题了,比如大家看啊,因为我现在这几个服务是不是都是单独部署的。假如说我第一个服,我给他部署到一台服务器上,这台服务器比如是这个192.168.1.1这台服务器,然后我第二个这个服务,比如部署到这个192.168.1.2。第三台服务器,比如说部署到这个1.3的里边去,所以大家看目前三个模块,他们是在不同的服务器中,而现在再要去做登录就会有问题了,因为他们你注意啊,是不同的机器,另外他们还是不同的这个模块,EDUOSSVODCMS,他们都是独立的。
07:02
但是现在如果说按照这种方式,我们要做登录,那这个该怎么去做啊,咱要讲的就来说这个特点,就是这种方式我们该怎么去实现。登录。那给大家啊,来具体说一下啊,咱该怎么做。那大家注意啊,如果说啊,在这种方式下,咱还是用我们第一种做法就是塞来做到,那他是否能做到,大家可以现在考虑一下啊,我这里给各位画一下,假如我现在啊,我这里登录,我在ss edu中我做了一个登录啊,就是在这个模块中我们进行登录。Edu登录,那登录方式就是咱肯定是向session里边给它放一个数据,比如写一个叫set attribute。Attribute啊,比如说里边的这个名字是user,它的值是user,当咱登录之后,我用这个方法,那就可以把这数据放到了我们这个筛与对象中啊,咱这么做在这模块中是可以登录的,但是现在呢,这么做有个问题啊。
08:12
因为各位注意啊,我们现在不管你是edu还是oss,还是CMS,这些是不是都属于咱们在线教育中的模块,而我现在比如说按照这种方式,我在edo中登录了肯定可以,但是我现在再去访问oss,那你注意我在oss中是不是还需要再登录一次?我在CS中是不是也需要再动录意思,因为它们是不同的项目,而你这一过程中session的对象肯定是不能共享的,你在edu中的session在OS中肯定得不到,你在OS中的session在sa中肯定也得不到,因为他们是不同的项目,又在不同的服务器中,肯定它是互相得不到的。所以这种方式的问题就是什么呢?你要登录每个模块都需要给他再登一次,我访问edu要登录,访问oss要登录,访问CMS要登录啊,这种方式肯定是不对的。
09:12
而咱在实际中我们要做什么效果,也就是说不管你是哪个模块,只要这个模块是咱们在线教育项目中模块,我只需要在一个模块登录,然后其他模块都不需要再登录,这是我们要做的效果,而这效果在咱们这个操作中有一种术语的说法给大家写一下啊,要各位记住。要这个说法。叫什么单点登录。这是啊,各位要记住一个词,这个东西啊,在面试中会经常用到,包括在咱们这种项目开发中,这单点登录属于一种标配性的一种登录方式,也就是说最终重复一遍啊。什么叫单点登录?我现在在线教育项目中会有很多的模块,而每个模块都是独立运行的,它们互相不产生影响,就微负架构,那什么叫代子登录?比如说现在我在这些模块中的任何一个模块登录了,那再去访问其他模块都不需要登录,可以直接访问,这个过程叫单点登录,在任何一个模块登录,登录之后其他模块都可以再去访问,不需要二次登录,这个过程就叫单点登录。
10:29
要各位把这词记住,然后给大家举个例子啊。举个什么例子呢?咱就找一个各位都知道的这个东西。百度各位应该都用过,然后百度里边有这个特点啊,什么特点呢?大家看啊,它里边有很多的产品,比如说百度最常见的是一个贴吧,包括百度里边有文库,有知道有什么各种东西,但你注意它的特点啊,比如我现在我在贴吧里边想发个帖子,想做个评论。
11:01
但是不是要登录,我在文库里边,比如我想下载一些东西,是不是要登录,我在知道里边想做个提问,是不是要登录?当然百度里边特点是什么?比如说现在我在百度贴吧登录了,我再去访问百度知道,百度文库,百度音乐是不需要再登录,是不是可以直接访问,这过程就叫什么,就叫单点登录,就是你在里边的任何一模块登录之后,在访问里边的其他模块都不需要二次登录,可以直接访问。这过程就称为叫单点登录啊,所以咱们做的方式肯定是用单点登录做到,因为咱们项目是微服架构,每个模块都是独立运行的,而我们最终要做的效果就是在其中的一个模块登录之后,其他模块不需要二次登录,它就可以直接进访问。这个啊,是我们要说的这么一个特点啊,单点登录。要各位把这个词给他要知道啊,就什么叫单点登录,因为这种方式啊,在实际项目中,我刚才提到是一种标配性的一种方式,在你的这种项目中绝对会做到单点登录啊,当然除非说你不用这种方式,你只是做一个单一服务器,那用到,如果你做集群分布式,那单点登录是绝对会用到的。
12:19
这个啊,咱们把概念做了一个说明。各位先知道什么叫单线登录,你就可以想一下那个百度,我在百度贴吧登录了,再去访问百度文库,百度知道,包括百度音乐这些不需要二次登录都可以直接访问,或者说我在百度云盘登录,因为我这是云盘登录之后,你看我访问百度里面其他东西应该都可以访问。这个就是单点登录的这么一个概念。大家把这个这个先知道啊。
我来说两句