00:00
好,那接下来呢,我们看一下它的一个使用啊,使用呢,这是ebo的API对吧,这个呢。要求前提条件对吧?Pre request前置条件啊,前置要求对吧?好,那这边呢,告诉我们了,他说你要想实现这个E啊,你需要什么requires对吧?A client需要一个客户端啊,需要什么客户端呢?To the database,那那废话对吧?啊,关键前面后面还有定语that对吧?呃,支持什么。异步请求的这么一个客户端,对吧,然后呢,他说大部分很多这个主流的popular对吧,主流的数据库呢,都提供了一个这样的客户端啊,一些主流有,其实呢,我们的red它都可以是可以的啊,可以有这个,但是呢,我们现在就不好用它为什么第一。我们这个地方呢。涉及到两个数据库。对吧,涉及到以及第二我们工具类都已经写好了。
01:01
对吧,啊,那下面呢,还有更通用的实现方式,对吧,不管不用操心你这个数据库的问题啊,就是有同学提到了,之前有同学提到了这个问题啊,他说。如果说你没有这个客户端,那怎么办呢。对吧,啊,没有这个客户端,他说by creating创建multi client创建多个客户端。诶,那注意啊,这个客户端不是它就是我们普通的,比如说那个,比如说那个connections对吧,那它就类似于这种普通的客户端啊,那这个客户端呢,那那就是说你创的多客户端有什么用啊,没用对吧,概念在后面and handy。处理。处理这些个客户端怎么样with a?线程池也就多线程。对吧,多线程的方式啊,因为我们刚才说了,异步函数与map函数区别在于map函数呢,来一条必须处理完了,他才会处理下一条,我不用管你下一条有没有到,哪怕你到了没用,你等着,你必须等我这条处理完,而异不函数不是的,来一条处理一条,来一条处理一条,对吧,第一条没处理完,第二条照样进来处理没关系,对吧,那这个时候结合着多线程可以啊。
02:16
对吧,就完成了这个实现啊,然而他说这种方式啊,它比这个提供这个E客户端的要影响要差一点,那肯定嘛,那肯定没有E的客户端要好啊,对吧,但是它的优点在于通用啊,是不是用多线能的方式更为通用一点,我就不用,我对数据库没有任何要求了。对吧,谁都可以,我只要能够创建多个客户端,假如说你你非得跟我这说have我用的德比。那我就跟你没得聊了好吗?对吧,那也就说我非得说我have用的德比数据库对吧,他不支持多个客户端怎么办呢?我俩别聊了,没有意义。对吧,杠精啊,不要抬杠对吧,我们说的就是说这个数据库呢,呃,可以同时创建多个客户端同时操作。
03:03
对吧?不聊这个事儿,那你就多现场都能够实现对吧?你非跟我聊have ondobe,嗯,我不聊,你赢了好吗?我拒绝抬杠啊。好,那我们呢,等会儿就用的是这种方式,等会儿呢,我们要构建这个线程池啊,线程池怎么构建,还记得吗。多线程的方式对吧,我们要用线程值,当然线程你可以实现容able啊,有三种方式对吧?最后一个呢,就是线程值的方式肯定会用的最多一点,对吧,我们自己说实现这个什么接口啊,这种比较麻烦对吧,我们就直接用线程值的方式会更方便一点啊。好呃,那接下来呢,我们看一下异步IO的一个API啊,怎么去写,它就分三步,第一步呢,你要实现。Ebo函数啊,那不废话吗?我们要写这个map function也得实现map function的接口啊,对吧,第一第一句相当于没说啊,这是必须的。
04:01
啊,这是必须的,对吧,这一步啊,一步函数啊,第二个它说call back回调一个用这个result future对吧,去回调,这是干什么事呢?因为你在这个函数里边啊,你要去访问这个数据库,去获取数,获取你的要的数据,然后呢。去丰富你的数据。对吧。好,那么接下来最后呢,就干了,他要把这个数据。输出。嗯,讲的就是这个事儿。要把这个数据输出OK吧,啊好,那最后呢,就在这这一步,第三步啊,就更简单了,那你想想看,你写了一个map function,你跟我流的产生作用吧,你单独的写了一个map function,不跟流作用,那有什么意义啊,对吧?所以第三件事他讲的什么呢?他要说要把这个异步操作啊,作用到流上面,哎,Transform作为一个转换算子作用到流上面,那么那1413这两步是不是相当于没说呀,第二步其实也跟没说一样,对吧?啊,那因为你只要用多线程,那怎么操作人家不管呀。
05:11
至于你拿着这个数据应该干嘛,人家怎么管你啊,所以人家中间没有定义,你自己写啊,人家提供一个方法对吧,里边的东西你自己写啊,当然人家这个啊,首先技能了rich,那我们肯定也rich,因为涉及到这个连接。对吧,还有线程池,我们肯定一个边路一个就够了,然后呢,在这里边创建一个客户端,看见没,对吧?然后在这里边叫a sy c in work,它不叫in work,对吧,它是异步调用的一个方法啊,在这里边去实现,但这里边你就不用看了,我们写的肯定跟它不一样。对吧,肯定不一样,因为这里面是我们写的功能嘛,啊,就是具体的功能,你要实现什么功能,那我们就查数据库。查到的数据补充到我们账病里边,对吧,我们要做的这个事情OK吧?好,那下面还有一个点要跟大家说明一下。就这个。
06:00
叫out of results。呃,结果的一个有序性问题,对吧,它有两种,一种呢叫on ait,一种叫ait,这是无序的,这是有序的。啊,什么意思呢?比如说在这边我数据按abcd顺序进来的,如果说我是有序的。在有序的情况下,我用的是A的,这种情况下,那么假如说A先,虽然A先发请求,但是AB其实差别也不大。对吧,那有没有可能A呢。之前没查过,你要走base b呢,以前查过对吧,他要走他可能B响应更快,对吧,但是由于我是abcd发送请求的,那输出也要按abcd。那如果用的是on奥的无序,那你虽然是按abcd发请求的,但是我响应是按bcda响应的,那我就可以按这个数据输出。对吧,这种效率比这个还要高一点。
07:00
因为我就不关心这个顺序了,对吧?好,那你想一下,对于我们当前这种情况,我要去关联微表,那你说我们用有序还是无序啊。我就去关联一个维表。有序还是无序啊?无序是不是就够了呀,对吧,因为他们之间不相关呀,而且最后是写到。Click house里边对吧,最后我数据关联好以后,我写到颗house里边跟你没关系对吧?嗯,跟多条数据之间没关系,所以呢,谁算完了谁就输出就完了。对吧,所以用无序的效率最高,OK吧,这是我们关于API的一个说明,但其实他这个官方文档写的。这三步啊,其实人家也没毛病对吧,因为你好像看着好像没写,因为。
08:03
根本的功能需要你自己去实现对吧。
我来说两句