国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

DBmotion全量遷移容器集合:Docker Compose部署實戰(zhàn)指南

DBmotion全量遷移容器集合:Docker Compose部署實戰(zhàn)指南 簡介面向部署數(shù)據(jù)庫遷移工具的開發(fā)與運維人員這份容器鏡像集合將遷移引擎、代理服務(wù)、監(jiān)控告警、可視化界面等組件打包為可一鍵編排的部署方案。包內(nèi)共十一個文件包含十個gz格式的容器鏡像包和一個YAML編排文件整體大小約七百三十八兆。鏡像覆蓋數(shù)據(jù)庫、消息代理、監(jiān)控、可視化等核心服務(wù)配合編排文件執(zhí)行單條命令即可批量啟動所有依賴組件省去手工配置網(wǎng)絡(luò)、卷掛載與環(huán)境變量的繁瑣步驟。對于需要快速搭建數(shù)據(jù)庫同步或遷移環(huán)境的技術(shù)團隊該資源能顯著縮短環(huán)境準備時間并借助監(jiān)控與可視化組件獲得清晰的運行狀態(tài)視圖。目前已有四十八人學習下載適合具備基礎(chǔ)容器使用經(jīng)驗、希望直接復用現(xiàn)成編排方案的讀者。1. 為什么說 DBmotion 的全量遷移先從一份容器集合開始做數(shù)據(jù)遷移的人應(yīng)該都有這種體會真正耗時間的往往不是遷移任務(wù)本身而是把源端、采集端、傳輸通道、目標端這一整套依賴環(huán)境湊齊。DBmotion 這類遷移工具雖然把同步邏輯封裝得很好但它的全量遷移鏈路里ZooKeeper、Kafka、etcd、采集與寫入服務(wù)一個都少不了。手動一個個裝、一個個調(diào)半天過去了還沒開始遷移數(shù)據(jù)。所謂“DBmotion 全量所需要容器集合包含可執(zhí)行的 docker-compose.yaml”就是把這條鏈路里的每個環(huán)節(jié)都做成容器用一份 docker-compose 編排文件一次性拉起來。適合兩種人一是想快速評估 DBmotion 遷移效果、不想在環(huán)境搭建上花太多時間的開發(fā)者二是要給客戶或內(nèi)部環(huán)境交付遷移方案需要一套可復現(xiàn)、可移植的部署模板。這篇文章按我實際搭建這套環(huán)境的順序把容器集合怎么設(shè)計、compose 文件怎么寫、參數(shù)怎么調(diào)、哪些坑必踩一次講清楚。2. 拆開 DBmotion 的容器集合每個容器解決遷移鏈路里的哪個環(huán)節(jié)2.1 一條全量遷移鏈路里哪些組件是不能省的DBmotion 做全量遷移簡單說就是“讀源庫 → 傳輸 → 寫目標庫”。但中間為了保證數(shù)據(jù)不丟、順序不亂、斷點能續(xù)引入了一組支撐組件。我最早做模擬項目X的時候就想著精簡只起源端和目標端兩個容器結(jié)果根本跑不通。后來把鏈路理清楚才發(fā)現(xiàn)下面這些角色各有各的活誰也替不了誰。源端數(shù)據(jù)庫容器承擔“數(shù)據(jù)從哪來”的角色。全量遷移要驗證數(shù)據(jù)一致性沒有真實的源庫實例后面所有環(huán)節(jié)都是空轉(zhuǎn)。我一般用 MySQL 或 PostgreSQL 的官方鏡像直接掛初始化腳本造數(shù)據(jù)。采集端容器是 DBmotion 里干累活的。它連上源庫把全量數(shù)據(jù)按表讀出來轉(zhuǎn)成統(tǒng)一的消息格式發(fā)到 Kafka。這個角色通常對應(yīng) DBmotion 的采集服務(wù)如果只是做功能驗證可以用輕量模擬程序代替但正式評估時必須用真實的采集節(jié)點。Kafka 是核心傳輸通道。全量數(shù)據(jù)量大采集端不可能直接往目標庫灌那樣源庫和目標庫會互相拖垮。Kafka 在這里相當于一個高速緩沖帶采集端只管往里面寫寫入端只管從里面讀兩者解耦。Kafka 本身依賴 ZooKeeper 做元數(shù)據(jù)管理所以 ZooKeeper 容器成了隱藏的必需項。etcd 管的是遷移任務(wù)的元數(shù)據(jù)。哪些表遷移完了、遷移到哪個偏移量了、任務(wù)當前什么狀態(tài)這些都存在 etcd 里。沒有它斷點續(xù)傳就是空話。最后是寫入端容器它消費 Kafka 里的數(shù)據(jù)把全量數(shù)據(jù)按目標庫的方言寫入同時往 etcd 上報進度。這么一拆就很清楚了源端、采集端、Kafka、ZooKeeper、etcd、寫入端、目標端七個角色缺一個鏈路就斷。我見過有人想把 ZooKeeper 省掉直接連 Kafka只能說那是給自己挖坑。2.2 為什么用 ZooKeeper Kafka etcd 三件套而不是單機版很多人第一次看到這套組合會問都是存元數(shù)據(jù)為什么 Kafka 要配 ZooKeeperDBmotion 自己又要一個 etcd這倆不能合并嗎答案是職責不同。Kafka 用 ZooKeeper 存的是 broker 列表、分區(qū)分配、消費者組偏移量這些“消息系統(tǒng)自己的狀態(tài)”。Kafka 的歷史版本把 ZooKeeper 當成硬依賴雖然新版本在做 KRaft 模式去 ZooKeeper但 DBmotion 官方鏈路默認還是走 ZooKeeper 的方式實盤驗證時扯皮最少。我自己試過 KRaft 模式不是說不行而是排查問題時社區(qū)資料少一旦出狀況很難判斷是 DBmotion 的問題還是 Kafka 自身的問題。etcd 管的是遷移任務(wù)級別的元數(shù)據(jù)比如哪個表遷移到哪條記錄了。這不是 Kafka 的分區(qū)偏移量是業(yè)務(wù)數(shù)據(jù)在遷移管道里的進度。如果硬塞進 Kafka 的 topic 里任務(wù)一旦重建歷史偏移量會污染新任務(wù)。所以這套“三件套”不是重復造輪子而是各自守住各自的邊界。ZooKeeper 守消息系統(tǒng)etcd 守遷移任務(wù)。明白了這一點編排容器時就能理解為什么每個服務(wù)都要獨立部署而不是圖省事塞進同一個容器里。進程混在一起日志、重啟、擴容全都互相干擾全量遷移跑到一半某個組件掛了排查起來想死的心都有。2.3 容器集合的拓撲與端口規(guī)劃我把整套容器集合的拓撲固定成了一張表每次搭新環(huán)境直接照著抄。拓撲上分為三層數(shù)據(jù)層、傳輸層、任務(wù)層。數(shù)據(jù)層是源端和目標端數(shù)據(jù)庫傳輸層是 Kafka 加 ZooKeeper任務(wù)層是采集端、寫入端和 etcd。DBmotion 本身的管理端如果有放在任務(wù)層最上面負責下發(fā)任務(wù)和查看狀態(tài)。服務(wù)鏡像類型默認端口數(shù)據(jù)持久化職責source-dbMySQL/PostgreSQL 官方鏡像3306/5432是初始化腳本掛載全量數(shù)據(jù)來源target-db目標數(shù)據(jù)庫官方鏡像3306/5432是全量數(shù)據(jù)寫入目標zookeeperZooKeeper 官方鏡像2181是dataDir 掛載Kafka 元數(shù)據(jù)存儲kafkaKafka 官方鏡像9092是log.dirs 掛載全量數(shù)據(jù)傳輸通道etcdetcd 官方鏡像2379, 2380是data 目錄掛載遷移任務(wù)進度/狀態(tài)dbmotion-collectorDBmotion 采集端鏡像無外部端口否讀源庫寫 Kafkadbmotion-writerDBmotion 寫入端鏡像無外部端口否讀 Kafka寫目標庫端口規(guī)劃有個原則只有需要被外部訪問的服務(wù)才映射到宿主機服務(wù)間通信用 Docker 內(nèi)部網(wǎng)絡(luò)。Kafka 比較特殊因為客戶端采集端、寫入端跑在別的容器里Kafka 自己的 advertised.listeners 必須配成容器網(wǎng)絡(luò)內(nèi)的地址否則會踩“容器里連不上 Kafka”的經(jīng)典大坑。這一點后面專門講。etcd 的 2380 是集群內(nèi)部 peer 通信用的單節(jié)點部署不需要映射到宿主機2379 看需要再決定要不要暴露。3. 寫一份可執(zhí)行的 docker-compose.yaml部署模型與關(guān)鍵參數(shù)3.1 先從 compose 文件結(jié)構(gòu)入手網(wǎng)絡(luò)、卷、服務(wù)三段式一份可執(zhí)行的 compose 文件結(jié)構(gòu)上分三塊networks 定義容器間通信網(wǎng)絡(luò)volumes 定義持久化存儲services 定義每個容器。全量遷移的場景里容器之間都是“服務(wù)發(fā)現(xiàn)”的關(guān)系——采集端通過 etcd 找任務(wù)通過 Kafka 發(fā)數(shù)據(jù)寫入端從 Kafka 拉數(shù)據(jù)。所以網(wǎng)絡(luò)必須用自定義 bridge 網(wǎng)絡(luò)而不是默認的 default 網(wǎng)絡(luò)這樣才能用服務(wù)名互相訪問。下面是我整理出來的精簡版文件框架。注意 source-db 和 target-db 的初始化腳本我用的是掛載目錄而不是鏡像內(nèi)嵌這樣換表結(jié)構(gòu)、換數(shù)據(jù)都不用重新 build 鏡像。version: 3.8 networks: dbmotion-net: driver: bridge ipam: config: - subnet: 172.28.0.0/16 volumes: zk-data: kafka-data: etcd-data: source-db-data: target-db-data: services: zookeeper: image: zookeeper:3.8 container_name: dbmotion-zookeeper networks: dbmotion-net: ipv4_address: 172.28.0.10 ports: - 2181:2181 volumes: - zk-data:/data - ./zk-conf:/conf environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1zookeeper:2888:3888;2181 healthcheck: test: [CMD, zkServer.sh, status] interval: 10s timeout: 5s retries: 5network 指定了固定子網(wǎng)和固定 IP。這個做法在 compose 里不是必須的但配合 healthcheck 和 depends_on 的 condition 時服務(wù)名解析穩(wěn)定排查網(wǎng)絡(luò)問題也少一層干擾。volumes 全部用 named volume而不是 bind mount 到宿主機目錄原因是遷移環(huán)境經(jīng)常要在不同機器之間搬named volume 隨 compose 項目走不會被宿主機路徑差異絆倒。zookeeper 這里指定了 ZOO_MY_ID 和 ZOO_SERVERS。單節(jié)點時 ZOO_MY_ID 寫 1 就行ZOO_SERVERS 的格式是 server.1主機名:2888:3888;21812888 是 Leader 選舉端口3888 是集群內(nèi)通信端口。單節(jié)點不涉及選舉但配全了以后想擴成三節(jié)點集群只需再追加 server.2 和 server.3不用改其他配置。healthcheck 用的是 zkServer.sh status這條命令在容器里返回 0 表示服務(wù)健康。3.2 中間件服務(wù)的參數(shù)陷阱Kafka 的 advertised.listeners 與健康檢查Kafka 是這套容器集合里最容易翻車的服務(wù)沒有之一。官方鏡像默認的 listener 配置只對宿主機訪問友好容器內(nèi)其他服務(wù)通過服務(wù)名訪問時Kafka 返回的 broker 地址是容器 ID客戶端拿著這個地址去連必然超時。這就是業(yè)界說的“Kafka 容器網(wǎng)絡(luò)黑匣子”問題。解決辦法是在 environment 里顯式指定三組 listenerPLAINTEXT 負責容器內(nèi)通信EXTERNAL 負責宿主機訪問CONTROLLER 是給新版本 Kafka 用的。advertised.listeners 必須寫成服務(wù)名 kafka:9092而不是 localhost 或宿主機 IP。如果寫 127.0.0.1采集容器里的客戶端能連上 broker但 broker 返回的元數(shù)據(jù)里寫的地址還是 127.0.0.1客戶端拿這個地址根本路由不到 Kafka 容器。kafka: image: bitnami/kafka:3.4 container_name: dbmotion-kafka networks: dbmotion-net: ipv4_address: 172.28.0.11 ports: - 9092:9092 volumes: - kafka-data:/bitnami/kafka environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: broker,controller KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1kafka:9093 KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: true KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR: 1 ALLOW_PLAINTEXT_LISTENER: yes KAFKA_HEAP_OPTS: -Xmx512m -Xms256m healthcheck: test: [CMD, kafka-topics.sh, --bootstrap-server, localhost:9092, --list] interval: 15s timeout: 10s retries: 5 start_period: 30s這里用的是 bitnami 鏡像環(huán)境變量前綴 KAFKA_CFG_ 是 bitnami 的封裝規(guī)范和 Apache 官方鏡像的 KAFKA_ 前綴不一樣。選 bitnami 的原因是其健康檢查腳本更完整kafka-topics.sh --list 能真實反映 broker 是否對外可用而 Apache 鏡像默認的 healthcheck 經(jīng)常只是檢查進程在不在。KAFKA_CFG_PROCESS_ROLES 寫成 broker,controller 是讓單節(jié)點同時承擔 broker 和 controller 職責。全量遷移的最小環(huán)境不需要獨立的 KRaft controller 節(jié)點。副本因子全部設(shè)成 1因為單節(jié)點 Kafka 上不允許配大于 1 的副本因子這個參數(shù)不影響遷移正確性但能避免一堆 “Replication factor is larger than available brokers” 的報錯刷屏。KAFKA_HEAP_OPTS 限制 JVM 內(nèi)存后面避坑章節(jié)專門講內(nèi)存問題。etcd 的配置相對清爽主要注意 client 端口和 peer 端口的區(qū)分。etcd: image: quay.io/coreos/etcd:v3.5.5 container_name: dbmotion-etcd networks: dbmotion-net: ipv4_address: 172.28.0.12 ports: - 2379:2379 volumes: - etcd-data:/etcd-data command: - /usr/local/bin/etcd - --nameetcd0 - --data-dir/etcd-data - --advertise-client-urlshttp://etcd:2379 - --listen-client-urlshttp://0.0.0.0:2379 - --listen-peer-urlshttp://0.0.0.0:2380 - --initial-advertise-peer-urlshttp://etcd:2380 - --initial-clusteretcd0http://etcd:2380 - --initial-cluster-statenew healthcheck: test: [CMD, etcdctl, endpoint, health] interval: 10s timeout: 5s retries: 5advertise-client-urls 寫容器服務(wù)名 etcd 而不是 IP這樣 DBmotion 寫入端的容器不管調(diào)度到哪個網(wǎng)絡(luò)位置都能通過服務(wù)名穩(wěn)定訪問。initial-cluster-state 必須寫 new如果寫 existingetcd 會去找舊集群狀態(tài)單節(jié)點場景下會一直卡在等待集群就緒。3.3 DBmotion 相關(guān)服務(wù)的啟動順序與 depends_on 的正確用法容器編排里啟動順序是個老生常談但永遠有人踩坑的問題。DBmotion 采集端啟動時必須能連上 etcd 和 Kafka寫入端必須能連上 Kafka 和 etcd而 Kafka 又要等 ZooKeeper 就緒。這些依賴如果用默認的 depends_ondocker compose 只保證“先啟動”不保證“真就緒”采集端大概率在 Kafka 還在初始化時就嘗試連接然后崩潰退出。容器退出后 compose 不會自動重啟整套環(huán)境就癱在那里。正確做法是 depends_on 配 condition: service_healthy再配合每個中間件的 healthcheck。compose 會先啟動依賴服務(wù)等 healthcheck 通過后才啟動下游服務(wù)。dbmotion-collector: image: dbmotion-collector:latest container_name: dbmotion-collector networks: dbmotion-net: ipv4_address: 172.28.0.20 depends_on: kafka: condition: service_healthy etcd: condition: service_healthy environment: DBMOTION_ROLE: collector DBMOTION_ETCD_ENDPOINTS: http://etcd:2379 DBMOTION_KAFKA_BOOTSTRAP: kafka:9092 DBMOTION_SOURCE_DSN: root:sourcepasstcp(source-db:3306)/migration_db?charsetutf8mb4 command: [/app/dbmotion-collector, --config, /etc/dbmotion/collector.yaml] dbmotion-writer: image: dbmotion-writer:latest container_name: dbmotion-writer networks: dbmotion-net: ipv4_address: 172.28.0.21 depends_on: kafka: condition: service_healthy etcd: condition: service_healthy environment: DBMOTION_ROLE: writer DBMOTION_ETCD_ENDPOINTS: http://etcd:2379 DBMOTION_KAFKA_BOOTSTRAP: kafka:9092 DBMOTION_TARGET_DSN: root:targetpasstcp(target-db:3306)/migration_target?charsetutf8mb4 command: [/app/dbmotion-writer, --config, /etc/dbmotion/writer.yaml]DBMOTION_SOURCE_DSN 和 DBMOTION_TARGET_DSN 里的主機名全部寫服務(wù)名tcp(source-db:3306) 這種格式是 Go 語言數(shù)據(jù)庫驅(qū)動的標準寫法。這里有個容易忽略的點source-db 和 target-db 這兩個容器本身也要配 healthcheck否則 depends_on 里如果加了它們condition 會檢查不到健康狀態(tài)而一直等待。MySQL 鏡像的 healthcheck 建議用 mysqladmin pingPostgreSQL 用 pg_isready。啟動順序變長了以后整套環(huán)境冷啟動可能要等 1 到 2 分鐘這不是卡死是中間件在做初始化。后面加了一個 start_period 參數(shù)專門解決“啟動慢被 healthcheck 誤殺”的問題。采集端和寫入端的鏡像這里用 dbmotion-collector:latest 指代實際使用時換成你自己的鏡像名。4. 把容器集合跑起來從 docker compose up 到第一個遷移任務(wù)4.1 啟動前檢查端口沖突、內(nèi)存預(yù)算、鏡像源啟動之前有三次檢查能幫你省掉后面至少兩個小時的排查時間。第一次檢查端口沖突。2181、9092、2379 這三個端口是中間件默認端口本機如果已經(jīng)跑著別的 ZooKeeper、Kafka 或 etcdcompose 起服務(wù)時會直接報 bind: address already in use。檢查命令很簡單lsof -i :2181 -i :9092 -i :2379有輸出說明端口被占了。解決方式有兩個關(guān)掉宿主機的舊服務(wù)或者在 compose 文件里改 ports 映射的宿主機側(cè)端口比如把 Kafka 改成 19092:9092。要注意改宿主機側(cè)端口不影響容器間通過服務(wù)名訪問因為容器間走的是 9092 這個容器內(nèi)端口。第二次檢查內(nèi)存預(yù)算。Kafka 默認的 JVM 堆上限是 1G加上 ZooKeeper、etcd、兩個數(shù)據(jù)庫實例整套環(huán)境冷啟動大概需要 3 到 4G 可用內(nèi)存。如果機器只有 2GKafka 會頻繁 Full GC然后被 healthcheck 判死compose 就會反復重啟它日志里全是內(nèi)存溢出。建議在 compose 里給 Kafka 顯式限制 KAFKA_HEAP_OPTS給 MySQL/PostgreSQL 用 shm_size 控制共享內(nèi)存。第三次檢查鏡像源。DBmotion 相關(guān)鏡像如果是私有倉庫docker compose 不會自動登錄需要先手動 docker login。ZooKeeper、Kafka、etcd 這幾個中間件鏡像建議提前 docker pull 到本地免得 compose up 時才開始拉一旦網(wǎng)絡(luò)不穩(wěn)定整個環(huán)境起得斷斷續(xù)續(xù)。4.2 啟動整套環(huán)境與驗證每個容器狀態(tài)檢查做完就可以啟動了。我習慣用后臺模式啟動然后把日志輸出到文件方便后面排查。docker compose up -d這個命令會按依賴順序依次啟動所有容器。等第一次執(zhí)行完別急著配遷移任務(wù)先花 30 秒確認每個容器都進入了 healthy 狀態(tài)docker compose ps輸出里每個服務(wù)對應(yīng)一行STATUS 列應(yīng)該有 healthy 字樣。這一步非常重要因為采集端和寫入端的啟動依賴于 Kafka 和 etcd 健康如果中間件還處于 starting下游容器會卡在等待狀態(tài)??吹?unhealthy 的容器立即看它的日志docker compose logs -f kafka docker compose logs -f etcd日志出現(xiàn)的常見關(guān)鍵字也有套路。ZooKeeper 日志里出現(xiàn) bind to port 2181 說明監(jiān)聽成功Kafka 日志里出現(xiàn) [KafkaRaftServer nodeId1] Started 說明 KRaft 模式啟動完成etcd 日志出現(xiàn) serving insecure client requests on 0.0.0.0:2379 說明客戶端接口可用。如果等了兩分鐘這些關(guān)鍵字還沒出現(xiàn)基本可以斷定配置有問題而不是啟動慢。所有容器都 healthy 之后再驗證一下容器間的網(wǎng)絡(luò)連通性。我一般會進入采集端容器里用內(nèi)置工具測試到 Kafka 和 etcd 的連通性docker exec -it dbmotion-collector bash # 在容器內(nèi)執(zhí)行 curl http://etcd:2379/health # 期望輸出 {health:true} kafka-topics.sh --bootstrap-server kafka:9092 --list # 期望輸出不報錯哪怕沒有 topic這一步驗證的是服務(wù)名解析和端口連通。curl 輸出 health true 說明 etcd 正常kafka-topics.sh 能連上說明 Kafka 的 advertised.listeners 配置生效了。如果這兩步有一處失敗不要繼續(xù)往下配任務(wù)先回頭改配置。4.3 跑通一個最小全量遷移任務(wù)環(huán)境就緒后遷移任務(wù)本身怎么下發(fā)DBmotion 的做法是通過 etcd 寫入任務(wù)配置采集端和寫入端監(jiān)聽 etcd 的變化然后開始干活。所以我需要往 etcd 里寫入一個最小的遷移任務(wù)配置。任務(wù)配置的核心內(nèi)容包括源庫連接信息、目標庫連接信息、要遷移的表列表、Kafka topic 名稱。docker exec -it dbmotion-etcd etcdctl put /dbmotion/tasks/task001 { name: full_migration_demo, source: root:sourcepasstcp(source-db:3306)/migration_db, target: root:targetpasstcp(target-db:3306)/migration_target, tables: [users, orders], kafka_topic: dbmotion-full-001, mode: full, batch_size: 1000 }這段配置我一般在源庫和目標庫里都先建好同名表再填到 etcd。batch_size 控制每個批次寫入的記錄數(shù)設(shè) 1000 是保守值主要考慮目標庫寫入性能和 Kafka 消息大小。模式寫成 full表示只做全量遷移不做增量同步。字段名和結(jié)構(gòu)按實際 DBmotion 版本可能略有差異但核心信息就是這四類兩端連接、表清單、通道、批大小。任務(wù)寫進去之后采集端監(jiān)聽到配置變化會去源庫讀數(shù)據(jù)然后發(fā)到 Kafka寫入端從 Kafka 拉數(shù)據(jù)寫入目標庫。整個過程中可以通過 etcd 查看任務(wù)進度docker exec -it dbmotion-etcd etcdctl get /dbmotion/tasks/task001/status看到 status 字段變成 finished 或 done說明全量遷移跑完了。這時進目標庫查一下數(shù)據(jù)量docker exec -it dbmotion-target-db mysql -uroot -ptargetpass -e SELECT COUNT(*) FROM migration_target.users;如果和目標庫源表行數(shù)一致第一個全量遷移任務(wù)就算通了。第一次跑通的意義不在于遷移了多大數(shù)據(jù)量而在于驗證了從容器集合到任務(wù)下發(fā)的整條鏈路是通的后續(xù)換真實庫、加表、調(diào)并發(fā)都在這條鏈路上迭代。5. 容器集合落地避坑五個最容易翻車的點5.1 Kafka 容器起來了客戶端卻連不上現(xiàn)象docker compose ps 顯示 Kafka 是 healthy但采集端容器日志里反復報 connection refused 或者 timeoutKafka 的 topic 列表也拉取失敗。原因絕大多數(shù)情況是 advertised.listeners 配置不對。Kafka 容器對外廣播的地址寫成了 localhost 或 127.0.0.1容器內(nèi)的采集端拿到這個地址后嘗試連自己自然連不上。我見過有人排查了一下午最后發(fā)現(xiàn)是 KAFKA_CFG_ADVERTISED_LISTENERS 漏了 KAFKA_CFG_ 前綴導致配置根本沒生效。 解決把 advertised.listeners 顯式寫成 PLAINTEXT://kafka:9092注意主機名必須和 compose 服務(wù)名一致。改完之后重啟 Kafka 容器然后進入采集端容器里執(zhí)行 kafka-topics.sh --bootstrap-server kafka:9092 --list 驗證。改完配置不重啟、只看 docker inspect 里的 Environment 字段是不會生效的。5.2 depends_on 直接寫服務(wù)名下游容器還是崩潰退出現(xiàn)象dbmotion-collector 容器啟動后立即退出日志顯示連接 etcd 超時或 Kafka 未就緒但 Kafka 容器明明是 running。原因depends_on 只保證服務(wù)啟動先后順序不保證服務(wù)內(nèi)部就緒。Kafka 容器進程起來了但 broker 還在加載磁盤里的日志、注冊 controller這個窗口可能持續(xù)幾十秒。采集端這個時候去連必然失敗。容器退出之后 compose 不會自動拉起它所以整個環(huán)境就靜默地“半死”了。 解決depends_on 里加上 condition: service_healthy然后給 Kafka 和 etcd 都配上真正的 healthcheck。注意 Kafka 的 healthcheck 不要用 telnet 端口要用 kafka-topics.sh --list因為端口通了不代表 broker 完成注冊。這是一個很典型的“玄學問題”其實不是玄學是就緒語義沒搞清。5.3 etcd 容器啟動失敗名叫“permission denied”現(xiàn)象docker compose up 時 etcd 容器反復重啟日志里出現(xiàn) mkdir /etcd-data: permission denied。原因etcd 官方鏡像里的進程默認以非 root 用戶運行而掛載進來的 named volume 初始所有權(quán)是 root。容器用戶沒有寫權(quán)限etcd 建不了數(shù)據(jù)目錄。這個坑在大部分 Linux 發(fā)行版上都會踩macOS 上因為 Docker Desktop 的特殊權(quán)限模型可能不觸發(fā)反而增加了迷惑性。 解決最簡單的方式是在 compose 的 etcd 服務(wù)里加 user: 0:0 強制以 root 運行或者用初始化容器預(yù)先 chown 數(shù)據(jù)目錄。生產(chǎn)環(huán)境建議用初始化容器本地評估可以直接加 user。改完記得 docker compose down -v 把舊的卷刪掉重建否則權(quán)限修復不會套用到已創(chuàng)建的卷上。5.4 整套環(huán)境跑著跑著某個容器被系統(tǒng)殺掉現(xiàn)象遷移任務(wù)跑到一半Kafka 或兩個數(shù)據(jù)庫容器突然消失docker compose ps 里看不到系統(tǒng)日志里出現(xiàn) oom-kill 記錄。原因宿主機內(nèi)存被占滿。Kafka 默認的 JVM 堆內(nèi)存上限是 1G加上 ZooKeeper、etcd、兩個數(shù)據(jù)庫實例再算上 Docker 本身的開銷2G 內(nèi)存的機器根本扛不住。系統(tǒng) OOM killer 會優(yōu)先殺掉內(nèi)存占用最大的進程Kafka 首當其沖。 解決在 compose 里給每個服務(wù)加 mem_limitKafka 設(shè) 512mZooKeeper 設(shè) 256metcd 設(shè) 256m數(shù)據(jù)庫各自設(shè) 512m。同時給 Kafka 設(shè)置 KAFKA_HEAP_OPTS 為 -Xmx512m -Xms256m讓 JVM 在容器內(nèi)存限制之內(nèi)運行。壓內(nèi)存之前先用 docker stats 看實時占用確定是誰在吃內(nèi)存。5.5 數(shù)據(jù)“丟了”重啟后源庫或目標庫是空的現(xiàn)象整套環(huán)境重啟之后遷移任務(wù)的任務(wù)還在但目標庫里的數(shù)據(jù)沒了有時候源庫的初始化數(shù)據(jù)也沒了。原因數(shù)據(jù)庫容器雖然掛了 volumes但掛的是匿名卷或沒掛卷。compose down 的時候如果沒加 -v匿名卷會保留但 docker compose down -v 會把匿名卷一起刪掉。更隱蔽的場景是鏡像自帶的數(shù)據(jù)目錄路徑和你在 volumes 里掛載的容器內(nèi)路徑不一致比如 MySQL 鏡像的數(shù)據(jù)目錄是 /var/lib/mysql你掛成了 /var/lib/mysql/data卷里存了文件但 MySQL 根本不認識啟動時生成一個空的數(shù)據(jù)目錄看起來就是“數(shù)據(jù)丟了”。 解決先確認鏡像文檔里的數(shù)據(jù)目錄路徑。MySQL 官方鏡像是 /var/lib/mysqlPostgreSQL 是 /var/lib/postgresql/dataetcd 的路徑通過 --data-dir 參數(shù)自己指定。compose 里 volumes 的容器側(cè)路徑必須和實際數(shù)據(jù)目錄完全一致。養(yǎng)成一個好習慣改動環(huán)境之前先 docker compose down不要直接 docker compose down -v-v 是刪除數(shù)據(jù)卷的操作沒有后悔藥。6. 讓這套容器集合更順手參數(shù)化模板與多環(huán)境復用容器集合能跑通只是第一步第二步是讓它能復用。我最常用的是 .env 配合 compose 變量替換。把端口、密碼、數(shù)據(jù)目錄這些環(huán)境相關(guān)的值抽到 .env 文件里compose 文件本身保持一份不動。# .env 示例 SOURCE_DB_PORT3306 TARGET_DB_PORT3307 MYSQL_ROOT_PASSWORDsourcepass TARGET_MYSQL_ROOT_PASSWORDtargetpass KAFKA_PORT9092compose 文件里用 ${MYSQL_ROOT_PASSWORD} 引用這些變量。這樣同一份 compose 文件開發(fā)環(huán)境、測試環(huán)境、客戶現(xiàn)場只要改 .env 就能遷移不用動 YAML 本身。變量替換是 compose 原生的能力不需要額外工具。數(shù)據(jù)校驗是另一個值得養(yǎng)成的習慣。全量遷移結(jié)束只對比行數(shù)遠遠不夠。行數(shù)一樣但內(nèi)容對不上比如字符集編碼問題、時區(qū)轉(zhuǎn)換問題、浮點數(shù)精度問題都會讓遷移“成功但錯誤”。我一般用一個簡單的校驗?zāi)_本把源表和目標表按主鍵排序后做哈希對比docker exec source-db mysql -e SELECT CRC32(GROUP_CONCAT(col1, col2, col3 ORDER BY id)) FROM users; docker exec target-db mysql -e SELECT CRC32(GROUP_CONCAT(col1, col2, col3 ORDER BY id)) FROM users;兩邊的 CRC32 值一致說明這批數(shù)據(jù)內(nèi)容層面也對上了。不一致時把排序后的主鍵列表導出做 diff就能定位到具體哪一行差異。這個校驗方法簡單直接不用引入額外的工具鏈。這套容器集合做到現(xiàn)在這個程度我最大的教訓是不要因為追求“環(huán)境小”而閹割依賴組件。最早我為了省內(nèi)存把 ZooKeeper 換成嵌入式模式把 etcd 塞進采集端進程里結(jié)果每次排查問題都要先懷疑自己改過的地方反而浪費更多時間。按標準鏈路把容器集合完整拉起來雖然占資源多一點但每一步行為和線上行為一致驗證出來的結(jié)論才作數(shù)。希望這篇筆記能幫你把環(huán)境搭建這一步真正省下來把精力留給遷移任務(wù)本身。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97精品免费视频网站| 国产辣妈在线视频福利| 欧美草草高清日韩视频| 国产高潮AA片免费看| 国产福利夜| 天天日天天干天天摸天天操| 欧美精品久久久久久久久88| 国产AV人人 夜夜人人澡| 四虎在线视频| 九九黄色视频在线观看| 国产亚洲深夜激情| www.婷婷| 啊啊啊啊操死我| 亚洲最大无码中文字幕网站| 欧亚韩国999| 青草草免费网站av| 二对二中文字幕。| 国产一区二区欧美日本| 精品无码久久久久| 亚洲AV噜噜狠狠网址蜜桃动漫| 亚洲日韩肥臀视频在线观看| 亚州性色| 久久久9品一区二区三区| 骚货 中文字幕 av| 韩国一级做A片免费的| 日本九九久久99| 麻豆视频国产一区二区| 久久久不卡区一区二区三区久久久| 欧美黄色手机在线观看| 天天欧美色| 久久午夜神马| 日产狠狠干| AV有码在线| 一区二区三区欧美激情| 极品色综合| 色蜜AV| 97伊人网| 亚洲欧美天堂在线| 亚洲天堂一区二区久久| 鸥美极品| 日韩精品1区2区中文字幕| 色哟哟-国产专区| 美女诱惑一区| 狠狠干精品一二三四五六2022| 国产偷拍网站| 啊啊啊啊啊啊啊啊啊啊在线观看| 欧美黄色大片在线观看 | 亚洲色图尤物视频| 日本中文字幕一区| 国产一区二区三区影片| 爱爱啊啊啊| 1二区9| 91精品国产91久久福利| 中文在线久久字幕| av一区二区三区 中文| 欧美日韩精品久久久久东北老熟妇| 欧美 亚洲 偷拍自拍| 91天天综合日韩欧美| 亚洲综合码| 国产精品毛片?v一区二区三区| 欧美影音在线| 无码99| 久久久久亚洲AV无码专区少妇| 欧美激情久久久久| 欧美熟爽综合| 亚洲一区中文字幕一区| 一本色道综合久久欧美| 国产精品乱码久久久、久久| 久久伊人在线五区| 欧美一级黄色18片免费看| 四虎AV在线播放| 好淫网一二三视区| 黄色香蕉视频网站一区| 国产97色在线| 蜜汁欧美| 日韩电影天堂视频一区二区| 韩国黄色片精品久久久| 欧美人人操人人插| 免费视频一二三区| 欧美综合色,www| 2025亚洲男人天堂| 午夜福利久久久噜久噜久久综合| 97视频在线观看播放与子乱对白在线……| 色汉综合| 日韩特一级久久| yirendaxiangjiashipin| 91精品久久久久久77777| 久久久爆乳翘臀一线天伦理视频| 久久亚洲色图中文字幕| 免费精品无码一级毛片牛牛影视 | 手机看片日韩人妻| 91麻豆va国产精品| 日韩影片中文字幕一区二区三区| 91欧| 日韩综合无码色欲vv| 久久久久9| 91最新综合| 东京热AV男人的天堂| 男女日B国产| 98一区二区精品| 抽插一区二区视频| 国产 三级自拍| 亚州大图综合色图| 五月丁香社区婷婷日韩欧美精品影院 | 91一区二区| 男人天堂网手机版婷婷| 欧美国产伊人久久久久| 欧美日韩人妻少妇 一区二区三区| 亚洲福利影院一区久久| 亚洲欧美校园另类春色| 蜜臀一区二区三区在线| 97人肏| 中文字幕AV中出| 亚洲中文字母在线播放| 国产人人干| 日韩精品免费高清视频在线| 大香蕉宅男伊人| 免费中文综合精品| 久欲AV| 亚洲成人性爱在线观看| 久久精品99久久久久久| 91精品人妻电影| 国产久久男人天堂| 国内自拍 日韩激情 99| 伊人欧美大香蕉视频| 自慰白浆在线观看| 日本欧美不卡| 久热大香蕉网站| 欧美激情性爱视频网站| 久久97视频| 日韩久久三区| 亚洲一区中文精品| 欧美精品三区| 这里都是精品在线观看| 91欧美网| 亚洲综合69| 亚洲 欧美 手机在线观看| 无码精品啪啪啪一区二区三区三州| 岛国黄| 一级片在线观看高清无码| 密臀视频一区二区三区| 国产av美女被艹的乱叫| 91啪啪| 粉嫩少妇自慰在线| 国产 三级自拍| 亚洲欧美变态| 性爱AV天堂| 成人性爱全视频观看| 风间由美日韩欧美久久| 久久色激情一区二区三区| 麻豆综合一区av| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 欧美色图20P| 久久久久性熟视频| 91|九色|国产熟女| 私人尤物在线精品不卡| 青青三级视频| 91oumei| 色y情视频免费看| 蜜桃狠狠色伊人亚洲综合| 色综合婷婷| 日日操免费视频| 97视频免费在线| 91久久精品国产| 久久久久久久亚洲Av无码| 日曰骚久久精品| 91色爽欧美| 中文字幕狠狠玩| 性色AV蜜色av色欲av| 美女91av| 青青草大香蕉在线视频| 中文字幕在线观看丝袜| 日本一级性爱| 午夜福利视频在线一区| 欧美在线永久天堂| 蜜臀在线视频| 夜夜高潮夜夜爽夜夜爱爱一区| 男人下部插入女人下部| 这里只有精品视频在线| 人妻-91porn| 免费一级特黄特色大片在线观看看| 天操天操夜操夜月月年年操操 | 神马久久午夜| 色香av| 精品大全99999| 在线观看A啊啊啊| 亚洲欧美精品一区天堂久久 | 欧美青青视频| 久久九九一区二区三区成人| 四虎AV无码| 99久热| 99国产精品视频尤物| 国产精品午夜AV完会免费| 少妇大屁屁| 91美女国产在线| 330Dv国产女人终合视频极品人与兽| 97香焦色区| 欧美精品99久久久| 深爱五月婷婷| 丁香五月天啪啪| 在线看免费无码AV天堂的| 日韩国产欧美伦理在线| 人妻系列无码专区中文有码| 欧美性爱十八禁| 国产日韩欧美亚洲精品95 | 亚洲各类熟们中文字幕| 欧美顶级黄片AAAAA在线免费看| 嫩呦国产一区二区三区AV| 少妇熟女1区2区3区| 日本孕妇一区二区视频操逼免费看 | oumeisetu综合| 黄色大片一区二区密桃丝袜| 人妻出轨一区二区三区| 亚洲国产精品久久久男人的天堂| 91久久18禁| 女人一区| 精品美女久久一二三| 乱操9999| 日韩熟女三十乱伦| 884t在线| 精品一区99999| 精品人妻一区二区三区蜜桃视频| 亚洲日韩美女丝袜美腿人妻视频| 麻豆国产97在线| 国产精品原创巨作?v网站| 成人性爱AV在线免费观看| 亚洲精品国产日韩无码AV永久免| 亚洲1区2区三区高清中文字幕| 美女极品一区二区三区| 性爱av网站| 丁香五月电影| 男女激情中文字幕| 国语精品av| 久操视频在线观看| 综合欧美激情网| 国产欧美日韩在线不卡第一页| 丁香六月婷婷| 欧美一二在线| 素人伊尹大香蕉免费下载视频| 久久香蕉国产线看观看亚洲女人 | 亚洲第一免费视频| 九九色综合| 加勒比综合九九99视频在线播放| 精品综合久久久久久97| 超碰在线欧美性爱激情| 色婷婷丁香五月| 青青国产在线拍揄自揄拍| 941超碰| 国产精品人妻无码久久久老鸭窝| 国产激情视频在线观看| 久久久久久久九九九九九九| 精品一区二区成人动漫| 精品然女一区二区| 久久人妻| 亚洲AV无码成人精品久久| 天天摸夜夜摸| 96超碰网| 伊人影院综合是一个与深夜成人在线| 啊…啊…操我用力操我| 青青草中日韩在线| 国产精品久久久久无码A√| 国产久久久久久久久一区二区 | 欧美性色网| 在线欧美69V免费观看视频| AV天堂丝袜| 91狠狠狠| 黄色小视频日本txt| 95精品在线| 全国男人天堂网| 日韩精品碰碰| 久久久性爱视频| 国产福利合集| 久久久久久久少妇| 中文字幕欧美丝袜07资源| 在线观看精品国产免费| 91欧美性| 狠狠操夜夜| 极品白嫩福利在线| 极品白嫩美少妇在地板上位骑射淫水泛滥| 日韩黄色一区二区三区| 欧洲性人爱视频| 久久透逼视频| 色五月天AV| 日韩免费在线观看不卡| 欧美精品另类人妖xxxx| 色图四区| 长长久久88视频| 综合亚洲欧美| 天天狠| 果冻传媒A片麻豆熟妇人妻| 人人操人人叉人人插人人| 欧美少妇第一页| 91久久久亚洲| 五月天综合网| 中文字幕中文字幕一区二区| 久久精品中文| 成人无码影片视频在线| 欧美成人贴图| 日韩一999精品| 乱操乱伦AV| 精品十三区| 久久精品 六十路 熟女 欧美| 暖暖精品二区三区观看| 精品亚洲一区在线观看| 日韩综合97P| 性色av网站| 四虎影视国产精品| 蜜臀av中字字幕网站| 一级一性爱免费视频| 午夜呻吟欧美| 91社操逼| 欧美日韩妖精91com| www.久久| 欧美十八禁视频| 91天天综合网,天天综合网| 日本欧美韩国国产在线| 久久精品人妻一区二区三区| 久久伊人大香蕉| 欧美激情区| 日韩一区二区熟女| 加勒比在线视频一区二区三区 | 色一情一乱一乱一区91Av| 午夜超碰| 天天插夜夜爽| 婷婷伊人綜合中文字幕| 69视频入口| 欧美国产一区二区三区麻豆传媒| 欧美劲爆视频一区二区| 麻豆三极片| 爱妻综合网| 色婷婷丁香五月| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 久久免费中文字幕在线观看| 在线观看无码三级少妇| 欧美97爱| 丝袜美腿操av| 五十路熟女工口| 99爱在线视频| 成人热久久精品| 亚洲中文字母在线播放| 色综合V| 九九九九热只有精品| 富二代亚洲精品99| 亚洲综合激情五月久久| 亚洲天堂7777| 婷婷伊人五月| 国产视频第二页| 天天干天天日天天射黄色片| 91大学精品激情戏| 亚洲国产欧美中文永久| 国产精品亚洲高清在线| 国内伊人久久久久久网站视频| 亚洲永久永久永久永久一级一级一级精品| 五月激情综合网| 欧美另类精品xxxx| 91国产操逼视频| 成人无码欧美一级A片狼牙直播| 97青娱乐超碰久久| 国精品一区二区三| 男人的天堂在线有码| 久久老子无码午夜伦不卡| 牛牛操视频逼| 99久久久无码国产精品性啊聊| 日韩无码第3页| 久久99深爱久久99精品| 吉川爱美亚洲二区在线 | 欧美成人国产精品| 天堂涩涩| 色哟哟1区2区| 曰本91情色| 欧美日韩大陆黑人少妇99| 素人播放一区| 一色网男人的天堂| 狠狠躁AV| 青青草在线成人视频| 俺去也婷婷| 色婷婷导航| 精品区国产区一区二区三区| 懂色AV蜜臀无码精品APP | 久久久国产精品亚洲精品| 日本97久久久精品| 亚91亚洲网| 九九热视频这里只有精品| 性欧美体内射精| 麻豆久久久久久久久丝袜| 特污免视频| 婷婷中文字幕| 天堂蜜桃无码视频一区二区| 后入内射蜜桃臀| 91香蕉国产尤物视频| 婷婷激情四射| 日韩欧洲操屄视频| 欧美亚洲尤物久久| 亚洲午夜AV| 区日韩亚洲乱码av电影| 国产a级精品| 裸模AV女优| 女生自91网站| 日韩精品一区,二区 九九...老司机| 青青草无码视频| 成年人免费观看网站| 亚洲精品 欧美97色色| 992视频一区| 亚洲中文字幕熟女| 浪人综合网| 成人午夜视频免费播放| 人妻夜夜爽天天爽麻豆三区网站 | 91福利网在线观看| 黄色AAAAAAAAAAA大片| 天天躁日日躁AAAXX| 人妻天天夜夜爽一区二区| 久草久热| 97国产精品久久久久| 99久久99九九99九九九| 岛国1区2区3区在线观看| 日韩色| 日本三级日本三级99| 欧美日韩色图片| 亚热日本熟女| av黄图片在线观看| 国产精品一区二区 尿失禁| 国产乱码久久| 我中文字幕6区| 麻豆成人影音在线| 少妇高潮对白在线观看| 欧美九九99久久精品| 嫩草91| 淫荡网址| 国产成人久久久精品免费AV| 久久这里只精品免费福利| 嗯啊抽插大香蕉网页| 日本久久99| 男女激情中文字幕| 97国产超碰| www黄片免费看com| 国产成人主播| 丁香五六月啪啪| 99操碰| 免费97视频| 日本一区二区三区免费观看| 欧美日韩m| 四虎精品永久在线观看| 性爱乱伦一区| 欧美天堂亚洲电影院一区在线播放| 综合欧美亚洲| 五月婷婷基地| 少妇高潮一区二区三区在线| 美女写真| 亚洲日韩久久精品一区| 国产精品亚洲天堂网址| 嗯嗯嗯啊啊啊操的我好爽| 国产精品丝袜在线| 成人在线视频网| 日韩精品电影| 欧美一级久久久久久久大片动画| 二对二中文字幕。| 无码一区免费在线不卡| 日韩99神马视频播放片在线播放| 91熟女网| 日韩人妻少妇 一区二区三区| 色97综合中文字幕| 97爱爱爱综合| 免费中文综合精品| 亚洲高潮影院| av国产无码| 国产欧洲精品亚洲午夜拍精品| 狠狠色伊人亚洲综合网站色| 亚洲精品蜜桃久久久一区二区三区| 久久久啊啊啊| av天天在线观看| 搡老女人老91二区| 亚洲天堂性爱| 狠狠色伊人亚洲综合网站色| 插入逼91| 亚洲日韩av一区二区三区百合| 亚洲天堂男| 女同在线视频一区| 亚洲自拍偷拍视频在线| 超碰性爱97| 国产精品爱欲| 日本不卡一区二区三区| 操操碰| 欧洲人妻视频| 亚洲情色五月天| 一级做a爰片性色毛片久久| 日韩伦理视频| 九九九九精品| av久日| 99久久精品国产高潮| 五十路成人在线视频二区三区| 超碰人人干| 婷婷涩嫩草鲁丝久久午夜精品| 天天干天天日天天射黄色| 秋霞一集毛片观看| 怡红院怡春院| 91成人久久 | 亚洲综合色图欧美| 欧洲综合视频| 人看人人摸人人操| 97干在线视频| www.高清无码诱惑一区.com | 免费一级欧美片片线观看| 欧美欧美少妇| 青青国产在线拍揄自揄拍| 91成人久久| 性欧美91| 九九久久国产精品| 九色视频91| 亚洲日韩人妻中文字幕一区| 精品制服美女中文一区二区三区| 欧美视频在线第3页| 波多野结衣一级视频| 天天性射网| 91精品人妻一区二区三区蜜桃臀| 亚州操逼网| 欧美 精品国产制服第一页| 丝袜高跟澳门91视频| 天天综合日韩网| 日韩AV无码中文一区二区| 午夜超碰| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 国产夜夜操| 综合色99| 色成人Www精品永久观看| 99999精品| 人妖欧美一区二区| 丝袜av一区二区三区| 熟女精品一区二区三区| 99热在线观看| 日日操丁香五月天| A片A5445444| 亚州男人天堂| 人妻熟女一区二区在线视频| 久久久久久少妇| 青青草视频久久久久| 女同在线视频一区| 欧美成人性爱视频大全| 国产精品一级特黄aaa大片在线观看| 一区二区三| 啊啊啊好大好深| 天美麻豆黄色录像| 欧亚揄拍偷拍精品视频| 亚洲综合九| 夜夜国产一区| 国模不卡一本二本三电影| 青青草自拍视频在线播放| 久99| 久久老子无码午夜伦不卡| 激情网色| 久久久久久久亚洲Av无码| 亚洲啪AⅤ永久无码| 欧美gv在线观看| 欧洲特黄毛片免费看欧洲毛片| 91少妇人妻| 大香蕉综合网| 国产精品com| 亚洲中文字幕精品一区| 26uuu久久| 午夜成人爽爽爽爽A片李冰冰| 欧美人妻少妇| 偷拍精品一区二区三区| 免费精品国偷自产在线在线| 无码久久亚洲高清,| 四虎影视在线| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 国产精品一区二区a| 久久国产成人精品国产成人亚洲| 91青青草| 国产黄色小视频网站| 黄色电影在线播放综合网站| 中文字幕精品一区二区精| 国产精品无码av在线| 欧美人妻久久精品二区三区 | 亚洲脚交| 香蕉视频欧美一卡二卡| 免费观看成人www精品视频| 国产兽交视频在线播放| αⅴ天堂| 色情综合| 欧美少妇一区二区三区| 国产精品丝袜久久亚洲不卡| 中文字幕欧美日本乱码一线二线| 蜜屁av| 欧美极品美女aaaaaa级黄片| 国产欧美精选自拍一区| 大香蕉丝袜一级片| 欧美黑人与女人91~| 精品无码人妻一区二区免费蜜桃| 丰满欧美放荡少妇在线| 亚洲熟妇一,二,三期| 国产久久成人| 五月婷丁香| 亚洲 图片 欧美 色图| 碰超人人在线一区二区三区| 91熟女网| 成人精品一区二区91毛片不卡| 欧美视频中文字幕区| 大鸡巴久久久| 碰人碰碰人人开房人肉| 又大又大又大又粗爽高潮观看| 操逼日批| 青青草视频久久| 激情视频一二三| 综合久久9| 在线看片国产精品每日更新| 欧美懂色综合网| 欧美激情性久久久久久| 青青草中文-久久青草精品一区二区三 | 麻豆天美在线喷水AV| 超碰97中文| 久久久精品视频免费观看| 免费看污网站| 玖玖久久久| 一级久久性爱视频| 97超碰资源网| 欧美v日韩v亚洲v最新在线| 欧美日韩中文亚洲v在线综合| AV一二区| 91精品91久久久久77777俄罗斯老妇姓x| 超碰在线观看av不卡| 色妹子A V| 日韩本不卡视频在线观看| 岛国网址国产 | 啊啊啊不要嗯嗯在线观看| 91久久青青草原精品| 精品国产肉丝袜在线拍国语| 成人欧美日超碰| 亚洲日韩天堂| 日产狠狠干| 狠狠97| 亚洲天堂7777| 伊人aaa| 尤物视频一区| 97 国产一区| V A在线| 99色悠悠| 热99这里有精品综合久久 | 美女啊啊啊啊啊啊啊| 成人青青草原伊人| 大香蕉综合| 色综合1991| 国产视频不卡在线观看| 日韩色图 一区二区| 黄色网址在线免费观看| 97视频在线视频| 国产精品自拍xxxx| 中文在线视频| 深田咏美亚洲精品福利社| 亚洲交换| 少妇精品| 激情综合亚洲| 精品视频久久| 夜夜操老骚逼视频网站| 麻豆综合一区av| 97精品久久久久久久| 久综合国内精品自在自线| 狠综合网| 国产亚州精品美女久久久免费| 天天影视之亚洲综合网| 成人综合久久精品色婷婷| 97久久超碰日韩精品| 屌色在线97视频| 91美女在线观看| 吉田爱美AV在线| 欧美久久人人网| 日韩成人人妻网站| 六月婷激情福利天堂69| 欧州一区二区三区四区| 都市激情人妻一区二区青青操视频| 国产欧美精选自拍一区| 少妇熟女视频一二三区| 猛交交| 欧美一级美片在线观看免费| 试看60秒| 91麻豆天美国产欧美日| 岛国激情视频软件| 丝袜美腿91| 国产乱婷婷精品二区三区| 天天日天天搞天天干| 精品人妻视频一区二区在线播放| 乱人伦 国语对白:视频直接看| 国产精品一区二区a| 欧美论理片| 丁香五月偷拍| 岛国激情视频软件| 一本色道熟妇| 大香网伊人久久综合网eew| 日本三级R| 日韩一级久久毛片| 后入福利| 第45页一区二区| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 玖玖草久草99蜜月一区二区三区| 深爱激情五月天| 中国zzijzzijzzwww精品| 97国产|免费| 人妻 制服 日韩 中文 在线| 91久久久久久| 久操网址| www久久国产精品| 日本道人妻久久久在线不卡色视频| 久久99国产综合精品女同| 干婷婷综合网| 热无码中文亚洲H一道本一区二区| 神马久久免费电影观看| 粉嫩小泬久久久一区二区| 日本免费中文一区二区三区四区| 久久久久久国产手机AV| 欧美精品成人一区二区在线观看 | PMv在线观看| 久久精品超碰| 99国产精品自在自在| 一区二区首页| 97AV爱| 成人av免费观看| 金莲网址| 美国精品国产精品| 国产精品福利资源在线尤物| 一区二区三区精品黑丝白丝酒店对鸡| 久久av一级av少妇av高潮| 国产又粗又大硬免费色网视频| 1024精品在线| 日韩射图| 黄色一区三区| www被窝色com| 中文字幕文字幕无码一区二区三区电影99| 亚洲熟妇乱女区二区三区| 99热在线观看| 99热综合| 六六久久日韩不卡| 久久人妻丝袜一区二区三| www.色综合| 无码日韩网站| 欧美一级A片在线看视频性色| 亚州操逼图| 国产精品一级毛片不卡视| 超碰在线观看av不卡| 亚洲国产欧美另类自拍| 色天使亚洲综合在线观看| 中文字幕乱码人妻二区三区| 免费少妇一区二区| 日韩中文字幕精品一区在线| 亚洲图片色图欧美另类| 密乳AV免费观看| 可能人人看人人摸| 殴美大黄片| 久久五月视频| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 91丨国产丨白浆秘 洗澡动漫| 大香蕉78| 欧美区亚洲区偷拍区| 亚洲黄色视频在线观看视频| 眼镜人妻101.com| 亚洲国产婷婷在线播放| 成人午夜小视频手机在线看| 性做久久久久久免费观看软件| 久9视频| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 97在线免费观看视频| 精品国产av一区二区三区四区入口| 亚洲阿v天堂在线| 国产亚洲性生活视频播放| 激情抓乳插进去啪啪啪日韩 | 欧美大香蕉卡久久| 美女91在线观看| 国产乱子伦一区二区三区免看| 久久风骚城市| 97超碰站| blacked精品一区国产| 日韩操人| 日本一二三高清| 久久久91福利姬| 午夜毛片亚洲精品片国产久久久| 老熟女搡BBBB搡BBBB视频| 综合欧美日韩在线观看| 亚洲丝袜色| 精品一区二区三区四区外站| 亚洲激情久久久伊人综合| www久久国产精品| 熟女人妻一区二区三区| 亚洲熟妇图片| 麻豆a'v电影| 热99这里有精品综合久久| 999亚洲国产视频| 日本熟妇一区二区三区| 成人一区二区三区四区| 天天综合中文字幕 91| 性色生活片久久毛片婬片免费放女人一级毛片 | 日韩免费三级黄片电影| 国产精品青草综合久久| 日本不卡码黄色| 日日嗷| 内射老妇BBWX0C0CK| 亚洲一区二区性爱电影| 日韩精品熟妇| 午夜欧美精品久久久| 亚州操逼图| 旡码电影特区| 亚洲综合嫩| 性影在线视频| 欧美一级欧美三级在线观看| 深喉吞精| 午夜影美女日鸡鸡天天视频国产| 91色黑人少妇| 久久啊啊| 久99久视频| daxiangjiao你懂的| 国产肏逼网站| 伊人综合色网| 日本大香蕉综合网红本杳社区| 最好看的中文字幕在线2018| 久久这里精品国产99丫e6| 精品无码久久| 青娱乐日韩无码| 91男人天堂网| 曰韩操B| 欧美熟妇人体| 国产品精品自在在线午夜免费| 五月天社区| 操逼逼中文字幕| 自拍视频大全亚洲专媒视频/一区二区三区 | 欧美大色交| 亚洲天堂一区二区久久| 九九九久千久久激情蜜桃在线看 | 青青草丝袜在线视频| 国产后入内射| 亚洲天堂7777| av草草在线电影| 肉嘟嘟www视频在线观看高清| 日本五十路在线| 久久中文字幕一区不卡| 成人日韩中文字幕| 少妇厨房愉情理伦片bd在线观看| 啊好爽受不了无码| www.亚洲黄色| 日韩 成人 有码| 精品中文字幕第一页| 日日夜夜噜| 欧美大香蕉同搞| 91少妇通奸网站| 亚洲女毛多水多21P| 天天综合站| 久久激情网| 特色a在线上| 亚洲情色1区| 99这里只有精品国产| 女人的天堂大香蕉网| 天堂无码精品国产久| 国产精品久久久久久久久久二区三区| 影音先锋中文字幕日本好一区二区| 欧美人妻另类在线| 五月丁香| 激情熟女12P| 中文字幕神马久久| 国产精品亚洲一区二区三区四区| 欧美色91| 欧美大香蕉在线观看| 2017人人操,人人摸| 高清不卡 中文 人妻| 超碰AV在线| 日韩性爱啪啪视频| 91美女视频在线免费观看| 午夜精品探花| 97欧美| 欧日韩在线观看| 国产精品99久久久www| 特色a在线上| 狠狠图片青青草| 96久久精品一二三区色欲| 999精品乱码| 蜜桃视频精品一区二区三区| 欧美成人性爱视频免费观看| 97视频免费播放| 天天影视色香欲综合网小说| 日韩人妻无码精品系列| 丁香五月天激情网站| 69国产对白刺激| 在线五区| 爆乳免费黄网站| 3d成人精品一区二区| 久久精品无码一区二区三区| 久久综合女优| 激情五月天综合网| 国产又黄又爽又刺激久久久久久| 亚洲欧美激情小说| 蜜臀人妻少妇久久在线观看| 日本在线视频导航| 国产狂喷潮在线精品| 另类老少妇| 78久久久| 中文字幕第页| 日韩av在线免费网站| 日韩欧美日韩| 一区二区三区男人的天堂| 精品无人区麻豆乱码久久久| 日韩无码成人电影| 在线免费观看日韩一区| 91爱| 欧美色交| 性欧美精| 色情亚洲日本成人| 青青网三级视频| 日本网色| 欧美视频一区二区在线| 韩日色费| 国产精品久久久| 91大香蕉伊人| 欧美玖玖爱免费玖玖| 九九九午夜| 国产亚洲99久久精品| 中国少妇XXXX做受| 无遮挡男女激烈动态图| 男同专区一区二区三区在线| 男人的天堂日本东京热| 人妻一区久久二区三区色播| 亚洲熟妇自偷自拍另欧美| 熟女视频久久| 天天干天天操天天干天天操| 日逼逼免费看| 男女做爰猛烈动高潮A片免费应用| 深夜视频| 午夜欧美精品久久久| 久久↗↗| 在线免费试看60秒| 60秒免费小视频| 午夜天堂精品久久| 日韩 人妻 精品| 超碰爽人妻熟女Av| 台湾佬激情综合| 另类综合另类| 东北夫妻性偷拍| http://qxhbdz.com| 校园春色之综合网| 亚洲国产欧美日韩人妻日中文| 99精品久久| 五月婷婷影院| 久久久九97| 加勒比在线视频| 色一射色一射| 夜夜狼人妻| 神马久久久久久久久久久久| 啊啊啊啊啊好大好舒服想要| 欧美性爱一区二区三区四区| av麻豆啪啪| 91久久国外网| 国内外激情在线| 久操免费观看| 国产精品久久久啊| 激情 欧美 亚洲 小说| 日韩综合无码色欲vv| 亚洲天堂人妻熟妇视频| 国产 丝袜 欧美中文 另类| www.人人cao| 看日韩美女二区三区免费操逼视频 | 亚洲综人| 国产精品久久久久久久久久久久久久吹 | 91在线丝袜| 色爱亚洲| 9国产超碰| 新婚人妻扶着粗大强行坐下| 超碰av在线| 久久久久久久少妇| 综合91网| 噜噜噜噜久久久精品免费| 黄骗免费网站| 99国产精品视频尤物| 黄色一级视| 熟女人妻av在线资源,黄色的资源| 91亚洲不卡一区| 人妻丝袜肏逼| 美女高潮国产高清| 成人自拍三级在线观看| 国产精品成人蜜臀AV在线| 日韩欧美视频青青| 日日干男人的天堂| 九九九九精品视频| 1人人看人人摸人人操| 亚洲最大无码中文字幕网站| 欧美日韩国产中文精品字幕自在自线,| 婷婷另类小说| 国产综合久| 91av一区二区在线观看| 免费观看啪视频| 中文乱码99| 久草综合网| {男男暴菊gay无套网站| 91|九色|国产熟女| 亚洲综合113页| 夜夜夜夜久久久久| 欧美精品日韩久久久九| 加勒比大香蕉视频在线| 涩涩久久精品| 日韩三级伦理中文字幕| 强奸乱伦αv片| 亚洲自拍欧美国产首页网曝| 国产精品白丝www| 日韩免费在线视频观看| 一本道综合色图| 国产精品国产| 高清无码久操视频| 狠狠干综合| 黄色一区三区| 国产成人自拍视频视频| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 超碰久久.com| 亚洲第一狼人丝袜美女另类| 丰满欧美少妇| 东京热,男人的天堂| 国产精品无码av嫩草| 国产怡红院| 超碰九7| 丁香五月婷婷啪啪| 蜜桃臀一区二区三区久久| 男人的天堂午夜av| 欧美老熟另类| 亚洲欧美另类图片| 丁香婷婷大香蕉| 玖玖超碰熟| 93人人操人人| 99只有精品| 99re免费视频精品全部| 在线女人91| 欧美色涩| 91蜜臀熟女| 成人日韩欧美| 一二区在线观看视频| 国产乱人伦AVA麻豆软件.| 最新精品久久蜜桃 | 男人的天堂.com| 懂色Av| 欧美日韩国第一区| 96精品久久久久久久久久| 日韩久久三区| 骚女天天综合网| 99热这里只有精品9| 色吊丝 日日骚 清纯唯美| 亚洲色综合| 国产91美女视频| 五月丁香六月激情| 亚洲男人的天堂va亚洲男人社| 激情久久久| 亚洲综合20p| 精品一区96| 国产无码精品无码| 亚洲自拍另类丝袜综合| 国产成人91一区二区三区| 国产熟女高潮一区二区三区| 国产最新小视频在线播放下载| 9久久美女首页| 18禁精品网站在线看| 伊人991| 亚洲 日韩 丝袜 熟女 变态| 97视频在线视频| 人人做人人妻人人夜视频| 中文字幕少妇色| 男人的天堂 在线一区| 欧美视频一区二区三区| 欧美丰满熟妇XXXX性ppX人交| 中文精品少妇天堂| 一级黄色影片| 欧美色狠| 日韩精品第3页| 中日韩熟女| 91 偷| 欧美第一页性| 久久透逼视频| 丝袜狠狠草尤物 91| 久久伊人五月天| 国产精品美女| 亚洲天天影视综合网| 男男H黄动漫啪啪无遮挡网站| 91免费看中出视频| 欧美成人精品一区二区三区| 日本狂喷奶水在线播放212| 大白逼三四级| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 超碰 欧美| 97青青操视频| 伊人激情五月天一区二区| 中文三一区| 久草资源在线视频官方总站日韩丝袜美腿 | 日韩精品资源专区二区| 精品九九淫乱男| 色一情一乱一乱一区91Av| 少妇一级无码精品| 九色 蝌蚪 熟女自| 精品91摸| 澳门特级毛片免费观看| 亚洲无码精品AV久久久| 久久精品99| 欧洲射精91| 久久婷婷色| 尤物网址| 91成人18| 啊啊啊轻点在线观看| 黄色小说亚洲| 亚洲天堂久久| 欧美精品日韩久久久九| 97极品无码| 久久久久久裸体| 久草资源欧美在线视频| 综合激情五月天| 嫩草一区二区在线观看| 欧美高清无码免费视频高清版| 91老妇女| 亚洲色图 图片| 中文字幕丝袜美腿| 激情网五月天| 亚洲国产高清福利视频| 欧美日韩另类在线| 欧美亚洲天堂| 欧美春色| 日日嗷| 久久久久9999精品九九九| 97色插| 国产刺激视频| 日本三级韩三级99久久| 青娱乐亚洲自拍| 久久久久久久久久久免费精品| 久草加勒比一区在线| JuliaAnnXXX888| 大香蕉日韩欧美| 蜜臀久久精品久久久久视频| 性色av一区二区| 日本丝袜美腿人妻九九| 99久久com免费视频′| 麻豆久久久一区二区| 人妻中文在线| 九九久久精品| 玖玖婷婷五月天| 99操逼| 性爱视频久久| 天天干天天爽| 亚洲国产精品久久久久久久久久| 丁香六月啪| 日本色色网| 日本福利社| 精品视频久久久久九九九九9999| www.zbzhongsen.com| 亚洲激情在线| 人妻少妇一区二区| 男人的天堂在线有码| 久久激情视频| 国产尤物在线三区| 亚洲区小说| 亚洲综合伊人无码久久| 青青青青青手机视频| 欧美中文综合| 日本操逼无码| 蜜乳成人AV| 蜜乳av一区二区| 丰满高潮18xxxx| 91黑人无码激情在线| 国产又爽又黄| 麻豆人妻精品一区二区| 亚洲天天艹| AV丝袜少妇| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 婷婷精品| 艳美熟妇先锋一二三区|