粉丝3.9万获赞28.5万

什么是 nocos? 相信很多人都没用过,我来谈谈我的理解,您帮忙指导一下。 nocos 是一个注册中心,相比于 uric 功能更加丰富。首先下载一个 noco 的安装包,接着将其解压到本地, 然后打开 application 修改端口号,端口号为八八四八钛合金,进入到边目录,输入命令即可启动。输入本地 nocos 地址、账号、密码都是默认的,这个界面就是 nocos 注册中心了。然后我们打开 id 配置, nocos 依赖 配置相关属性重新启动微服务,我们可以看到微服务已经注册到 noco 上,我们还可以给服务配置汲取,以防服务突然崩掉,只需要在配置上添加一些属性即可。人, 然后我们再复制一个 user service 服务,将所有服务都启动,我们到控制台可以看到有南京集群,也有广东集群,您觉得我说的对吗?

yurika, jk、 nicos, 他们之间有什么区别?其实之前就已经提到了,对吧? yurika, 首先呢,它是 netflix 这一套的。然后呢, jk, 它是阿帕奇基金会的, nicos 它是阿里巴巴的, 所以你在选技术选型的时候,你看,如果你是阿里系的话,肯定无脑选择耐克斯,对吧?如果你是 netflix 这一系的话,肯定无脑选择伊瑞卡,但是伊瑞卡他现在闭园了,所以啊,基本上也不太去选他了, 所以说如果不选它的话,我们剩下就是 j k 和 nicos 去做更多的比较了。然后呢,是 c a p, c a p 的话, j k 呢,它是强一致性的,更追求数据的强一致。那 nicos 呢,它既支持 a p, 也支持 cp, 那默认呢是 ap 好吧。然后呢,功能以瑞卡,他是服务注册与发现,专门就是做这个事情的。 那 jk, 他除了做注册中心以外,他还可以做一些分布式的协调,比如说典型的有分布式锁的实现好吧,还包括啊,可以也可以作为这个配置中心去使用, 那耐扣子呢?他同样的,除了作为注册中心以外,他也可以作为配置中心去使用。他还可以去做服务的一些啊管理,比如说啊,本地的负载追腾啊。好吧。 然后呢,他们的定位是 eurek, 它更适用于构建 http 的微服务架构。 那么 j k 呢,它是一个通用的分布式协调服务框架,也就是你除了用注册中心以外,你还可以用更多的,比如说分布式锁。那 neck 呢,更适用于微服务和云原声音的一个应用场景, 他们的访问协议呢,是 eureka htp, ck 是 tcp, nexus 是 htp 或者 ds。 然后呢,他们的自我保护由 eureka 和 nexus 实现了这个自我保护。 还有呢,数据存储 erika, 它是内嵌数据库,多个实力呢,呃,形成一个鸡群。那 jk 呢?它是 a, c, i d 特性呢?分布是文件系统, c, i p 协议,哎, c, i d 知道吧?就是我们的这个事物的四大特性,对吧?然后呢, 呃, netcos, 它的选择就比较多了啊,它同样的内嵌数据库,它还提供了很多,比如说买 circle 啊, es 啊等等,都可以作为数据去存储。然后呢,健康检查他们都提供,好吧,然后他们的最后的特点就是 eureka 简单易用, jk 高性能,高性能,强一只。然后呢,是 nexus, 它提供的功能呢,比较全一点,动态配置管理,流量管理,辉度发布等等, 他还提供了比如说一些啊,权限啊,好吧,那可以看到 瑞卡和 c k 最大的区别就是一个支持 ap, 尤瑞卡他只支持 ap 啊,然后呢,一个支持 cp, 那耐克斯呢,他既支持 ap 也支持 cp, 我们通常啊对比啊,就是更多的是对比这个 cap, 所以大家记住这一块。 然后是他们的这个访问协议以及呢他们的特点,好吧,记住这几点。

now cost 和 you recall 的区别?相同点都支持服务的注册和服务的拉取,都支持心跳方式的服务监测。不同点 now cost 有临时实力和非临时实力。 you recall 没有临时实力概念。 临时实力是支持心跳监测的,非临时实力是 now course 主动监测临时实力超过三十秒没有心跳会从服务删除, 非临时实例不会删除。 now accoss 不单支持服务的拉取,还支持服务的主动推送。 eric 则不支持服务的主动推送。

纽约卡跟拉克斯有什么区别?那个纽约卡主要就是服务提供和服务注册,然后 nicos 是他不仅有服务,包括和注册,他还有服务的那个类类配置中心,他有配置中心的功能,他可以实实现那个动态的去刷新配置,嗯,然后他还可以做限流的钱,那扣子怎么做限流? 我记得是好像他是有一个有一个木,我就当时用用的时候就是有木木,他可以就是就主动去配置那个线。哎,我我再问一下,就是你觉得你觉得为什么我们要用 spr, 用框架,你觉得他有什么好处? 嗯, spr, 嗯,他的最大的一个好处就是能那个提供那个病的管理,他能有那个 aop 与那个 ioc, 嗯,服务的那个代理和服务的管理,那个病病的管理,嗯,这样能带来什么好处呢?然后就是这个 ioc 的话,最他会涉及到两个名词,就是一个那个 依赖注入和控制反转,这样这个控制反转就是将这个需要哪些对象呢?是交于由死不认同管理。这样的就是呃,不需要产生应变吗?就是到时候直接由他去管理我们需要注入哪些对象,然后这个依赖注入,就是一个依赖到老的一个视线吗?就是因为他帮我们 去判断了,呃,需要注册哪些对象,去币里面注注册哪些,嗯,然后这个时候这个注册这个过程就是叫做一个依赖逐入,嗯。

