Canal安装搭建教程+kafkaProducer代码
死亡如风,常伴吾身。大家好我是菜宇~
首先要说明这是我第一次写博客,写得不好请大佬们给点意见哈~
好了废话不多说,直接上干货!
Canal的安装搭建
简单操作我就不讲了,都用到canal了应该也不是什么新手了吧,如果实在不会百度大把,这里只讲别人的博客没讲到的东西
首先下载压缩包并解压,我用的版本是1.1.3
配置mysql的my.cnf和canal权限
操作来了:
1.cd canal/example/
你会发现一个配置文件
第一个文件是拉取来的binlog日志文件,第三个文件是自动生成的,只是记录的先不管他
主要看第二个配置文件,走你~
这个是数据库的地址,你要监听哪个就写哪个
如果你想两个客户端一起监听一个数据库怎么办?
在canal/conf创建一个目录,什么名字都行,如图:
然后把配置文件cp过去,会自动生成h2.mv.db,不用管他,多数据库操作也是同理,只是cp过去以后改改数据库地址而已嘛
这里最好不好用canal默认的example,会有问题的。
最后就是启动了,很简单吧哈哈哈,但是我快搞了一星期才搞出来,为什么呢?因为某云的垃圾服务器网络太差,搞得我一直以为是我的问题,而且mysql的my.cnf有问题,一直报找不到id,没开启binlog杂七杂八的错,先吃螃蟹的人容易食物中毒啊~~~~
现在可以打开你的客户端了
hostname是客户端的ip,注意是canal客户端,不要写mysql的。
prot默认端口,你自己看着办
destination对应你的conf的文件夹,这里看别的大佬写的贴子没说,好气?
账号密码不动
Canal完成,当当当当!!!!
Kafka+Canal做producer端
我直接贴代码咯
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.otter.canal.client.CanalConnector;
import com.alibaba.otter.canal.client.CanalConnectors;
import com.alibaba.otter.canal.protocol.CanalEntry;
import com.alibaba.otter.canal.protocol.Message;
import com.google.protobuf.InvalidProtocolBufferException;
import org.apache.kafka.clients.producer.Callback;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;
import org.apache.kafka.common.KafkaException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.otter.canal.protocol.CanalEntry.*;
import java.net.InetSocketAddress;
import java.util.List;
import java.util.Properties;
import java.util.ArrayList;
public class test {