计划阐明

canal是阿里云开源的解析binlog组件,同步到ES须要deployer和adapter两局部:
deployer解析MySQL binlog,adapter将数据写入到ES

长处

开源成熟稳固简略易用

毛病

不反对全量数据初始化

部署

logstash进行全量
/etc/hosts配置es7.test.com域名解析

deployer

wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gztar zxf canal.deployer-1.1.5.tar.gz -C deployercd deployervim conf/shop/instance.properties################################################### mysql serverId , v1.0.26+ will autoGen# canal.instance.mysql.slaveId=0# enable gtid use true/falsecanal.instance.gtidon=false# position infocanal.instance.master.address=127.0.0.1:3306canal.instance.master.journal.name=canal.instance.master.position=canal.instance.master.timestamp=canal.instance.master.gtid=# table meta tsdb infocanal.instance.tsdb.enable=true# username/passwordcanal.instance.dbUsername=root canal.instance.dbPassword=123456canal.instance.connectionCharset = UTF-8canal.instance.enableDruid=false# table regexcanal.instance.filter.regex=test.shop################################################## 启动sh bin/startup.sh# 敞开sh bin/stop.sh

adapter

wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.adapter-1.1.5.tar.gztar zxf canal.adapter-1.1.5.tar.gz -C adaptercd adapter# 配置生产vim conf/application.ymlserver:  port: 8081spring:  jackson:    date-format: yyyy-MM-dd HH:mm:ss    time-zone: GMT+8    default-property-inclusion: non_nullcanal.conf:  mode: tcp  syncBatchSize: 2  retries: 0  timeout:  accessKey:  secretKey:  consumerProperties:    # canal tcp consumer    canal.tcp.server.host: 127.0.0.1:11111    canal.tcp.zookeeper.hosts:    canal.tcp.batch.size: 500    canal.tcp.username:    canal.tcp.password:  srcDataSources:    defaultDS:      url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true      username: root      password: 123456  canalAdapters:  - instance: shop    groups:    - groupId: g-shop      outerAdapters:      - name: logger      - name: es7        hosts: es7.test.com:9200        properties:          mode: rest          security.auth: elastic:123456          cluster.name: testes### 表映射vim conf/es7/shop.ymldataSourceKey: defaultDSdestination: shopgroupId: g-shopesMapping:  _index: canal_shop  _type: _doc  _id: _id  upsert: true  sql: "select id _id,id,cid,name,remartk from shop"  commitBatch: 1000# 启动sh bin/startup.sh# 敞开sh bin/stop.sh

 ES创立索引

PUT /canal_shop{    "settings": {        "number_of_replicas": 0,        "number_of_shards": 1,        "index.codec": "best_compression"    },    "mappings": {        "properties" : {            "id":{                "type":"integer"            },            "cid":{                "type":"integer"            },            "name":{                "type":"text"            },            "remark":{                "type":"text"            }            }    }}