uv 卡跟 nike 是都有用,你觉得作为服务中心来说, nikes 和 uv 卡他们有什么区别?你说一下这两个组件你的一个选择,以及说你对他们两个能够理解。一个系统刚起步的时候如果非要做的话,我感觉其实选 uv 卡是很好的,因为因为卡上手太简单了,而且它是一个配置中心的完整的时间 相当于我很容易,我看到一些他的原版就很清楚,他做的就只有做了配置中心该做的事,注册服务下降,然后通过心跳去检测,然后这中间通过一些可能定时任务,我还有那个三级饭桶就做了这么点优化。其实他整个更像是一个配置中心。 我项目刚起步的时候我就是要快速发展,那我肯定就选择能快速让我搭建起服务的那种东西,所以选择一个月开始就好了。但是你在使用过程中你就会发现一个月开始他几乎就会体现出他的步骤,就相当于我感觉就跟卡菲格跟拉布洛一样,他没有提供一个友好的界面,让我们来去做 完成对对这个服务的操作,如果他有这种情况的话,我感觉他就很完美了。嗯,拉扣子就是在我们使用过程中他更方便一些。嗯嗯,后续别的因为我就只是会用,我没有了解他们,看啊,拉扣子的原版啊,所以我就可能说不上来。

那么同学们,我们已经把部分配置放到了我们的奈克斯服务器上,下边呢,我们的唯一服务就要想办法得到这些配置了吧,那怎么样去得到呢?我们先来看一下在没有奈克斯时,服务如何获取配置的。那么他的流程大概是这样子的, 第一步,项目启动,启动了以后会去读取本地配置软件,读取完本地配置软件会去创建 surme 容器,而后呢就会去加载各种各样的病了 好,当然了,后续我就没有去画了啊,我们主要是关心配置这一块,那么同学们在这里呢,读取的是本地的啊,不是 k, 是哪一模配置文件。 但现在我们却多了一个东西,就是 nicos 中的配准件,将来我们的项目会干什么呢?他会把 nicos 中的 配置与本地配置做一个合并,而后再去完成后续的容器创建并的创建的动作。所以同学们,我们的这个 nax 读取是不是要加入到这个流程当中?那么呢,我们就会变成这样一个步骤了,同学们注意看, 先项目启动以后,先去读取奈克斯中配置文件,而后呢再来读取本地文件,两者合并穿完成后续动作就行了。 这个时候呢,流程听起来好像很简单对不对?但是你注意一件事啊,因为在我们读取奈克斯配置文件的时候,我需要知道一些信息,第一,去哪读取? 第二,读取谁?所以呢,这个地方啊,我们在读取尿不湿配置文件的时候,我得最起码我得知道奈何地址吧,但是现在奈何地址在哪呢?是不是 在阿布莱 k 式年夜文件当中,那我们既然要在这个地方都已经完成了奈克斯的读取,是不是要提前知道奈斯地址? 所以呢,在项目启动之后,不要着急去干别的事,先得得到奈何地址。 但问题来了,你那个地址原来放在那,这不行,所以那个地址是不是要提前知道啊?那怎么办呢?有什么东西是比啊,不是给点业务还要提前呢? 有,叫什么呢?我们是不是你提供了一个叫 bots 抓捕点夜猫的文件,这个文件他的优先级会比阿布雷 k 省点夜猫的优先级要高很多, 所以呢,这样一来,相关启动以后,他会优先读取 bossgrapdam。 那我们只要把耐克的地址呀,这个文件的相关信息啊都配进来,那么 他是不是就可以完成 nicos 配置的读取了,而后再跟本地结合,是不是完成后续动作啊?好,这就是我们接下来要做的一个动作了。同学们注意了,与 nicos 地址和配置文件有关的所有信息都应该放到 bost f 点腋毛当中。 行了,不废话,同学们,我们一起来看一下步骤吧。第一步,引入 nicos 的客户端管理依赖,也就是配置管理依赖啊,叫 nicoscon feig, 咱们以前引的是 nicosds grrydsgrry, 就是发现服务注册发现这里 ctrl fread 就是配置管理啊, 好,引入了依赖呢。第二步,我们就需要去新建 bostwaptame boostaptameamam 呢,是叫做引导文件,他的优先级比 我们的黑色眉毛要高,而这个文件里要配什么呢?他要配的包括下面一些信息啊,大家看服务名称 profrie, 也就是环境和后缀名, flx, 天审。同学们,这三个东西啊,服务名称, 开发环境加后缀明,三者结合是什么?是不是我们刚刚在浏览器控制台配的 服务的雷塔 id 啊,我们去看一眼,我们打开浏览器,看到没有服务名称,环境和后缀,所以我们再回到 ppt 刚才的这三个配置的目的,是不是知道是哪个文件啊? 那这个东西呢? logo 的八幺四八是 nx 地址。那好,那我已经知道了要去哪读配置了,又知道了 读取的配置叫什么名字,那这事是不是可以搞了?哎,没问题吧,所以下边呢,我们就不废话,按照这个去整一下来,我们找到 id, 找到遗物字三维四的泡沫文件, 然后在这呢去添加纳克斯的配置管理依赖吧,来吧,他这个名字啊,跟上面人很像,可以看到上边这个叫 suprenkex 卡瑞,而我们这个叫纳克斯。什么呀,看,这个没错啊,就是他。 好,那么大家第一次的话是没有提示的啊,那么你们怎么办呢?可以把我这个扣过去啊,从笔上扣就行了, 好引入依赖了。第二步,我们刚才看过了,是要干什么?同学们,哎,没错啊,是要在瑞萨的目录下新建一个都 抓不点也没文件吧?对啊, boss 转不点也没文件。当然这个地方可以随便起名字叫 ym, ym 都行走, 我们说后这名是可以 ym 或 y a m 二,但是文件名一定是 boss rap 这个名字,大家看是不是带个语音,这是特殊的文件啊,在这里面要配哪几个东西呢?要配这么几个东西,第一,服务的名称,这个将来会决定我们的数据,对他 id 啊,我们叫 u z。 第二呢是 profrie 环境啊,第三呢是这个耐克斯,耐克斯地址, oppo pos 的八八四八。第四呢是我们的,这个什么东西同学们不记得了,是 我们的后缀名啊,三要素啊,服务名,环境后缀名吗?后缀名叫 yaml 吧。 哎,文件后缀名啊,同学们记住啊,服务名称,他,环境,还有这个后名,他们三个决定了我们的,怼他一滴 好,那么这个呢,是服务地址到这配完了,别着急啊,布雷克系列阴谋当中啊,还有一些跟他重复的配置吧,比方说服务名称干掉,拿个地址干掉,这里的集训配置,我提前已经注视掉了啊,好,那么现在呢,我们就可以干什么了, 来句完成配置的拉曲了吧。但是同学们怎么证明我们真的拉到配置了?那要想证明我们真的从拉克斯里获取到配置了, 只有一个办法,那就是想办法去读取到这个配置,那我们的配置文件我们看下,浏览器 叫约瑟维斯第一位,然后呢,他的内容是 party, 对的方骂他假设说我在项目当中来读这个配置,读到了是不是证明就拉序到了好不?废话,我们来整一下, 打开定,我们来写一个代码啊。我们知道要想读取一个配置,是不是可以利用歪六注解,在歪六注解中通过多了幅大括号加这个名字来去读取配置。 大家有印象吧,这里有个 prvdes 俊,叫 detiful mat 吧,就叫这个名字吧,来去加载啊,如果这个能加载成功,我们就证明了什么?同学们, 证明了我确实拿到配置了吧,哎,下边呢,我们来写个 ctrl gat 买品路径名叫 no, 就是当前的意思,返回一个自助串就叫 no 时间,然后呢,我会得到一个当前时间,我通过一个 logodit tom 的一个工具类啊, 获取一个当前时间叫 no, 然后对他做一个格式化 fmart, 格式化的时候,他这里需要一个 dotm f mat, dot to mat, 我们拿到这个类啊,然后第二种,它里边的一个功能啊,叫做奥排程,他可以利用这个排程的实线格式化,那我们就可以把这边这个的 fmat 是不是扔进去了, 这样呢,他就会按照我们规定的格式完成日期格式化,并且返回了啊,好,下边不废话,重启我们的服务。第一个, 第二个, 好,重启完成,这个时候呢,我们去点击八零八幺, 然后呢,我们在这里去输入一个叫 u 字杠 no 回车,哎,等一下走,可以看到这里是不是有一个日期啊?二零二一零四幺二,说明格式化是不是成功了,我们再来看一下八零八二 是不是同样实现了这个功能,这说明什么?这说明八零八幺和八零八二这俩为一服务,都已经成功的从 nicos 控制台里得到了这段配置了吧。没错啊,同学们,到这呢,我们就实现了配置 管理的第二步了,干什么呀?微服务获取奈克斯中的配置信息了,我们一起回到 ppt 来看一下啊。第一步,引依赖,第二步,是不是配置这个信息啊?服务名称,环境地址和后绿名, 然后呢完成这个服务的一个读取,属性读取啊,通过这个歪读注解来读取就实现了。最后呢,我们来总结一下我们刚刚做的这些事情啊, 将配置交给奈克斯管理,第一步呢是把配置放到奈克斯中去添加,这个动作呢是在控制台里点加号填写表单就行了。 第二步呢是在唯一服务中引入奈克斯的依赖,注意引的是扛费的依赖。第三步呢是佩布斯 rap, 这里面主要是告诉我们的应用应该去哪作陪人拉去耐克地址,还有拉去 去谁拉起谁呢,就是服务名称,环境和后队名。好,那么到这呢,整个配置管理的动作就完成了,那么这节课呢,就到这里,下节课我们会带大家了解一下怎么样实现配置的热更新。

