阿里云部署項目系列(四)以docker方式部署canal-adapter同步到es

1.拉取鏡像

docker pull slpcat/canal-adapter:v1.1.5

2.建立配置文件

mkdir -p /mydata/canal-adapter/conf
mkdir -p /mydata/canal-adapter/conf/es7
touch /mydata/canal-adapter/conf/application.yml
touch /mydata/canal-adapter/conf/es7ceshi.yml

3.application.yml內(nèi)容

server:
  port: 8081
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
    default-property-inclusion: non_null

canal.conf:
  mode: tcp
  flatMessage: true
  zookeeperHosts:
  syncBatchSize: 1000
  retries: 0
  timeout:
  accessKey:
  secretKey:
  consumerProperties:
    # canal tcp consumer
    canal.tcp.server.host: canal-server地址:11111
    canal.tcp.batch.size: 500
    canal.tcp.username:
    canal.tcp.password:
  srcDataSources:
    defaultDS:
      url: jdbc:mysql://數(shù)據(jù)庫IP:數(shù)據(jù)庫端口/數(shù)據(jù)庫名?useUnicode=true
      username: db_username
      password: db_password
  canalAdapters:
  - instance: example # canal instance Name or mq topic name
    groups:
    - groupId: g1
      outerAdapters:
      - name: logger
      - name: es7 # 該版本發(fā)現(xiàn)只能是es7/es6
        hosts: esip地址:9300 # 127.0.0.1:9200 for rest mode
        properties:
          mode: transport # transport # or rest

4.ceshi.yml文件(ps:名字隨便起,同步多少個index就要有多少個文件)

dataSourceKey: defaultDS
destination: example
groupId: g1
esMapping:
  _index: ceshi
  _id: _id
  _type: _doc
  upsert: true
  #  pk: id
  sql: "SELECT a.id _id from t_ceshi a "
  #  objFields:
  #    _labels: array:;
  etlCondition: "where a.>={}"
  commitBatch: 3000

5.創(chuàng)建并啟動容器

docker run --name canal-adapter -p 8081:8081 \
-v /mydata/canal-adapter/conf:/opt/canal-adapter/conf  \
-d slpcat/canal-adapter:v1.1.5

6.查看啟動是否報錯

docker logs canal-adapter

7.測試方法

隨便更改一個t_ceshi表的內(nèi)容

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容