日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

MSE Sync遷移方案

MSE Sync是一款基于開源Nacos Sync項目深度定制和優化的數據同步工具,不僅具備雙向數據同步能力,還集成了自動服務發現與一鍵全量同步服務等高效功能。通過采用多實例部署架構,實現了高級別的容災備份機制,適用于在Nacos、Zookeeper以及Eureka等配置管理平臺之間進行平滑遷移的需求場景。

image

MSE Sync遷移介紹

MSE Sync遷移優勢

  • 可平滑遷移

    在遷移過程中,MSE Sync能使源集群的服務信息和MSE云上產品的服務信息保持同步,從而實現自建配置注冊中心和MSE產品之間的平滑遷移。

    圖片中的pub指服務發布者,sub指服務訂閱者。平滑遷移

  • 可多實例部署

    在服務同步的模式下支持多實例部署。多實例部署

    同步工具通過定時任務補償宕機節點同步的數據。在節點宕機之后,正常節點會通過定時任務補償因節點宕機丟失的數據。在節點宕機到定時任務執行之間的時間,客戶端會有短時的實例列表為空的情況,定時任務的時間間隔可以通過以下參數進行配置。此參數為JVM參數,可以通過JAVA_OPT環境變量進行指定。

    -Dmsesync.daemon.refresh.interval=60 // 單位為秒

    示例如下。

    JAVA_OPT="$JAVA_OPT -Dmsesync.deamon.refresh.interval=10"
    重要
    • 定時任務時間間隔默認為60秒,掃描間隔不宜設置過短,否則會造成服務端和同步節點壓力過大。具體時間設置需要根據集群負載和同步工具負載確定,建議值不要小于10秒。

    • 請勿在同步配置時進行多實例部署。

  • 操作簡易

    MSE Sync適配Zookeeper、Nacos和Eureka的服務注冊邏輯,能夠實現Zookeeper到Zookeeper、Zookeeper到Nacos、Nacos到Nacos和Eureka到Nacos的服務信息同步,并且支持從Zookeeper、Nacos和Eureka中自動獲取服務信息,一鍵全選避免繁瑣操作。適配注冊邏輯

支持的注冊中心類型

MSE Sync支持的同步實例類型如下。

原注冊中心類型

目標注冊中心類型

同步支持說明

Nacos

Nacos

Nacos原生服務類型。

ZooKeeper

Nacos

基于Curator實現的服務發現功能和Dubbo服務。

ZooKeeper

ZooKeeper

服務和持久化配置。

重要
  1. 使用MSE Sync遷移工具對ZooKeeper的數據節點進行同步時,源集群和目標集群不支持同時變更同一個Znode,否則寫入的數據在遷移過程中可能會丟失。請勿使用配置同步方式進行服務及臨時節點(ephemeral節點)同步。

  2. 同步工具同步持久化節點會向源集群注冊watch,每一個Znode都會注冊一個watch,因此在源集群節點較多時,同步會創建大量watch,會占用源集群過多內存,請確保源集群Znode數量以及集群配置是否支持同步工具進行變更監聽。

Eureka

Nacos

Eureka原生服務類型。

此同步實例類型需要將Nacos注冊的服務名小寫。因為Eureka默認注冊的服務名為大寫,但通過同步工具MSE Sync將服務同步到Nacos時,默認會將服務名轉換成小寫。如果原服務名中有大寫字母,同步到Nacos的服務可能不互通。

例如,服務Service-1注冊到Eureka的服務名是SERVICE-1,通過MSE Sync同步到Nacos的服務名是service-1,如果客戶端使用nacosSDK之后注冊到Nacos的服務名是Service-1,那么service-1和Service-1在Nacos中其實是兩個服務,即服務中的實例信息不互通,Nacos注冊的實例無法發現注冊到MSE Sync同步到Nacos上的實例。若將所有的服務名改成小寫,MSE Sync會將從Eureka同步的服務名轉化成小寫,這樣兩側服務就能夠互通了。

Consul

Nacos

Consul原生服務類型。

工具只同步健康的實例信息,元信息的變化同步工具目前不感知,因此元信息的變化不會被自動同步,并且目前同步工具不支持Consul配置信息的同步。

步驟一:部署MSE Sync遷移工具

重要

遷移工具需要連接到自建集群和MSE集群。請務必確保遷移工具部署在能夠訪問自建集群以及MSE集群的網絡環境中(同一VPC內或者能夠通過公網訪問自建集群和MSE集群),否則會導致遷移失敗。

部署模式

  • 依賴MySQL部署

    需要自行構建MySQL服務, 并創建具有讀寫權限的MSE Sync賬號和數據庫,通過環境變量傳入MySQL的URL、用戶名和密碼。多個MSE Sync可共享一個MySQL服務。

  • 依賴Derby部署

    MSE Sync支持內嵌Derby數據庫,可單機啟動。

環境變量

  • 數據庫相關環境變量

    MSE Sync通過環境變量自動判斷使用MySQL還是Derby依賴啟動,當MYSQL_URLMYSQL_USER_NAMEMYSQL_PASSWORD這幾個環境變量的取值都不為空時,MSE Sync才會通過給定環境連接MySQL服務啟動,其他情況下都通過依賴內嵌Derby數據庫進行啟動。

    環境變量名

    描述

    舉例

    MYSQL_URL

    MySQL的連接串。

    jdbc:mysql://localhost:3306/sync

    MYSQL_USER_NAME

    MSE Sync具有讀寫權限的賬戶用戶名。

    MYSQL_PASSWORD

    MYSQL_USER_NAME對應的密碼。

  • JVM相關環境變量

    在conf文件夾下的java.env文件中,通過JAVA_OPT變量添加JVM 參數。

    例如,通過代碼設置JVM堆內存大小,JAVA_OPT="$JAVA_OPT -Xms2048m -Xmx2048m"