零基础学 it, 月薪过万就来黑马程序员!黑马程序员成就 it 黑马 好!同学们,经过一天的学习啊,我们已经基本上掌握了有瑞卡注册中心和奈克斯注册中心的基本使用啊。 所以在本节课的最后,我们会带大家分析一下两者的区别和联系啊,对比一下,我们来先看一下这幅图,这幅图大家应该比较熟练了吧,我们之前在学习有瑞卡的时候也见过他,只不过当时的注册中心还是有瑞卡,现在呢,是 nice。 那不管是什么样的注册中心啊,我们服务提供者在启动时,都会把自己的信息提交给注册中心,而注册中心呢,就会把这些信息保留下来,那么当我们的消费者需要去消费时,他就 可以找注册中心去要这个服务信息了。那么这个称为服务的拉去啊,或者叫服务发现。 不过呀,当时我们没讲的一点是,这个拉曲的动作呀,他不是每一次都要做的,那你想啊,如果我每次发请求时都去做一次拉曲,那么这样一来,对于有瑞凯来讲,压力是不是有点太大了? 所以作为消费者呀,他在做服务拉取时,他会将拉取到的服务信息缓存到一个列表当中, 那么这样一来啊,我拉取完一次,那么接下来一段时间我就可以不用去拉去了,而是直接使用列表中的这个缓存里边的这个列表。你看,我们之前在看瑞奔原码的时候,我们是不是见到过有一个对象啊啊? banamaik sorry sorry sorry sorry, 他里边就是专门来缓存这个数据信息的服务列表信息的,所以呢,这里我们会有这样一个服务的一个拉取啊, 定时拉去的动作,那么当然了,如果我这个缓存一直不更新也不行,万一人家服务信息提供着变化了怎么办呢?所以呢,这个列表呢,会每隔三十秒重新去拉去一次,进行一个更新啊,这是我们在尤瑞卡里面就有的这个东西啊,那么 消费者拿到服务列表了以后啊,再去负载均衡挑选一个发起原声调用就可以了。 但是在 nike 里边啊,他与与瑞卡还会有一些差别,截止目前为止,两者是不是一样的?那差别在哪呢?差别在于服务提供者这个健康检测。 那么我们的 nicos 呀,会把服务的提供者划分成 临时实力和非临时实力。我们来看一下耐克式控制台,我们打开浏览器, 这是我们之前的 office, 我们点进去往下翻,可以看到这个实力的 ip 端口等信息,你会发现这里有一个标记叫临时实力,他是处或者放肆,那现在默认值就是处,因为我们从来没配过吗? 那也就是说默认情况下,所有的实力都是临时实力。那么临时实力和非临时实力啊,在 nico 室里去做健康检测是不一样的。来,我们回到 bbd, 作为一个临时实力来讲,也就是说他是 临时的,因此将来我们可以人为的把服务停掉或者怎么样,对吧?所以呢,他在耐克斯做检查时采用的是心跳检测, 这一点跟有瑞卡的心跳检测是完全一致,也就是说提供着每隔一段时间发一个请求到耐克斯里,当然这个频率不一样啊,耐克斯的频率会快一些,有瑞卡里面会慢一点。 好,那么这样一种方式检测,当你有一天心跳不跳了,奈克斯就会把他从服务列表中直接剔除,因为你挂了吗,我就给你剃掉,或者你,你当机了,我就剃掉。 但是呢,我们的菲林氏实力就不一样了,菲林氏实力呢?我们的奈克斯呀,不会去做心跳啊,不会要求你去做心跳,而且这个菲林实力也不会去做心跳,那么这个时候健康检测怎么检测的呢?是由奈克斯 主动去发请求询问,哎,你还活着吗?你看是不是感觉像亲生儿子和非亲生儿子 啊,和捡的儿子,对吧?那这个临非临时实力也就永久实力就像亲儿子一样,对吧?我,我主动去关怀一下,哎,你还活着吗? 是吧?这个,呃,非礼,这个临时实力就不一样了啊,我就不管你,你,你心跳了你就来,你不来我就给你干掉,是吧?那么作为这个非临时实力来讲,如果呀,我,我会去检测不断问你吗?如果哪天你挂了啊,我不会说把他从列表中剔除,注意,听了, nx 不会把菲林实力从列表中剔除,而仅仅是标记说他不健康了,然后他会等着什么?等着这个服务恢复健康,你看看,这差别还是很大的 吧。啊,这是一个差别啊,那么还有一个差别在于消费者,我们的有瑞卡采用的是定时拉取,每隔三十秒拉取一次。那你思考一下啊,如果在三十秒内有服务提供者挂了,那消费者知道吗? 不知道吧,那如果他不知道,现在他直接去消费,那是不是就出问题了?所以呢,我们的优瑞卡座服务拉取的这个定时拉取啊,他服务列表更新的这个效率啊,比较差,就是说更新的不够及时, 而我们的有瑞卡啊,我们的 nico 是做了一件什么事呢?他做了一个叫推送消息推送, 也就是与瑞卡采用的是铺,而我们的奶口色呢,采用的是铺加铺式,两者结合,每隔一段时间去更新,每隔一段时间更新。但是 假设说我们的 max 发现有服务挂了,他会立即发一条消息推送给我们的消费者, 然后告诉你说服务变更了,那么接下来你赶紧更新,是不是更新的效率会更高啊?及时更及时一点对不对?时效性更好。 这就是啊,有一卡和奈克斯的一些差别了。那下边啊,我们来通过代码检查呃,去测试一下临时实力和非临时实力他们之间的一个差别啊。那怎么去设置临时和非临时实力呢?我们来看一下 ppt 在这里啊,耐克斯注册时可以选择临时实力和非定时实力,配置的方式呢,就是 supreme, clotexds, 卡瑞,这个什么什么等于放肆就行了。那我们回答 id, 找到奥德斯尔维斯,奥特斯维斯的 联盟文件,找到 surpran cluststrry, 然后找这个 eph, 这个啊,把他你看默认这是什么? 是不处啊?是不是临时实力默认指示处啊,我们把它改成放肆。好,这样呢,我就变成了一个什么,这是否是临时实力啊? 那我现在改成 boss 了。那么这个时候我先把凹的服务停掉,我们去观察一下,我们回到控制台啊,回到这个耐克式控制台,打开浏览器,我们观察这个服的状态啊,现在还没检查到,因为他心跳需要一定的时间吗?他是周期性的 啊,还没检查出来吗? 这个这个这个这个这个这个,活这么久吧,哎,看看看是不是变 红了,同学们有没有,是不是健康状态不行了,哎,他是有一个周期的啊,所以这个时候呢?他,哎,你再看没了,都直接干掉了,你看到没有 就说你不健康了,我立马给你干掉,这就是什么?这就是他现在还是一个临时的实力。好,同学们,我们把我们回答 id 二啊,我们把这个奥德啊不对,开始再次启动,这次就不一样,这次我是不是非临时的了,好,我们启动。 好,启动以后,同学们,我们回到浏览器, 我们刷新来了,我们点进去看状态是什么实力,菲林是实力了吧,这放肆了吧 吧,哎,那么这这个时候我们再来测一下,测什么了?测,我把它停掉啊,来,我们回到这个 id, 然后我们把它停掉,注意了啊,停掉走,停掉了以后呢?我们再回去看一眼,就是刷新。 哎,你看这个发现的速度是不是特别快啊,一瞬间就发现红了,就是我们这个主动询问的,他这个速度会比较快一点,比较敏感,瞬间就发现了服务问题了。啊,那这个时候呢,我们等一等啊,等等,看他会不会被剔除,多等一会, 你看我们,我们是不是等了很久了,对吧?这个服务根本就不会被剔除啊,根本就不会剔除,他会一直在这里啊,等着你给他 重启起来,除非,除非你手动的把它删除了,你不想要了,你说这哥们再也启动不了了,我不要了对吧,否则他永远都在。好,那下边呢,我们可以把他再恢复一下啊,我们回答 id 把他再启动起来。 那么当你在重启了以后,我们的 nx 啊,就会监测到说他有这哥们又活过来了,就就把它标记成这个健康了啊,好,我们回到控制台来刷新啊,稍等片刻,他就能够检查到这个健康状态了, 好吧,哎,是不是健康了没问题了啊。好,那么这里我们就讲完了这个临时和非临时的这个实力的一个差别了啊, 那至于这个心跳这块的话,需要看原码才能看到啊,这里我们暂时就不带大家去看原码了,来,我们回到 ppt 做一个总结。 那这些课里我们主要学习了 nicos 和与瑞卡的一些差别啊,和联系,他们的联系就是共同点就是都支持服务注册和拿取,并且呢,都支持心跳模式做健康检测 啊。那么注册和拉取这个拉取,周期性拉取啊啊,这些都是支持的,但区别在于啊, nicos 呢,支持服务端主动检测, 那么不是被动心跳了。那什么样是主动检测呢?就是临时实力才有心跳,而非临时的才用主动检测。不过啊,呃,主动检测呢,对于服务器压力会比较大,所以我们更推荐大家使用的是临时实力啊,临时实力啊,那么, 呃,如果你真的挂了,被剔除了,也算你活该对不对啊,你不要给服务器造成太大压力啊,我一直去询问啊,这不好啊,这是来口市里边这个检测,健康检测的一个状态。 那临时实力还有一个特点就是心跳不正常会被剔除,而非临时的却不会被剔除啊,等待你恢复。 第三个是耐克斯呢,支持服务列表变更的消息推送模式,而服务服务列表更新的更及时,而我们的有瑞卡只支持这种拉曲,定时拉曲,那么定式拉曲呢,他的更新时效性会比较差,比如说你三十秒拉曲一次,他很可能三十秒内呢,你变化了他就不知道,对吧? 而奈克斯是主动推送啊,铺式这种方式啊,那,那他是铺式和铺有两种模式结合啊,都有。呃,最后第四点呢 话呢,大家可能会不太理解,因为我们现在还没学习集群啊,奈克斯集群和尤瑞卡集群。那么集群呢,这块大家就先记住这么个概念就行了,我们集群里边 cep 的原则, 那么 nicos 呢?集群默认采用的是 ap 原则, ap 模式也就是会强调数据的这种呃,可用性,整个服务的可用性。而当集群中存在非临时实力时,他会切换到 cp 模式, 因为有非临时的,那么数据可靠性就会很重要,所以啊,他会把它切换到这种 cpcp, 强调的是数据的可靠性和一致性啊。 那么有瑞卡默认采用的是 ap, 这点与奈克斯默认都是一样的,但有瑞卡不支持切换啊,好,这是嗯,他们的一些差别。那么到这呢,有瑞卡啊,我们这一节的内容就 讲完了,奈克斯的由瑞坎奈克斯的区别讲完了,好,同学们,欢乐的时光啊,总是短暂的, 那我们 surpro 的第一天的知识到这就结束了,今天呢我们主要是带大家了解了一下微服务架构他的演变过程,我们如何从一个单体的架构演变到了一个微服务的一个架构。 而后呢,我们还带着大家呀给予一个简单的服务拆分案例,了解了一下服务之间远程调用他的一个基本方式和存在的这种问题啊。 那接着呢,我们就基于有瑞卡注册中心啊,去解决了这个远程调用存在的这些问题。当然我们还了解了这种远程调用过程中啊,他这种负载均衡的原理啊,也就是瑞文的组建。最后我们还学习了 siri 卡路达阿里巴巴当中啊提供的一种全新的注册中心,那可是那这种注册中心他相比有瑞卡来讲啊,有更加强大的一些功能啊。 以上呢就是我们今天的内容了,大家如果在学习的过程中啊有任何的问题啊,或者疑问,或者呢对我们课程啊有任何的建议, 希望学到的一些其他的知识点啊,也都可以在我们的评论区里给我们留言,我们看到以后啊后期也可以对我们的视频做修复,或者是添加大家感兴趣的一些知识,或者呢也会给大家去解答你们所碰到的一些疑问啊。 好,欢迎大家在评论区里留言,那我们今天内容啊就到这里。

