00:02
好,呃,下面我们再来看一下路由发现,那若康Q它的路由发现,呃,采用的是不模型。模型啊,你说到铺模型,我们大家就想到push模型是吧,是什么东西啊,就是呃当呃topic路由信息发生变化的时候啊,Name server不会主动推送给客户端。而是客户端定时拉取库嘛,定时拉取啊,这个这个主题啊,Topic是吧,最新的路由。客户端默认客户端每30秒拉取一次最新的路由。呃,其实说到这儿啊,这个倒本身是比较简单的啊,它就是一个铺啊铺模型那么。Push模型说到push模型了,我刚才说了,马上我们就想到了push模型,那这两种模型你了解他们的各自的优缺点吗?
01:00
是吧?啊。这也是给大家扩扩展一些吧。啊,扩展一下啊。啊,第一个。呃,咱们先说push模型吧。先说复习模型,然后再给大家说一下这个诶。先说这个push模型,Push模型是什么推溯啊?推送模型什么意思?就是我大家看啊,这是我服务端啊,这是客户端。是吧,呃,我这边啊,呃,你你。你这里边儿,比如说这个数据一旦发生变化了,那我这边这个数据也要发生变化,那么我怎么样,这是客户端怎么样能知道服务端的数据发生变化了呢?通常有两种模型可以实现,就我们说的push模型和push模型。
02:01
刚才说了模型是什么意思啊?那就是我定时去查看啊,我过30秒我过去看看变了没,你看没变。啊,然后回来了。啊,然后过一会儿再等等等又等三秒变了没没变。那这这是什么?这是我们说的库模型。呃,当然。再再看变了没变了啊,把这个数据读过来是吧,这不拉取嘛,拉取过来了。但这里面存在一个什么问题,就是要过来了,变了没,没有。他刚看过没有变,然后这数据发生变化。那泰勒认为没有啊,所以这还是老数据,再过了30秒过来的时候变了没?一看哦,变了过去过取过来。所以这种铺模型啊。互模型是吧,这要拉取。
03:02
模型。啊,它存在的。问题是什么?存在的问题是,呃。趋势性。实时性差,它存在的问题啊,然后这个push模型是个什么模型呢?Push模型是这样的。这负担?啊,这是客户端是吧,人家是我这儿这个,呃,我我我。我这儿这个数据啊,要随你这这个数据的变化而变化。我这个客户端干嘛。给这儿发出一个订阅请求,我我给你订阅了。定位以后呢,哎,你这。啊,我也不用看着你是吧,你看你这边我就看着中间,呃,一旦数据发生了变化,马上怎么样就通知到他了。
04:00
只要数据变了,马上就能通到,所以它的实际性非常好。但有一个问题。这儿。他们之间这个连接,这是个长连接,你要一直维护着这个长连接才行。所以这是这是这个这个push模型啊,这实际上是一个什么模型,是一个发布定义模型。他需要维护一个强连接,其需要呃。每一个。强连接,而这个破膜性不需要啊,需要维护强连接啊其啊。实时性啊叫。是吧,是线条,但是呢,因为因为他需要维护长链接是吧,所以他占用服务端的资源。呃,去实验较好。嗯。这样写。
05:02
七。啊,其视线较好。呃,需要维护一个强链接。需要维回啥链接这个这个。这样说吧。是一个,呃,发布。订阅模型。啊,需要维护一个强连接。呃。而常连接的维护是。需要是吧。资源。对吧。你得带连接占用带宽对吧,占用我们的,呃,这个这个呃内存啊,占用我们的这个处理器,因为他要维护他,他得有心跳。对不对,所以他会占用我们的资源,会有相应的成本。所以对这种铺。
06:05
模型啊,Push模型,它适合于哪种场景。该。模型呃,适合于,呃就是。实质性。要求。较高。啊。适合于。场景。哪哪哪个哪个场景啊,给大家说啊。适合什么什么场景。第一,适应要求较高。那其他的你占不占资源无所谓。是吧,第二。那第二就是这个。
07:04
数量。多CLA就是你客户端的数量不多,因为大家想一想啊,就我刚才画这个这服务端,如果客户端啊,大家想想我这客户端啊,非常多啊,非常非常多,那大家想想这每一个客户端和它之间都有一个长链接。这常连接的维护都需要占用资源,所以会给我们服务端增加很大的压力。占用各种是吧,内存啊CPU,然后呢,还得你维护的,它的这个心跳啊,是不是所以是什么啊,客户端的数量不多。啊,然后呢。啊,数据。变化呃,Server server端server数据变化呃。呃,叫频繁。较频繁。
08:01
你你变化比较频繁,所以你这样的那个长链接就比较直,他一直在用啊。是吧,就要频繁,哎,这两种场景,当然你要说我事先要求很高,我就不管占不占那么多资源的问题了,不差钱。是吧,我就要快。对不对,就是铺模型,呃,Push模型和铺模型,呃,其实说到这以后啊,还有一个很重要的模型。第三个啊,这是大家需要掌握的。加什么?Long模型,什么模型叫长轮循?我清楚。长轮许模型,你像我们的na啊,就是这个这个里边它那个配置中心。他用的就是这种模型。因为你得监控啊,我客户端我得看着这个,你服务端看着你服务端那个配置信息发生变更了没有,如果发生变更,我客户端马上进行变更,他用的就是枪轮。
09:04
模型长轮形模型是什么呢?给大家简单说说啊啊呃,是这样,这是我们的终端。是吧,我现在要看这个数据变化不变化是吧,这是我的客户端是吧,也是一样,你的数据变化了,我就要更新到我这儿,我怎么做呢。我是定时也是定时,哎,我去看看你这个数变了没有。哎,如果一发发现没有变怎么办?按理说没有变就结束了。然后直接给他一个响应啊,没有变化,然后就他们之间就连接,连接就断了,但是呢,我现在这个服务端。我给你怎么hold住,我给你hold住这个连接,要保持住这个连接一段时间。我不把这个链接给你放掉。我保持住一段时间,比如说我保持30秒,哎,在这30秒里边,如果发现啊,有有这个变化,它这个连接还存在呀,所以直接把这个变更就更新过来了。
10:11
30秒以后发现这个连接,这这个配置变了没有没有。或者说你变了,直接已经更新过了,然后时间到了,然后这个链接吗。联系就没了,这联系就没了,哎,比如说再过比如一分钟,我这这这是个定时任务啊,我在。再来看一下啊,你变了没有?变了啊,变了更新过去。没变,没变,我仍然保持住这个链接一段时间。这是什么?实际上这种模型是。啊,是这个这个。呃。其实对。Push。
11:01
模型是什么这个啊。整合是吧,呃,这个。利用了吧,充分。利用了这两种。模型的啊。优势。是吧,成功的避开了他们的劣势。对不对。哎,就是。屏蔽了吧啊。屏蔽了他们的,呃。Lesh。你看就是你站这个长链接,我也不是一直站着。我就这比如说30秒,然后就给你断掉了。呃,实性不好吧,哎,我我去允许你这段我保持这30秒时间,实际上你如果你变了,我马上就能感受到。Three。他是个把他们的利和弊都啊进行了一个综合啊,实际上是什么,仍然是中庸啊,实际上是中庸之道是吧,把这两个啊,我各取啊有利的一面,所以像这个啊,我觉得咱们大家应该去掌握啊,应该去掌握了,如果这些你不是很清楚,网上再查一些资料。
12:21
那么我们大家需要知道什么?我们知Q是吧?它里边采用的什么是铺模型?铺模型啊,OK。
我来说两句