00:00
那那接下来呢,咱们来看一看在idea里边是吧?那么怎么样去操作我们这个elect search search,呃,那么打开我们这个idea,呃,目前呢,呃,在我这阶段,我们目前给大家创建了两个空的工程,一个呢是我们big data另用二三,那个工程呢,其实主要是讲的是我们Spark推ing,它的回顾已及red对吧?然后后来又创新空子工程,是不是咱们JA贸LIVE23PARENT呀,对吧?呃,那么在咱们当前这空工程里面已经有一个我们的模块了,对,就是我们的一个日志处理的这块,对吧?然后接下来呢,在咱们这里,那我去再创建一个我们这个模块啊,再创建模块,呃,这个呢是我们这个实时吧,我的实时项目呢,那么咱们到时候就写在这里边了,呃,在这我呢去新创建一个model。这个就是我们没有项目就可以啊。然后下一步Tom at硅谷,然后接下来这个呢,是我们的帽,然后time。
01:07
然后把这个改一改,这个是我们的贸0523。Finish。呃,那么你现在创建一个我们的美项目之后呢,那首先呢,是不是得添加咱们skyla相关的知识啊,来右键,然后呢,按framework是吧,然后在这把咱们SKY的支持啊给加上,呃,那么加上SKY之后呢,那么在下边对吧,咱们在我们这个src下边,我呢去新创建一个我们这个directory,这个呢,就是我们这个skyla,那么默认默认情况下,你创建SC只只是一个普通的目录,咱们呢应该把它标记一下,对吧?然后呢,标记成我们这个source root,那这样的话,在咱们这个目录下边,它写的我们这个原文件会自动的编译成自编码文件放到咱们target中啊来在这里我呢去标记啊。
02:08
把它标记一下啊,然后接下来,那么咱们现在呢,再往下走啊,再往下走,那么再往下走呢,那么咱们支持完事了,然后接下来,那么你现在呢,要在我们这里啊,通过代码呀,去操作我们这个elect search了,那么elect search是什么呢?咱们都知道,那来search啊,它本身是一个搜索引擎,那么也有同学告诉我来它本身是个数据库,对吧?那么既然是库的话,这个说法是不是也没问题啊,因为本身他想完成咱们搜索功能,是不是也要把这数据给存起来啊,对吧?所以说呢,那么咱们在这里既然是数据库的话,咱们前面讲red red是不是也是数据库啊,对吧?那么咱们想得回忆一下啊,就是我们曾经啊,在这个操作ready的时候,其实也有两种方式,一个呢,是我安装ready之后,它有一个ready-c Li啊是不是有一个扣端工具,咱们可以在命令窗口里边来对RA呢来进行操作,那么除了它之外呢,那其实还有一个,咱们是不是有一个。
03:08
加入客户端工具啊叫啥来着,叫den是吧?哎,那么咱们现在呢,你要想去操作eleven search,那么它也有它的客扣端工具,那目前啊,市面上也有两类扣端工具啊,都是咱们的Java的对吧,都可以操作我们的来search,那么一类是谁呢?一类啊是我们这个transport啊,这个呢是我们这个原生客端啊,但是这里呢,它不能执行我们这个原生的DSL语句,必须呢,得使用我们一些我们提供好的方法,也就是说你在这里你想对吧,把这个这这个语句对吧,直接放到咱们这里来执行对吧,那么这类呢,他做不到对吧,那你只能呢,通过一些我提供的方法对吧来完成,那么另外一类呢,对吧,那另外一类是以我们的rise的API为主的client,对吧,那么最典型的呢,就是我们的je啊,原来那时叫什么叫je是吧,对吧,那么这个呢,叫je啊,那么这个。
04:08
等等对吧,目前咱们现在用的稍微多一点对吧?因为什么呢?因为elect search啊给官网对吧,宣布在我们的七之后对吧,那么它废除了对我们这个东西的一个支持对吧?那么以谁呢?以我们right client为主,所以说呢,那我们就得使用我们right client来对我们这个以来search呢,来进行操作对吧?来进行操作对吧?啊那么如果说啊,那么你现在呢,在咱们这里,如果说你现在呢,要想使用我们这个RA客户端的话,那你是不是得把相关的依赖给我加进来啊对吧,那大家来我直接把这依赖呢拿过来了对吧,把这依赖CTRLC啊拿过来,拿来之后呢,放在这里咱们简单看一看啊,那目前咱们的依赖里面都有哪些东西啊呃,首先呢,这个IO,咱们这个third box啊,这这个呢,就是我们这个jas的客户端,对吧,它的一个依赖,那么另外一个呢,你如果想使用这客户端,那么它本身呢,也需要添加一些别的依赖,像这两。
05:08
格的是我们的这客户端,它需要依赖的内容啊,它需要依赖的东西,然后它本身要操作来search啊,所以说呢,我需要把来search啊6.6.0这咱们现在的版本,那把它的依赖呢也给加进来啊,主要是这么几个依赖,把这依赖呢给拿进来,那么我现在呃,依赖拿之后呢,那我就开始写代码,对吧,去操作我们现在依赖search,那么首先呢,我在这里去创建一个我们这个啊这个类啊,去创建一个类,那来到我们这个S这个SKY的下边,在这呢去创建一个sky class com爱的硅谷,然后接下来g ma,然后呢,这是我们这个real time,然后接下来这个呢,比如说叫my ES YouTube啊,那么这个呢,是我们这个操作我们这个ES它的一个客户端工具类以后啊,咱们在这里对ES。
06:08
它的操作呢,我都放在咱们这个类里边啊,都放在咱这类里边好了,那么咱们现在呢,那来看一看呗,那么如果说你现在呀,要想去操作它的话,首先你第一件事,你是在想办法拿到我们这个J的啊这个客户端啊,拿到这个客户端,诶那咱们现在想一想啊,诶原来咱们在red里边,咱们怎么拿到这个客户端呢。第一种方式咱们直接拗对吧,但后来说这种方式不好,但你每次用的时候你都拗一个,这不太好,后来咱们不是有什么池啊,对吧,是不是有一个咱们那个说摘pro对吧,然后呢,通过连接池来获取对吧,那现在呢,那如果你要想去创建我们这个对吧,这个啊来客户端的话,那么它本身呢,在获取的时候啊,它其实呢,也帮你封装一个类似连接池的东西,但是这个东西叫什么呢?叫factory,就是说它可以通过我们这个JA客户端,它有一个工厂来帮你创建咱们对象啊,所以说你在获取咱客户端之前,首先呢,那你是得先获取我们现在它的一个客户端工厂啊,由这个工厂呢,来帮你把咱们对象呢给创建出来,所以说那我现在在这里,我要要去声明一个,我们这个客户端啊,工厂在这里,首先第一件事声明咱们这个JA的客户端工厂啊,JA客户端工厂。
07:32
啊,然后接下来,那么咱们这个东西呢,要声明private,然后接下来那这里第一个变量是吧,那么这个变量名称,比如说叫test factory啊,That factory,然后接下来什么类型的呢?那这个就是我们这个just factory这个类型,那么一开始呢,它给他一个空值啊,它等于空值,然后接下来那么有了工厂之后呢,咱们是不是应该提供一个获取我们这个guest的客户端这样的一个方法呀?啊客户端这的一个方法,那比如说我现在的定一个方法啊,这个呢叫guest的啊get just client啊get client,然后接下来那么目前呢,咱们当前这个方法,它返回的那是不是应该是一个just客户端对象,所以说呢,这个类型那应该是我们just client啊je client,然后呢,去导一下咱们这个包,那么最终呢,咱们要把这个东西给它。
08:32
返回回来对吧,那这里大家想一想,那么如果你现在想获取的话,那首先这个工厂不能为空吧,所以说每次调用咱们这个方法的时候呀,那你得做一个判断啊,你得在这里做一个判断,如果说咱们现在呢,这个just factory要是等于等于空,那么这个时候呢,咱们应该先去创建我们现在这个工厂对象啊,创建咱们的Jazz的客户端工厂对象。
09:02
啊,创建能力共享对象,然后接下来,那么如果说咱们现在工厂都要创建好了,那我是不是可以直接去获取咱们这个客户端量怎么获取呢?你拿到不对象直接大家看这里边呢,有一个方法在这来在这里直接呢get大家看这里是不是有一个叫get object方法,这个方法的返回值是不是一个client呀,对吧?所以说呢,我可以通过get和get object方法来获取咱们相对象,那接下来咱们是不是就主要就看一看咱们这工厂对象怎么来获取了。对吧,怎么样来获取咱工厂对象,那么如果想获取工厂对象的话呢,那么这个时候呢,你可以直接在这里边来写,对吧,那你也可以怎么办呢?我可以这样对吧?这个呢,我单独去封装一个方法,这个方法干什么呢?这个方法呢,是专门啊去创建咱们这个工厂对象这样的方法,但目前呢,咱们这个方法没有对吧,那我把这个方法呀给提供一下啊,我现在呢,把咱们这个方法给提供一下,我下来啊,我现在呢,在这里提供一个我们这个方法对吧?那么这个方法呢,可以返回咱对象对吧,那么这里啊这个unit返回值对吧,因为它只是给我们现在这个对象赋值嘛,对吧,它不需要什么样,它不需要去我们这返回什么东西,对吧,那咱们可以直接just factory,然后接下来点对吧,那咱们现在啊,这个点的话,一般我看看有没有什么方法对吧?大注意目前呢,咱们现在对象上没有呢,所以说首先呢,得想办法创建对象怎。
10:37
和创建呢,直接去new一个just client factory来创建一个这个对象啊,那咱看一看啊,点进去,那么点进之后呢,那么这里它本身是一个类,大家看这个代码是什么,这个Java代码呀,所以说咱们现在呢,其实用的是我们这个呃Java连接或者操作以来测试它的一个客户端工具,对吧?那目前咱们用的是我们的g client对吧?然后接下来那么你拿到这个对象之后啊,那么咱们呢,应该对它去做一些我们的一个设置,对吧?做一些设置就有点类似于什么我现在创建一个这个J底子铺连接池,那我是不是得设置一些连接池的一些什么连接属性啊对吧,那么它呢,也是一样的对吧?那么怎么设置呢?来看一看咱们现在呢这the factory,那么这里边呢,那么有一些叫set htp con f。
11:30
对吧,那这就什么,这我当前连接的一些我们属性的一些配置,对吧?那么你如果设置的话,你需要给传一个参数,这个参数什么呢?这个参数是http client conflict对象,比如说你需要一个这个对象呗,对吧,那要一个对象,咱们是不是可以new一个对象HTTP,然后呢,Client conflict对吧?那么这里边大家看这什么,呃,传什么builder,这builder。这个build是什么呀?
12:00
那这块呢,就得对吧,靠大家的能力了,是不是你们到目前为止对吧,听过的设计模式对吧?都有哪些?单立对吧,这一个还有别的吗?工厂这一个咱看上面这不是工厂吗?对不对?还有别的吗?观察者啊,单利工厂观察还有别的吗?装饰模式是吧?还有别的吗?代理还有别的吗?构造器还有别的?代理说了。你们在什么地方用过咱们这个什么装饰的模式,在IO里边有是吧?啊在那I里,然后Spark RD其实是不是也是一个装饰设计模式,对吧,还有别的吗?就是我现在这设影模式对吧?有没有别的,就这几种,反正我觉得这还挺好的啊,像以前有班我说那你们都接触哪些设影模式,大家大他恨不得把23种设影模式都给我说出来,对吧,那来呗,对吧,你说出来我就问对吧,什么地方用了不知道对吧,就听过词是吧,就听过这个名对吧,其实呢,咱们最早的时候啊,这个设计模式一共多少种,23种吧,对吧,就是几个人对吧,写了一本书对吧,教咱们这个设计模式对吧,然后后来呢,这个设计模式的归纳总结出了23种,这本书呢,太出名了对吧,后来呢,对吧一说设计模式其实都指的是我这本这本书里边,他所归纳总结出23种设计模式对吧,然后把这个人呢,叫四人组对吧,因为是四个人写的这么一本书嘛,对吧,Go of对吧,Go of,他其实指的是我们现在四人组对吧,其实指指指的我私人组对吧,那么我现在呢,在咱们这里,那我现在的其中有一种设计模式啊,叫什么呢?叫构建起啊,或者说咱们这个什。
13:50
怎么样叫咱们那个构造者设计模式对吧?那这是怎么回事呢?对吧?呃,那么我现在呢,在这里啊,应该有一个有一个有个有篇文章是吧?来大家看一看这个对吧,来看一看啊,这个主要说的什么呢?主要说的就是我们这个构造模式对吧?没连吧,应该连了吧。
14:41
好,那么咱们来看一看,这里有一个叫构造者设计模式,构造者设计模式你们用没用过呀?在什么地方用过啊?
15:00
在什么地方构造者设计模式自定义函数?再说一个have Spark,你们自定义函数,Have应该自定义过,Spark应该自定义不对,在哪块Spark?那这个其实没没必要想自定函数啊,就你们在Spark里边,咱们Spark这个circle它本身是不是有一个程序执行的入口啊,叫什么来着,SPA是吧,怎么创建的又出来的吗?是不是有什么builder对吧?一看到builder这个东西应该和什么呀,和咱们构造者设计模式有关系啊吧,那么到底什么是咱们构造设计模式呢?大家来看啊,咱们现在呢,这里边有一个这样的一个需求,那当前呢,这里个animal这样的一个类,这类里边呢,有一个属性,动物的年龄啊,这个是动物的一个体重呗,对吧,还有一个动物它吃的一个这食物嘛,对吧,假如说这食物啊对吧,假说有很多属性对吧,那我现在呢,想在创建动物对象的时候呀,来给咱们对象的属性呢,来赋值。
16:04
啊,想在创建对象的时候给对象属性来赋值,那么大家想一想,假如说我想让你在创业对象的候给对象属性来赋值,给属性赋值有几种方式。第一种构造方法是不是可以,然后呢,我把对象创建出来,然后通过S方法创建给赋值是不是也可以啊,对吧,但是这两种方式对吧,都不太好啊,这两种方式都不太好,那第一种方式它的弊端在哪呢?假如说我现在这三个属性你看的还行,如果30个属性的话,在这抓抓抓列出一类都要一排出来,你知道每一个属性表示什么含义吗?就假如说我现在变成三个属性了,就三个属性,大家去看这这行代码,你如果光看它属性,你知道咱们每一个属性它的含义吗?说这个很难呀,对吧,所以说第一种方式呢,对吧,我在传参的时候,我并不知道我当前这个对象它的属性,它的含义是什么。对吧,是吧,那我现在就通过咱们这个set方法呗,对吧?那么如果通过set方法数值赋值的话,大家想一想,如果三这个属性,那每次你都在这赋值的时候,是不是这个东西都在写set set是不是有点冗余啊,对吧?所以说呢,这个时候他们就想了,那能不能有一个咱们的设计模式吧,可以帮助你解决一下咱们这个问题呢?对吧,那这个时候咱们的构造者设计模式啊就有了,对吧?那么这个构造者设计模式呢,它的一个主要的原理什么的,就是在类的构造器或者什么静态工厂中具有咱们这个多个参数。
17:33
咱类的过造器,或者说咱们的计算过程中,它有多少参数,大家想一想,我现在啊,在咱们这里边,我是不是创建一个A可的考对象,那么这个东西你是不是也调它的一个构造方法,那么在构造方法里面它需要一个什么呢?它需要传多少参数,只不过把这参数的封装,封装成一个咱们build出来了,对吧?哎,那么我现在这里那有什么好处呢?大家注意啊,它对咱们上边这个东西啊,做了一个我们这个改写,假如说我这里有一个类啊,假如说这个呢,你就可以理解成animal,对这个其实就是一个类,对吧?那么在咱当前这个类里边呢,有这么几个属性啊,这个属性,这个属性,这个属性,那么如果你要是给咱们类的属性赋值的话,咱们刚才说了,如果你不使用设计模式,那么这个时候呢,它是不是只能通过咱们的构造方法或者是S方法来进行赋值啊,对吧?那么这个时候呢,它在定义类的时候呢,它在咱们当前类的内部又定义了一个叫做builder的内部类。
18:32
而且是静态的啊,就是咱们现在这本身我外部类呢,有很一些属性对吧,然后但是呢,我就是这个直接给它赋值的话,我觉得这种不管通set方法也好,还是们构造T的方法也好,对吧,都不太爽,那怎么办呢?我是在咱们这个类内部呀,我又定义一个类,这个类叫什么呢?这个类叫builder,那builder做着干什么呢?那肯定是帮它属性来进行赋值啊,对吧?那既然把属性进行赋值,那你是不是得知道我外部类有哪些属性啊,所以说呢,在内部类里边它定一些属性,这些属性和咱们的外部类的属性一模一样。
19:09
你看咱们这个外,外部类里边是不是这些属性啊,内部类里边是不是也有啊,对吧,是不是也有,然后接下来,那么咱们现在这个东西怎么给它赋值的呢?大家看,那么咱们当你去创建我们这个内部的对象builder的时候啊,当你去创建内部的builder时候,对吧?那么这个时候呢,大家看你去调的构造方法,你可以传这些东西过来,那么除了这个之外,大家想它本身是不是静态累不累啊,然后你看这里面他给我提供了一些方法,这些方法叫什么呢?Menu ID这是干什么呢?是不是你给我传一个值过来我干什么,我是不是可以给我当前内部类,就是咱们的build这个类,它的一个属性来扶持啊,就是我现在啊,在这里我提供了一个方法,静态方法,因为静态内部类嘛,对吧,那么我现在呢,我提供一个方法,他可以给我这个属性复制,我提供一个什么这个属机这这个方法,然后呢,我可以给他来进行复制,哎,你发现他提供这些方法,一个是静态方法,另外一个他提供的。
20:09
这些方法是不是全是我和属性相同的这些方法呀,对吧?哎,那这样的话,同学们,那假如说啊,有些属性呢,我希望你在创建我们这个内部的对象的时候,你就给我传过来,比如说咱们现在这个number,那你看在这里,它是在构造器里边来指定了,那么有些呢,这个属性,那就意味着这个东西你必须的这个属性你必须得有,如果没有的话就不行。能理解这个吗?因为咱们想同学们,我要想构建内部类对象,你是来叫构通方法,我现在是不是显示题目通方法了,如果显示题目的话,我是不是就没有默认的无参购的方法呀,也就说你要创建这个对象的话,你必须得通过咱们代参购的方法来进行复制,要不然就创不了,创建不了对象对吧?那所以说你现在想调的带参购的方法的话,你是不是得给我传这个属性值过来,所以说那咱们可以这么理解,这个属性它是必须的啊,这个属性是必须的,那么如果有些属性不是必须的话,那怎么办呢?我给你提供这个方法对吧?你如果要赋值的话,你调这方法给我赋值就行了,对吧?但是呢,我发现一个问题啊,什么呢?你这些属性它仅仅是谁是内部类呢,但是我最终我是不是想给到外部类的属性赋值呀,那么怎么样给到这外部类属性赋值呢?对吧,那么这个时候大家看本身在咱们这里边,我呢,在我们这个build里边,它有一个方法叫什么呢?叫build。
21:31
这个东西它位于哪儿?位于咱们内部的中,当你build的这个方法一调用的时候,它创建了一个什么对象,同学们。是不是一个外部的对象,就当我现在在内部类啊,这个build方法一调用的时候,其实呢,它帮你创建了一个外部的对象,而且在创建对象的时候,对吧,我外部的对象它有要求传什么呢?传一个咱们这个builder进去,我现在本身内部内是叫builder对吧?那我现在要求你,你在创建外部对象的时候,你得传build,传这个对象过来,那么谁传过去了?
22:06
自己牺牲一下对吧,自己现身了对吧?他把自己传过去了,对吧?他把自己传去了,那我问大家,刚才咱们现在在这里,我是不是可以在构建内部类对象的时候,来给我内部内的属性来赋值了,那你现在赋完值之后,然后你在这叫这用方法的时候,这个对象它的属性是不是已经有值了呀?那么如果这个属性有值了,你在创建咱外部对项的时候,那么你不是可以拿到咱们builder它的属性值,Builder属性值和咱们we部类是不是一模一样了,那这个时候你是不是可以达到给咱们外部类属性来赋值的一个目的,那这样做的好处是什么呢?这样做的好处同学们,咱们以后再想去创建外部流量的时候,你没有必要直接去拗咱们这个外部的对象。你没有必要直接用外部对象了,你怎么办?你是不是想办法去拗一个什么,拗一个咱们这个内部类对象,然后接下来去调到它里边这些方法,对吧?然后呢,给内部类对象的一个属性赋值,那么最终是不是调它的个用的方法是不就OK了,对吧?而且这些方法它在调用的时候是不是可以对吧?是我们一个串联的一个方式来进行调用的,可以进行方法连接的,进行连接的方式来进行调用的,链式调用的链调用,而且呢非常灵活,我想去设置哪个属性,我直接去调这个方法,不想设置我是不是不需要调调这个方法呀,对吧?诶那么这块呢,比咱们上面这个写法呢,要稍微简单一点,对吧?哎,我现在这种方式呢,这种设计模式其实就叫什么,就要构到整,有的人说老师这不简单,对吧?设计模式不是让你觉得简单的,同学们让别人用起来简单,你想一想,我如果提供咱们现在这个累了,那么对于类的编写者来讲,它肯定比原来要难。
23:50
原来我多简单,属性一提供,Get的方一提供都是自动生成的,那你就完事了,你用的时候,你叫赛的方法过法我赋值,但是你在赋值的时候,你肯定要这么做对吧?你肯定得这么做,但是现在呢,我如果说我在创建类的时候,我稍微麻烦一点,但是你在使用我的类的时候,你在创建我对象的时候,你就可以通过这种方式来使用了,你是不是简单一些对吧?哎,所以说呢,这里构造的设计模式对吧?那么大家要了解你们原来呢,在咱们这个Spark session里边啊,那么你应该用到过它,对吧?那么咱们现在呢,这里也是一个同学们对吧?你看我现在在创建咱们这个对象的时候,对吧?在创立象的时候,这个对象本身对吧,New的时候,它需要传什么,它需要传一个builder,那我问大家这个东西是不是应该相当于我们这个外部的对象。
24:37
对吧,那么如果外部对象的话,你要想去我们这个导给外部对象属性赋值的话,你不是直接扭它的吧,你直接拗它的话,你该扭不了也传build,你是不是得想把想办法把内部的项给串出来,也就说你拗的应该是内部的对项,怎么拗呢?那么这个时候你应该是在点一下对吧,这里有一个build,也就是说啊,那么在这里你应该就的是一个内部的对象,而且咱们当前内部对象再去创建的时候,他要求你,你得不传东西。
25:06
别忘了我们现在这个程序,我最终要干什么,我是不是操作elect呀,那么如果要连接的话,你是不是得知道elect它的地址是什么呀,对吧,所以说呢,同学们,那么这个时候你看一看这个参数应该是什么。如果说这这这这东西你你这三分你看不懂的话,那一下给你弹了很多的话,你就找最简单的呗,对吧,这个东西应该能猜得出来吧,是不是应该是我现在要连接的我们elect search它的一个服务器地址对吧,那咱们现在呢,在这里我连谁呢?它dog的HTTP,然后接下来冒号哈,DOG202逗号多少5601还是92009200对吧,9200说老师这不对呀,我现在集群呢。对,你这里我连一个,这不对,我问大家,那么咱们在曾经我们去操作什么卡夫卡的时候,你们肯定有一个broke list,然后在broke list里边,你们是不是可以写一个地址,比如说我现在就写什么APP,然后呢,什么哈豆202端号的9020,然后接下来完事了,对吧,然后你是不是也可以写多个地址,多个地址之间用逗号连接呀,对吧,那是连接咱们那个卡斯卡,它的A撇S支持,对,就你现在啊,你可以给我传多个地址过来,然后呢,多个地址之间用逗号进行连接,它底层肯定怎么做呢?它底层肯定的会用我们这个短spli对你当前的这个字符进行分割,然后把这地址呢,一个个的给我取出来,但是人家没有给我提供这个方法,如果说我现在这里没有提供我我想连多个地址,想写多地址的话,我除了202是不是还有203的呀,你要想写多个地址的话怎么办?
26:48
大家看一看,人家这个参数除了传一个之外,上边是不是还可以去传一个集合呀,对吧,这个U加collection什么意思。
27:00
对,注意了,同学们,咱们现在这个东西集合U,那是不是应该是U包下边对吧?那这应该是,是不是应该扎入集合呀,对吧?那如果是咱们先选多后地址也可以定一个什么S呀,对吧,这些东西,然后这里个定义咱们几个对吧,我们这样的一个地址过来,然后最后呢,把这集合给我传过来,这样也行啊,这样也行好了,那这样的话,咱们现在啊,这个东西有了啊,我现在呢,已经对帮你去构造出来一个我们现在对吧,这个内部对象,那没完事呢,同学们在咱们这里边,那么有些东西呢,那我应该去指定一下对吧,比如说在咱们这里我需要指定内容对吧?来往上看一看,我现在呢,要连接的时候对吧?那第一个我把咱们当前这个连接地址指定了,那么另外一个,那么这里还有一个什么呢?叫market thread对吧,那一看这个东西market thread啊,不玩类型,你看这个东西是不是开启多线程处理啊,对吧,开启,然后接下来再点对吧,在咱们这里边再点一下对吧。
28:01
来点,那还有什么呢?还有一个ma total connect啊,这应该是最大连接数呗,对吧,那么咱们现在的这个最大连接数啊,比如说这是为我们这个20的20,然后接下来那么再往下走,那么这里呢,还有一些啊和咱们这个时间呢有关系的,那和时间有关系的,那主要是这两个,一个是连接等待时间对吧,比如说我现在呢,连接等待时间要十秒钟,因为第一次连接嘛,是不是有可能要稍微慢一点呀,对吧?然后除了这个之外呢,咱再往下还有一个咱们开慢这个什么re太慢,就是连接上之后,我再进行操作的时候,这个时间对是多少对吧?你如果说我现在电脑稍微差一点的话,你可以把这稍微改长一遍,对吧,比如说像一秒对吧,比如说像一秒,然后接下来,那么咱们现在把这些制定好之后呢,那你可以去build一下了啊,本身咱们这里它是不是创建了它的一个内部的对象啊啊,但是我需要的什么,我需要的是不它的一外部对象调一下build啊,那这样的话一个H。
29:01
Ptb land con对相应了对吧,那么你相当于什么呀,也相当于在咱们这里边创建了一个我们的客户端工厂,然后接下来那么咱们呢,给构端工厂它的一些属性啊,做了一个复制操作,那么这里呢,不光是我们在这里用的,其实我们这个构建的设计模式对吧?在咱们当年的项目里边好多地方对吧,尤其在ES里边对吧,它用都用的是我的构建的设计模式,大家要啊习惯我们现在这种方式对吧?他拗的不是外部的对象,拗的是内部的对象,然后进来调内部类的方法来给咱们这个属性呢,来进行一个赋值,那么最后通过谬的方法来去把外部对象给我创建一下啊,外面创一下,那这样的话,程序的执行的时候,当你去调get client这个方法的时候,同学们啊,当你去调get client这方法的时候,它首先判断咱们这个工厂是不是等于空,如果等于空的话,它叫B的方法来帮助咱们呀,把工厂对象给创建出来,对吧。那么如果工。
30:01
对象串出来之后,那么咱们现在是不是就可以继续下边的操作了,好了,那我现在呢,把这停一下。
我来说两句