哈喽,大家好,我是那嘟嘟周瑜。那今天有位同学啊,他遇到了一道这样子的面试题,就是 naphors 中间的保护预值的作用到底是什么 啊?那么这是拉火石中间的一个功能啊,实际上是场景是这样子的,就假设我们现在有这么一个服务,他本来呢,有十个实力,但是现在啊,挂掉了八个,还剩下两个正常的实力, 那么,呃,我本来是十个实力,那么应该就会由这十个实力来处理我们的流量,对不对?那军少,如果说,呃,挂掉了八个之后,那说白了就只剩下两个正常的实力要来处理这所有的流量了, 所以这很有可能就会导致这两个实力他也处理不过来,那么最终可能这两个实力就被这些流量给压垮了,所以最终可 可能就导致这十个实力啊,都用不了了,对不对?所以说,呃,为了应对这种情况,拉货时呢,他就提供了这么一个叫做保护预值的功能,那么我们可以给某一个服务啊,去设置这么一个预值啊,数字啊,就是零到一啊,这么一个数字啊,比如说零点五, 那么啊零点五表什么意思呢?他就表示,如果说这个福利啊,呃服务你所有的实力啊,中间啊,如果说只剩下了一半的健康实力了,比如说十个实力,那么你只剩下了五个健康的实力, 那么,呃,消费者,他在进行服务发现的时候啊,那么就会把该服务所有的实力,也包括不健康的实力全部拉取到本地,所以,呃,正常来说,对不对啊?作为消费者,他肯定只会拉取呃健康的实力,对,但是如果说你 达到你这个预值,那么就会把所有的实力全部都拉取下来,那么我们自然就能够想到,如果说他把全部的实力都拉下来了,那么也就说,呃,消费者他在调用的时候,哎,他就会从这所有的实力中间去进行负载均衡,选出其中一个实力,那么这样子他就有可能会选出来一个不健康的, 那么可能这个请求啊,本次啊,这个请求他可能也就调用不成功,但是呢,他也有可能选出来一个健康的,那么这个请求他就能够 调用成功,对不对?所以啊,就通过这种方式就可以很好的保护剩下的健康实力,因为,呃,我至少说我保护了一部分的请求能够正常的访问, 而不至于说所有的请求都交给了呃都访问的那些健康的实力,最终把那个实力给压垮啊。但是我通过刚才说的这种方式,消费者把所有的实力 拉取下来,哎,这样子,至少,哎他还是平摊的所有的请求,只不过有请求会失败,有请求他还是能够正常成功的,哎,但是这样子呢,呃,比起我们直接去访问那两个健康的实力其实是要更好一点的,因为他至少有一部分的请求是在健康的执行的,正常的执行的。 就说这就是 nathose 专业的保护预值这个功能,那同时在 spring cloud, 腾讯里面也有类似的功能,它的功能叫做全死全活啊。

