構建基於Kafka中轉的混合雲在線數據同步-CloudCanal實戰

本文介紹瞭如何實現mysql 同步數據到Kafka實現混合雲在線數據同步java

junyu-cloudcanalmysql

簡介

本文主要介紹如何使用 CloudCanal 快速構建安全的混合雲在線數據生態,徹底使用 CloudCanal SAAS 能力達成。linux

此方案具備如下幾個特色sql

  • 採用 Kafka 作數據中轉
  • 雙邊數據庫都不開公網端口
  • 互聯網數據通過 SSL 加密
  • 數據出口通過用戶名、密碼驗證,並設置 ip 白名單增強安全管控

例子中的雲數據庫、雲消息產品、自建數據庫等均可以替換成本身當前環境的自建資源或各類雲資源。docker

技術點

混合雲數據生態主要的難點在於 網絡安全 ,部分用戶由於傳輸同步數據較多,也比較在乎流量資源損耗。數據庫

基於 CloudCanal 實現的方案,更加關注 網絡安全 層面的問題,作到敏感資源 網絡單向隔離連接鑑權傳輸加密macos

下圖簡要示例了下 互聯網模式專線模式 數據上下雲。
截屏2021-08-04 下午7.48.27.png安全

舉個"栗子"

本文案例主要演示 互聯網模式 的跨雲數據遷移和同步,具體場景是如何進行數據上雲(自建機房數據庫-> 阿里云云數據庫),而且長期維持混合雲數據體系。固然,相同的方案也能夠反過來使用,只是在數據源選擇外網內網有所區別。微信

安裝 CloudCanal

準備 Kafka

  • 在阿里雲 Kafka 購買頁網絡

    購買相應的 Kafka , 驗證能力可先購買按量實例

    購買kafka_new.png

    • 注意選擇 公網/VPC實例,而且選擇稍大的公網流量
  • 部署實例請選擇 2.x.x 版本,最大消息大小 建議調整稍大些(好比 4MB)
    部署kafka.png

  • 進入實例,建立 Consumer Group,並記下名稱
    建立consumer_group.png

子帳號受權並添加數據源

  • 按照 阿里雲子帳號準備 文檔,建立或者受權子帳號,並記住子帳號 AK 和 SK , 請授予基本的數據庫訪問權限 AliyunRDSFullAccess,AliyunKafkaFullAccess
  • 分別添加雲下自建數據庫阿里雲 RDS for MySQL阿里雲 Kafka
    添加數據源.png
    • 添加阿里雲資源時,請在第二步選擇自動添加遷移機器白名單
    • Kafka 用戶名密碼能夠在 阿里雲 Kafka 實例詳情頁最底下安全配置處找到
    • TLS 文件請從 阿里雲Kafka根證書下載

開始造數據

  • 源端數據庫爲雲下自建數據庫,IUD 20:60:20, 1~2 KB/條數據, 每一個表 2~4 併發, 每一個事務 2~4 條變動, RPS 1000 左右。
    造數據.png

使用 CloudCanal 建立雲下數據同步任務

  • 選擇數據源,並選擇合適的選項

    建立雲下任務_1.png

    • 1 處請選擇雲下或自建集羣
    • 2 ,3 源端自建數據庫選擇內網,對端 Kafka 選擇公網
    • 4 處能夠選擇兼容 開源 Canal 消息格式,或自帶的 CloudCanal 消息格式
  • 選擇數據同步,並勾選初始化數據
    建立雲下任務_2.png

  • 選擇表,此處不要修改對端 topic,按照默認規則生成便可。
    建立雲下任務_3.png

  • 選擇列,能夠裁剪掉一部分列不進行遷移同步
    建立雲下任務_4.png

  • 建立確認

    建立雲下任務_5.png

  • 任務正常流轉運行中

    雲下任務運行中.png

使用 CloudCanal 建立雲上遷移同步任務

  • 選擇數據源,並選擇合適的選項

    建立雲上任務_1.png

    • 1 請選擇 ECS 上客戶端所在集羣
    • 2,3 都選擇內網分別訪問 Kafka 和 RDS for MySQL
    • 4 填寫以前在 Aliyun Kafka 控制檯建立的 Consumer Group
    • 5 選擇和雲下任務一致的消息格式
  • 中間略過表、列選擇,一路點擊下一步便可

  • 建立確認

    建立雲上任務_5.png

  • 二者任務正常運行中

    任務正常運行.png

  • 雲上消費任務建立由於是在雲下任務運行以後,因此須要將雲上消費任務位點回溯到雲下任務建立以前,以涵蓋所有數據。

    重置雲上任務位點_1.png

    重置雲上任務位點_2.png

校驗下數據

這次案例爲了校驗數據,咱們偷個懶,直接打開 RDS for MySQL 公網連接,用雲下 CloudCanal 集羣連接過來直接作一個數據校驗 (生產環境禁止!!!!)

  • 爲了讓校驗結果更加清晰,中止造數據

  • 申請 RDS for MySQL 公網地址,並修改 CloudCanal 數據源管理頁面對應實例的公網地址
    RDS開公網.png

  • 建立校驗任務

    建立數據校驗任務_1.png

    • 1 選擇雲下或本地集羣
    • 2 ,3 源端自建 MySQL 選擇內網訪問,目標端 RDS for MySQL 選擇外網訪問
  • 選擇任務類型爲數據校驗

    建立數據校驗任務_2.png

  • 中間略過表、列選擇,一路點擊便可

  • 建立確認

    建立數據校驗任務_5.png

  • 任務運行完畢,結果正確

    建立數據校驗任務_6.png

總結

本文簡要介紹如何使用 CloudCanal SAAS 能力快速構建一條安全、跨互聯網數據遷移同步方案。

此方案有如下特色:

  • 雙邊數據庫都不開公網端口
  • 互聯網數據通過 SSL 加密
  • 數據出口通過用戶名、密碼驗證,並設置 ip 白名單增強安全管控

若是小夥伴們以爲這篇分享還不錯,請轉發、點贊、試用(SAAS下載社區版)吧。
加入CloudCanal粉絲羣掌握一手消息和獲取更多福利,請添加咱們小助手微信:suhuayue001

CloudCanal-免費好用的企業級數據同步工具,歡迎品鑑。
瞭解更多產品能夠查看官方網站http://www.clougence.com
CloudCanal社區https://www.askcug.com/

相關文章
相關標籤/搜索