部署方式

  • K8s部署

    1. 修改以下配置的MySQL用戶名、密碼和replicas等參數,保存配置文件為mse-sync-deployment.yaml

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        labels:
          app.kubernetes.io/name: mse-sync
        name: mse-sync-svc
      spec:
        replicas: 3
        selector:
          matchLabels:
            app.kubernetes.io/name: mse-sync
        template:
          metadata:
            labels:
              app.kubernetes.io/name: mse-sync
          spec:
            containers:
            - name: mse-sync
              image: msecrinstance-registry.cn-hangzhou.cr.aliyuncs.com/mse-demo/mse-sync:latest
              ports:
              - containerPort: 8000
              env:
              - name: MYSQL_URL
                value: "jdbc:mysql://192.xx.xx.xx:3306/sync"
              - name: MYSQL_USER_NAME
                value: "mse-sync"
              - name: MYSQL_PASSWORD
                value: password
      說明

      如果需要訪問MSE Sync UI,需要添加一個Service指向MSE Sync的8000端口。

    2. 執行以下命令,部署MSE Sync。

      kubectl apply -f mse-sync-deployment.yaml
  • ECS部署

    1. 下載MSE Sync的二進制包。

      curl https://msesync.oss-cn-hangzhou.aliyuncs.com/MseSync.zip --output msesync.zip
    2. 解壓二進制包,并進入MSE Sync的根目錄。

      unzip ./msesync.zip
    3. 可選:如需依賴MySQL,需要配置如下環境變量。

      export MYSQL_URL=""
      export MYSQL_USER_NAME=""
      export MYSQL_PASSWORD=""
    4. 啟動應用。

      ./MseSync/bin/startup.sh start

步驟二:配置集群信息和遷移任務

MSE Sync可以通過UI配置遷移任務,也可以通過配置文件的形式構建遷移任務。

  • 通過UI遷移任務

    打開MSE Sync工具,在左側導航欄,單擊服務同步,然后單擊導入配置,在導入配置對話框,輸入配置內容,單擊確定,完成配置導入。

  • 通過配置文件遷移任務

    1. 創建配置文件。本文提供如下YAML示例,自動同步src集群public、test兩個命名空間的所有服務到dst集群中,同步類型為服務信息同步,同步模式為雙向同步。

      配置項主要包含兩個字段,即clusterstasks,分別描述集群和同步任務信息。clusterstasks字段說明,請參見配置字段

      clusters:
        - clusterName: src
          connectKeyList:
            - mse-xxxxx-nacos-ans.mse.aliyuncs.com:8848
          clusterType: NACOS
          namespace: public,test
        - clusterName: dst
          connectKeyList:
            - mse-xxxxxx-nacos-ans.mse.aliyuncs.com:8848
          clusterType: NACOS
      
      tasks:
        - source: src
          destination: dst
          type: Service
          mode: Bidirectional
          serviceMatchPattern: ".*"
          autoScanAndAddService: true
    2. 執行以下命令導入配置。

      ./bin/msesyncCMD.sh apply -f {配置文件的路徑}
    3. 將配置文件掛載或者放置在MseSync/conf/config.yaml,并啟動MSE Sync。MSE Sync啟動會自動初始化配置文件,進行數據遷移。

    說明
    • 配置文件可通過在MSE控制臺的遷移上云頁面配置遷移任務而自動生成。

    • 通過配置導入的方式進行的同步功能,將實現對新增服務的自動同步。

配置字段

以下內容為List類型的clusterstasks字段說明。

Clusters字段說明

字段

說明

取值舉例

clusterName

集群名稱。

說明

配置中的集群名不可重復。

sourceCluster

clusterType

集群類型。

  • NACOS

  • ZOOKEEPER

  • EUREKA

  • CONSUL

namespace

Nacos namespace名稱。

說明

可以輸入多個,使用英文逗號分隔。

  • public

  • test

  • test1

connectKeyList

集群的接入Endpoint,類型為List。

connectKeyList:
- localhost:8848
- localhost1:8848

userName

Nacos用戶名。

password

Nacos密碼。

ak

MSE Nacos RAM鑒權具有讀寫權限子賬號的AccessKey。

sk

AccessKey對應的SecretKey。

Tasks字段說明

字段

說明

取值舉例

source

源集群名。

無。

destination

目標集群名。

目標集群的命名空間自動和源集群保持一致,如果目標集群中不存在對應的命名空間,MSE Sync會自動創建。

type

同步類型。

  • Service(服務同步)。

  • Config(配置同步,支持Nacos和ZooKeeper進行配置同步)。

  • All(根據原集群類型自動創建服務和配置同步任務)。

mode

同步模式。

  • Unidirectional (單向同步):只會將原生注冊的服務信息從源集群同步到目標集群。

  • Bidirectional(雙向同步):能夠實現源集群和目標集群之間原生注冊的服務信息的雙向同步。

serviceMatchPattern

需要同步的服務的正則匹配表達式。

默認同步所有服務。

autoScanAndAddService

是否自動掃描并同步源集群中新增加的服務。

默認為True。