nacos 呢,作为阿里的开元中间键啊,在加入 sprincos 的生态以后,不管是作为配中心还是作为注册中心,他的简单易用的特性被广泛的运用在各个互联网公司里面。然后啊,大家会发现 nacos 相关的面试题也越来越多了。哈喽,大家好,我是麦克,一个没有才华只能靠颜值混饭吃的家务程序员。 昨天,一个工作了八年的粉丝啊,被面试官问到这样一个问题,他说,请你详细说一下拉裤子客户端是如何去实践配置的动态更新的。这个问题的高手部分的回答呢,我整理到了一个十万字的面试文档里面,大家可以在我的主页去加微领取。下面我们来看看普通人和高手的回答。 普通人的回答,呃, nikes 的配置的更新流程,我记得他应该是,他应该是定时去轮巡的,比如说我每隔一段时间会发起一次请求 到那个服务端,然后去比较一下配置吧,然后拉取一下最新配置更新到本地。啊,应该是这样,嗯, 高手的回答,好的,面试官,这个问题我需要从几个方面来回答。首先, nikes 采用的是一个长轮讯的方式,向 nikesso 端去发起配置更新查询的占用功能。 所谓长轮巡呢,就是说客户端发起一次轮巡请求到服务器端,当服务器端的配置没有任何变更的时候,这个连接会一直打开,直到服务端有配置变更或者连接超时之后返回 nikes clan 端呢?需要去获取服务端变革的一个配置,前提是需要一个比较,比如说拿客户端本地的配置信息和服务器的配置进行进行一个比较,一旦发现和服务端的配置有差异,那么就表示服务系统配置有更新,于是需要把更新的配置拉到本地。 在这个过程呢,有可能因为客户端的配置比较多,导致比较的时间比较长,使得配置的同步效率非常低。于是呢拉裤子真的这个场景啊,做了两个方面的一个优化,第一个减少网络通信的数据量, 客户段把需要去进行比较的配置啊进行分片,每一个分片大小是三千,也就是说每一次最多拿三千个配置去拉扣十五端去进行比较。第二个分阶段进行比较和更新。第一个阶段,客户端把这三千个配置的 k 以及对应的 w 的一个 md 五的值 拼接成一个支付钻,然后发送到 nikes o 端去进行比较,服务端会去逐个比较这些配置里面的 md 五的一个值,把存在更新的 k 返回给客户端。第二个阶段,客户端拿到这个变更的 k 以后,循环去逐个调用服务端去获取这个 k 的弯流值。那么这两个优化的核心目的是去减少网络通信的数 包的一个大小,把一次大的数据包的一个通信拆分成了多个小的数据包的一个通信,虽然会增加网络通信的一个次数,但是对于整个性能的提升是非常大的。最后再加上采用长轮讯的方式,既减少了普洱的轮巡次数,又利用了长轮讯的优势,很好的去实现了配置的动态更新了一个同步的功能。 以上就是我对这个问题的理解,拉克斯里面有很多好的设计理念可以值得我们去学习和研究,我们虽然未来不一定会去做远马级别的开发,但是一定会参与到价格方面的设计,所以呢,还是建议大家去花一些时间去下沉到技术底层,从而去提升自己的核心竞争力。 好的,本期的普通人 vs 高手的面试系列的视频就要到结束了,大家记得点赞收藏加关注,我是麦克,我们下期再见。

