00:00
好,那了解完这个数据结构之后呢,我们就开始写我们的代码,这个呢,我们放在旁边啊,方便我们观察这个数据我们写到哪一步了啊呃,那里边儿第一步呢,毋庸置疑,肯定是做什么事啊。获取连接啊,或者叫创建连接,对不对啊,获取连接,那这个里边呢,获取连接的方式是这样的,叫。Can connectors.new single to connect啊,我们连单节点的就够了,这里我们看一下它的要的参数,第一个是socket address,也就是说它需要一个连接地址啊,第二个destination,大家还记得我们的destination实例名称叫example,对吧?用户名和密码,其实登录我们的canal并不需要用户名和密码,这块要注意一下,有同学可能这个时候想到了,诶,是不是canal canal呀,并不是,注意canal用户名加canal密码是canal这个服务端用于访问数据库的啊,注意啊,现在呢,有买circle,我们稍微的介绍一下,这边呢是canel,刚才我们要等会儿要去启动的服务端server端,然后现在我们写的代码呢,是属于canal的客户端,对吧?那呃,刚才的canal canal是什么东西呢?是服务端去连买S用的,而现在我们这个地方看到的用户密码和密码是客户端连服务端的,而并不需要任何的。
01:24
密码啊好,那第一个socket address,那我们创建一个叫I net socket address,呃,这个里边呢,有两个参数,一个是主机,一个是端口号,我们克耐装在哈杜102,所以呢,我们写哈杜普102,呃,接下来端口号,我刚才说了阿里喜欢双11对吧,还记得应该是五个一啊,五个一的等号,呃,第二个位置他要的是。哎,端口号呢,我们应该写成这个in的类型,他刚才说了对吧,五个一我们写一下啊,这边呢去掉,嗯,接下来第二个是destination,我们是example。
02:02
用户名和密码我们并没有对吧,没有的话呢,我们就空着就好了,但是这个参数是必须要传的,所以呢,我们就空着好,我们就得到了一个canal这样的一个连接器啊,它只是一个连接器,还没有真正的去获取这个连接啊,接下来我们继续写。呃,那我们想作为我们的客户端。服务端呢,它会便利这个数据呢写到。他自己的数据里边,那客户端呢,我们想一下,我们是不是应该维护一个长轮询,也就不断的去尝试读取一下我们的服务端是否有新的数据了,所以这边呢,我们最好写一个循环是不是啊,Well处啊写个循环,在循环体里面呢,写我们抓取的代码啊,那这里边呢,我们要这样。加一个注释啊,然后呢,叫连接canal啊,那就拿着我们的连接器调用这个。
03:03
Connect啊,我们去连接一下,呃,然后接下来呢,连接上我们的服务端以后呢。订阅。啊,就是说我们到底要访问哪个库啊,比方说买S里边可能开了所有的库,那此时我们可能只要某一个库的数据做数据分析,对吧,所以呢,我们订阅数据库。啊,那这个呢,拿着我们的连接器去订阅啊,这个里边呢,我们要写一个我们的库名叫J末杠2021,然后呢,所有的表,对吧,监控这个数据库的表点C啊,这个库里边所有的表我都需要,所以呢,我们去连接一下,然后接下来叫获取,真正的叫获取数据了。获取数据呢,拿着我们的这个连接。点直接调用get里边传一个int类型,就是说你一次想拉多少个S的变化数据对吧,最大啊,呃,这个地方返回值就是message,诶终于跟我们这个PPT挂钩了,对吧?所以呢,我假如说单次我想拉取100条S克的变化记录,当然这边啊要注意一下来点进来看一下,它并不会阻塞我们整个的代码啊,呃,也就什么意思呢,假如说我这个地方写的是100,但是有可能我此时买SQ当中只变化了一条。
04:23
那不够对吧,我全部读完了都不够,100我是卡了吗?并不是,这边呢,由于阿里开发的,所以它源码当注释是中文的,诶看起来比较舒服对吧,那看这个叫尝试拿bad size,也就我们传进来100这个数字,这条记录有多少取多少,并不会阻塞等待,也就是说当你买so当中变化的数据超过100的时候,我一次。拉100,不够100的时候直接全部。拉完。啊,是这个意思,并不会阻塞,OK,那这样的话我们就得到了message,诶,终于跟我们的PPT产生了一个挂钩,对吧?好,前半段呢,是我们获取连接并读取数据,接下来呢,我们就要对这个message做解析啊。
我来说两句