00:00
啊,这呢,我们来去看一个走keep客户端框架啊叫K,那么K呢,也是业界比较知名的一个走keep框架了。那么他是谁提供的呢?是ne雷克斯贡献给啊阿帕奇的,那么咱们呢,作为Java开发人员啊,对于这两大啊公司或者说组织都不陌生。选ne flix,那么用过奔头的框架的同学啊应该都知道,那么很多死奔头的原生组件就是有奈飞啊贡献给spring的。那么那边的话呢,把这个K贡献给了阿帕奇,那目前呢,它属于阿帕奇的一个顶层项目。那么K呀,它对我们的原生客户端呢,做了很多高级封装,然后呢,使我们的客户端玩起来更加简单。那么然后呢,还提供了很多高级封装,比如说呢,我们的封印派出所这样的一个工具的一个封装。那么并且呢,还解决了原生客户端里面存在的一些问题啊,比如说呢,我们的那个失败重连啊,还有呢,咱们那个监听事件,原生客户端里面只能监听一次。
01:06
那么你要再监听的话,你要再查询这一监听,再听监听就很麻烦,而这个K啊,它呢,可以使我们的监听呢,可以监听多次反复监听。啊就非常方便,那么K啊,咱们这个介绍啊,可以介绍这么多啊,那么咱怎么去玩呢?啊,玩它之前我们首先要了解一下,那么K呢,其实有两部分组成的,那么一个呢是K啊核心框架。啊,核心框架叫呢,叫frame frame framework啊核心框架。啊,那么然后呢,啊,还有第二个部分呢,是key,然后呢,杠上re rees rees,啊这样一个玩意儿,那么这两部分有什么不同呢?啊,Cur from work呀,它主要是对ZK的底层,底层那么做了一些做了一些封装,那么使我们去玩走keep拓盘的时候呢,变得更加简单。
02:08
那么然后呢,Cures那它主要是对一些典型的应用场景做了一些封装啊,典型应用场景那么做了啊一些封装,那比如说呢,咱的这个分布式啊锁啊就包含在。He recovery这一块。那所以呢,我们在玩这个K分之所的时候呀,咱们啊,不仅要引入这样的一个依赖,那么还要引入K。那你去到哪一个都是不可以的。那么我们啊,废话不多说,我们介绍再牛逼,你不会用它也是不可以的。那么咱接下来的话呢,就去看一下怎么去玩这个。那它里面的分布式数啊,是咱重点要讲解的。好,我们来去看一下,首先呢,第一步呢,来引入啊K相关依赖,那么cur相关依赖啊,主要由两部分组成啊,一个是framework和这个cur就对应的两个模块啊。
03:10
那么然后呢,咱们在引用的过程中啊,最好呢,把原生客户端给它排除掉啊,这两个东西啊,它都会引入原生客户端啊,那么其实没有必要。因为它传递过来这个版本呢,IE宝原生扣端版本啊,可能不是我们想要那个版本。啊,为了避免冲突呢,咱最好能给它排除掉。好,那我这的话呢,你可以把这两个依赖啊,给它copy过来,让它放在我们的呃,工程的泡点茶面里面去,那我们这个非布所项目的泡点茶面就在这个地方。那我们就随便找一个位置啊,给他放一下,比如说一个放在这个K原客户端的上面去。啊,那么放好之后呀,那么这个第一部分依赖啊,我们就搞定了。那么依赖搞定之后呢,咱怎么去玩这个提瑞呢?那么你首先呢,要去写一个配置类。
04:00
那在配置类里面来去初始化from work这样一个客户端。那么在我们的这个K里面啊,它就提供了一个叫K,原来是frame啊frame,然后是work这样的一个玩意儿啊,那么这个东西呢,就算就是一个口端程序。那么你的一切操作都离不开这样一个客户端。它类似于咱data RA里面的那个red啊,Templ类似于这个东西,那么你在red里面,你要通过通过data release,那你操作我们release,那你肯定要通过它来去完成。那么也类似于red里面的那个red clin啊,那么在red里面一切操作都要通过red clin啊来去完成。那么在这个K里面呢,我们一切操作都通过它,通过它来完成。那我们可以在项目一启动的时候,那就是初始化这样的一个客户端,那将来呢,在我代码里面,我随时就可以去用它了啊。
05:02
那么首先呢,我们写一个配置类来去初始化它,那么在我们这个配置包下面呢,我们来去用一个配置类啊,命名为k config这个玩意儿。那么有了它之后呀,首先呢,得要在类上加一个这个性注解,说明它是一个配置类。那么然后呢,在我们这个里面呢,咱要去写一个it b方法了啊,那方法的反应反应结果集啊,就是cur framework,那方法名呢,哎,这叫he framework。那我们在这个方法里面呢,初始化一个framework。那么怎么初始化呢?啊,这个from work。啊,它是一个接口,那我肯定不能直接去拗,这里要看看有没有什么实现类什么之类的啊。那我们发现呢,它这个里面呢,诶好像呃,有一些实线对吧,有一些实线。那么这个里面呢,也有一些时间,那当然使用哪一个呢。
06:00
其实我们每一个都不使用,那使用啥呢?其实他给咱提供了一个工厂啊好,我们可以去看一下,他给咱提供了一个叫Kate,原来是framework,然后factory是个工厂。那么这个工厂啊,它里面就有对应的一些方法帮我们用初始化,那你可以去有一个啊,没有一个clean啊,咱就使用这个方法就可以初始化了。那我们呢,就可以使用这个最简单的这个,但你也可以指定一个超时间使用这个呢,也是可以的。啊,废话,超时时间以及连接超时时间,那你可以指定更多的参数啊。那我们这的话呢啊,咱就不使用这么复杂的了,但你知道每个参数什么意思就可以了啊,这无非呢就多了两个操作时间吗。那我们使用第一个方法啊,来以初始化,那核心的两个参数还在,那这个操作时间咱不设置的话呢,影响也不大,哪一天如果你需要设置的话,那你可以使用下面这一个。啊,应该呢,都会设置啊,那都是int类型的嘛。
07:02
好,那我们呢,就使用第一个方法了,那么第一个方法呢,咱们首先要去设置连接字符串,那么连接字符串呀,我们之前也设置过,咱应该是IP地址加端口号,那我是幺七二点幺六点幺幺六点,咱们是100,那端口号呢是2181这样子。那么然后第二个参数啊,是什么重试呃,重试规则,那么重试规则呀,哎,我们这是什么参数呢?咱可以点进去看一下啊,重试规则是个什么东西,它也是一个接口。那么既然是一个接口,我们肯定也不能直接去new,我们还是要找具体的实现类。嗯,它里面呢啊有这个呃,永远重试,那一般的话呢,咱也很少使用这个啊,永远重试,然后有睡眠重试,先睡一会儿啊,我再进行重试。那正常如远程一直重试,一直重试,那可能会导致你的服务器啊,因为重试浪费大量资源,那咱用的呢比较少啊。
08:00
那么你可以使用这个啊,咱可以重试多少次,你可以去指定。啊指定,然后呢,每隔多长时间啊,来去从事你都可以指定啊这个东西。啊,那么然后呢,呃,咱们一般使用哪个呢?我们一般使用这个东西,这呢叫exponent back of retreat,那这个东这是什么东西呢?啊,这是指数补偿,然后重试。指数补偿重试,咱为什么用这个呢?啊,这个呢是每隔一定时间呢,就重试一次啊,然后重试N次,你可以制定一个重置次数,那我们这个地方也可以制定一个重复次数。然后并且呢,可以指定一个初始间隔时间。那么然后呢,它第一次重试的时候呀,是冲啊是那个初始间隔时间,那么以后呢,随着次数的增加,它的间隔时间呢,会递增,这样会递增。那这样的话呢,其实就会更好一些啊。更好一些,但从事次数的话呢,间隔时间越来越长。好,那么啊,这的话呢,更加符合平时我们这种,呃,这种自然基于的这种这种习惯啊,OK,咱们可以选择使用那个指数那个,当然你使用这个呢,也是可以的啊。
09:10
好,那么咱们就可以去谬一个啊这个玩意儿了,那我们可以去谬一个,比如说X Pony啊X Pony。Back off retreat。那这个里面呢,我们来看一下需要什么参数啊,你需要去指定一个初始啊间隔时间,然后以及你的重试次数,还有一个什么最大从事的啊,最大这个睡眠时间,这是初始睡眠时间,这是最大睡眠时间啊。那你可以使用这个参数使用这个,那么它也可以使用上面这个,比如说我们就指定这个最最初始的,我们就不指定这个最大的了啊。OK,那比如说呢,初始睡眠时间呢,可以来一个。嗯,以外它是以毫秒为单位啊,比如就十秒钟啊,或者说我是一秒钟十秒钟吧,那么然后最大同时次数呢,咱可以来一个同时三次啊这样子。
10:03
好,那么最终呢,咱就初始化好了一个呃,Rere这样一个对象,那么这个re对象呢,我也可以使用这个接口来以声明啊,第二项叫rere policy这个东西,来一个rere是policy来声明,在习惯上啊,参数声明习惯使用接口类声明,那咱也使用接口声明,然后给它放在啊这个地方也是可以的。啊就可以了啊,把它给放在这个地方啊,把它给放在这个地方啊,这样就可以了。那最终呢,咱就返回来一个嗯,返回来一个嗯,Cur客观对象了啊,来一个对象。那么然后呢,呃,这个克林特呀,我们还需要给他启动一下啊,如果你不启动它的话,那么K底层的很多方法啊或者功能,它是无效的啊,是不能工作,它是不工作的,所以呢,一定要去手动启动一下。那么启动好之后呢,我就可以把这样的一个客户端给它反应出去了,那将来呢,我就可以在死分里面,死分容器里面,那就获取这个客户端对象了,那进样呢,就可以使用它里面的功能。
11:09
啊,这的话呢,咱可以去加初始说明一下啊,啊,这是我们初始化初始化初始化一个同事策略啊策略,那我们这里呢,使用的是。指数指数补偿,那么这样的一个策略。那么然后呢,我们这里呢,可以指定两个参数,一个是初始啊间隔,间隔时间,那么以及重试次数,我们重试三次。啊,那我们还有呢,是这个链接可以重试啊,那么原先客户端里面是不具备这样的一个功能的,还有我们的Q呢,有这样的一个功能,这就是他刚才做的一个优化之一啊。那么然后呢,我们来看啊,这个里面呢,我们就是初始化,初始化。
12:07
初始化,然后是key。K是客户端了啊,这数字化客户端,那么里面呢,有两个参数啊,大应该都能看懂,一个是主keep连接参数,还有一个呢,是重试的一个参数,那上面呢已经解释过了。那么然后呢,这个他呀,咱们要去呃启动啊,一定要先启动一下啊,要手动那么启动那么否则那么很多啊方法或者说是功能啊,功能它是它是不工作的啊,不工作的就没法去使用它们。好,那最后呢,咱就返回这个堂。
我来说两句