好,我们来看一下来自拼多多的一个面试题,从优瑞卡迁移到 nicos 的一个解决方案,他薪资呢三十到三十五 k, 岗位呢,是高级开发工程师。 从这里我们可以看到原来呢,以前呢,我们都是用的是奈菲那一套对吧,注册中心都是用 reura 卡,现在呢,大多数都在用 smoker 的阿拉巴巴,也就是 nicos 作为注册中心。所以说呢,从 uri 卡迁移到 nicos 呢,也需要就是我们能提供一个方案, 也是比较常见的一个问题啊,原来的老项目进行迁移到新项目上去。好,来我们看一下他的问题。 在这呢前移方案的时候呢,第一个我们应该确定它的版本就是我们从原来 ur 卡就是 smart 南非那一套,然后 迁移的 nico 四中,我们应该确定哪些版本?首先呢,在这里呢,这是 supercolor 阿里巴巴他提供的一个他的一个地址里面提供的一个版本对照 我们可以可以在这里可以看到我们 spring cloud 阿里巴巴的版本, spring cloud 版本, spring boot 的版本。它对应的什么版本啊?我们一定按照他推荐的版本来去使用。 这样呢就是相对来说不会出现这样那样的问题。选版本兼容好。首先呢,我们第一个确定版本,确定版本了以后呢,我们就可以按码副工程,我们只需要把副工程修改一下版本就行了 对吧?此工程呢,我们引入对应的相应的啊内口词的版本。然后呢,修改一下原原来把原来的那叫 urk 的配置改成了我们的 nicos 配置。配置完毕了以后呢,最重要的是这一点啊,这一点 我们使用 at enable discovered client, 在我们使用那叫 urica 的时候,它可以用两种方式进行启动。第一个呢是 enable discovered client, 一个是呢 in enable urica client 是吧?这两种方式呢,第一种方式呢,我们在这写了,他是官方提供的,就是我们官方提供的呢,他以后呢切就是 summer cloud, 阿里巴巴 summer cloud 提供的。 summer cloud 他提供呢,以后呢,我们可以 切换到其他注册中心,比如 nicos, 我们这呢就可以不管它它你用 nicos 啊,它就是你把配置和依赖引进去 就可以了。像你内蒙 urika 课栏杆呢,是 netflix, 它提供的啊,专注于用 urika 的, 所以说呢,它只服务于优质卡。这样呢,呃,我们其实呢在使用优质卡的时候,最好直接就用它就行了。当然我们会全民搜索,把这个都去掉它。好。最后呢,更改完毕了以后呢,这些哎,我们 更改完毕了,需要迁移了。手。迁移之前呢,我们要进行什么呢?项目的梳理 啊。梳理。梳理什么呢?主要梳理的就是我们项目的调用流程哎,有哪些项目把这项项目呢?首先把它进行相应的迁移,最基础的项目应该迁移过去对吧?防止他出现 一个问题,因为如果他开始哎,上游服务迁移过去了,你下游服务还没过去,他钓的时候钓不到,这是个问题,对吧?所以说先把下游服务先牵过去,然后上游服务慢慢牵过去,然后呢,进行流量的慢慢往这边打 啊,是这么个过程。好,这个呢,就是他的一个迁移的一个过程。

ok, 大家好,我是阿马师,今天给大家分享的是 sprend boot 如何整个 nocos 作为配置中心啊。嗯,分享这个主题的原因呢,是因为最近有好多同学在后台私信我说他们项目中没有用到 sprend cloud 这个项目,对吧, 但是也是也想引用这个 nox 作为配置中心,因为能让系统的一些配置更加灵活。嗯,然后他们又不知道怎么去,怎么去做,然后就就过来咨询我了啊,然后针对这个问题呢,我就给大家总结了一下,嗯,如何用 spen 布的整个 nox 啊。 ok, 今天我们就直接进入正题,今天分享呢,应该内容比较少,内容比较少啊,大家大概几分钟就能看完。好好,我们直接开始吧。好,首先呢我们需要安装我们 noxe 的吧,我们 noxesnox 的话,我们因为我们是个人学习使用的吧,可以直接使用那个刀,可放置直接安装 这个防水,这安装这里面我也贴出来了。嗯,那个多个方式安装,嗯,多个方式安装 nos 的,嗯,那个蛋,那个蛋码搅拌。 ok, 这里面直接是多个 combosscompos 直接启动的,然后基于这个买骚客的啊, 嗯嗯,不是一个,不是他用他自带的那个数据库的啊,用买帅哥的做持久化保存的啊。 ok, 这个是安装啊,安装我这一部分我就略过了,因为我本地的话我已经安装过了,可以打给大家。嗯,打开看一下啊,啊,不是,在这,在这我给大家已经之前做的那个随风考拉的一些权限管理啊,已经安装过了啊, 好, ok, 咱们这里面我是已经装过了,就不给大家看了。好,然后我们继续看第二步骤啊,第二步骤就是直接添加依赖就行了,其实这个很简单的啊,只要自己敢于尝试的话。嗯,其实做起来其实还是挺简单的。第二步就是直接添加依赖, 千依赖啊,因为我这里面的话,我起了一个项目啊,这个这个项目的话是是随身部的整合的一个集成项目啊, 那个整,整了一个精神项目啊,这里面之前做过了一个水分部的整个 es, 水分部的整个一个 logo vs ok 的, ok 的,这个用来干嘛的?这个就是做你的一个实时日展示,就相当于你有的服务器项目上面那个日制啊,需要实时展现到前端。可以用这个啊,可以用这个, 然后买 slog 的,这个,这个都不用讲了啊,这个之前这个好像也没有出过视频,用文章是通过文章形式输出的。好,我们直接今天就不多,不说太多了,就直接说我们自己的这个项目吧。 ok, 首先呢,我们把我们的依赖引进去,也就是这一个依赖啊,就这个依赖 nox 康复一个,因为我们只使用到 nox 的一个配置中心,是不是我们只需要使用 no 死扛飞个就行了?好,我们把这个依赖引用之后,我们再点一下这个,把依赖刷新进去。 ok, 然后我们再看第二步啊,第二步就直接添加配置,这个配置呢,我们只需要添加一个这个就行了啊,很简单的。其实很简单的啊, 添加一下这个。好,我们加上一个这个 nice, 点, ctrl 点 c old 点刚哥瑞斯,这个就是指向,嗯, nose 的一个配置中心地址,我这里面是幺九二点幺六八六四点四啊,我们本地做的一个玛丽帕斯搭建的一个无本土的一个训练机啊,在那里面写的啊, 你们就用你们自己的地址就行了,只需要这一行代码,一行代码,一行代码。好, ok, 然后呢?这个里面配置好了,我们就需要给他启用,对不对?启用的话我们要要在这里面加入啊,在这啊,在我们的启动配置内啊,按照教程来啊,启动启动内添加, nice 啊,秋冬内天降当个死猪减, ok, 我们解释一下这个啊,喝点水。 这个对待 id 呢,指的就是我们之前做那个服务权限的,呃,对待 id 啊,一样的啊,好, ok, 我们仔细看一下这对待 id 是什么?对待 id, 你看咱们 nos 配置中心里面是不是有个对待 id, 只要跟他保持一致就行了,只要跟他保持一致,这个后面 后证明可以不用写后证明可以不写,写了也没问题,写了也没问题啊,写了也没问题, ok, 后面可以不用写,然后我们再介绍后面这个,这个就配置自动刷新,也就是说我在这里面我编辑了一个这个, 嗯,这个配置之后我点击发布,是不是立即给我刷新一下,然后拿到一个实时的一个,呃,修改后的一个值, ok, 这个待会给大家演示一下就知道了啊, 好,然后我们在这里面我看一下启动类上面我已经加过了,我这个里面是改成名字,这叫最大 id, 改成了 cn 波的杠 nex, 然后配置自动刷新, ok, 我加加起来,这个好,然后我们看一下这个启动类,加上我们就需要在项目中使用啊,项目中使用就直接用这种方式啊, 给大家看一下,我这里写了一个抗皱类,对不对?写抗皱类,然后上面这并不是只能在抗皱上面使用啊,任何你只要是所谓的容器组组建的话,你这个东西都可以去用,都可以去用的啊, 这个也用,然后只要,但是你,大家注意啊,这个不是用艾特五六的,这个用 itanoxuv 六啊,这个就能接着试试刷新啊, itanux 五六,然后在这里面纸呢怎么写呢?格式的话就是阿玛斯,因为我这里面,嗯用的是 peartes 或者雅马格式啊, potes 雅马格式你只要跟他 保持一致就行了,因为我这里面定了一个,我这里面定了一个是阿玛仕点泰式的抗吞糖,对吧?所以呢,我这里面直接写阿玛仕点泰斯抗吞糖,这个 k 跟那里面 k 要保持一致就行了。好, ok, 然后呢,这里面需要声明一下你的属性,声明一下你的属性,我在这里面就是直接通过这个接口把这个属性直接返回去了,对吧? ok, 好,这样的话我们整个的话就写完了,我们看一下我们总共几行单码 啊?一行使用的,对不对?然后呢两行启动启动,三行叫配置, 总共三号代码,对吧?三号代码就能开启你的一个 nos 配置,还是很简单啊。 ok, 然后我们再测试一波,测试一波,演示一波啊,好,我们首先给他,给他启动一下,对不对? 拿起东西啊,然后呢,这个是我们的这个返回地址,我们把它拿到浏览器上面去跑一下, 我们可以看到第一个中学配置中心的内容,今天有暴雨的,是不是?好,然后我们把这个名字修改一下,我们叫今天有暴雨, 明天明天转晴天。啊,我也不知道这天气预报是怎么报的。啊,好直接。这样的啊,好,我们给他改一下,因为他发布的时候都有这个, ok, 这样的。 好,我们刷新一下,大家看有没有变化啊? ok, 可以看到他中间有有变化了,是不是?所以呢?嗯,咱们这个是生肖了,要不再试一波?再试一波,可以,我们加一个一一 啊,刷一下,又生肖了,对不对?所以呢,咱们可以看一下后台日志啊,后台应该有,哎哎,这日志没记录,对吧?日志那就不看了,对吧? 大家可以看到咱们的随便播的单体项目,也可以整个 notes, 并且很方便呢,去管理你的一些配置中心,对不对?不需要你在项目中切死,然后项目上线之后的话就无法进行修改,只能冲洗项目,对不对?咱们可以接触着我们的 noxe, 作为配置中心动态,使你的项目更加灵活。 今天的分享就到这里啊,很简单,刚才说只要几分钟,是不是确实只要几分钟?好, ok, 谢谢大家。

为什么要拿口时不用 jk? 这个问题他考察的是什么?考察的是技术选型,那么他可以考察两个层次,就是可以考察初级层次,高级层次。那么初级层次其实就是去从应用层面去回答这两个组件的差异,那么高级层次更多就是我要去从技术选型层面, 初级层次其实很好回答 narcos 和 jk, 他们有什么特性? narcos 提供了配中心和住中心的功能, zookeeper, 它是一个分布式协调组件,可以实现它,这个分布是协调,也就是一个分布式锁的一个实现,只是说它有一个,它基于它的一个特性,可以实现配中心和住中心的能力。 你看 narcos, 你作为配中心,作为助中心,他的这个特性有哪些?比如说数据的同步,呃,集群数据一致性,所以数据同步,数据同步,是说那个 narcos 作为配置中心,他是一个什么?他是一个库啊,长人群。然后 narcos 作为一个配置中心,注册中心,那么他是干嘛呢?他是一 一个 pro 加 push 第二个集群,集群,它的一个集群数据一致性对不对?所以 nachos 作为一个配置中心的时候,它的数据一致性是基于什么呢?基于文件广播,然后如果作为注册中心,它支持两个,一个支持 a p discharge 和 c p left。 你看把数据算法,应该叫集群数据一次性。 nagos 可以搭建集群和猪 keeper, 他们都可以搭建集群,他们都会涉及到一个 leader, leader 和 follow。 然后集群的数据一次性, 可以拿口说,作为广播,然后呃,作为这个配中心的时候,那么作为注册中心的时候呢?哎,它是可以提供 a p 和 c p 两个模式,那么作这组 keep 来说,它是一个诈播协议。那存储这一块,你看拿口是作为配置中心使用那个 derby mysic 持久化,拿口作为注册中心的时候,使用内存 存储 to keep, 它是一个基于文件叫磁盘的持久化,是吧?明白了吗?就是我,我想告诉你一个方, 方法就是你在遇到这个问题的时候,对这抽象的问题的时候,你需要调度知识,怎么调度?你首先需要理大纲,这个大纲谁来定的?是你大脑自动构建的,所以你这个地方你需要去把,你需要把这个变成你的一个自然反应,这个叫什么?这叫结构化的一个思维方向。