me:為啥你們隊答辯時說的話, 我聽了沒啥感覺, 評委聽了直接就深有感觸了?
資深:生產不可能只同步一張表和10W數據, 其他隊伍用jdbc的方法同步全量數據, 在真實環境決絕報錯.生產都是5000萬以上的表. 有的團隊把數據暫時存放在隊列或緩存。然后統一發送到kafka, 真實環境肯定不是這么搞的.
me: 但是一些開源同步工具就是用隊列的, 有的工具還用了多個隊列.
資深: 這個考題,其實就是做一個做一個數據采集工具。 一個部分是流式,一部分是歷史, 采集完直接推給使用方法。如果是多表或海量數據,隊列都有塞爆的可能, 用隊列不符合實際場景, 拿到流式數據直接處理就完事了。所以,如果考題提升一下難度。 5000千萬數據庫。大部分系統是不是會報錯
me: 增量的binlog dump感覺是完全不會傳錯的, 因為這就是master slave的replication協議; 然后你的意思是對於全量數據mysql_dump肯定比jdbc靠譜是嗎?
資深: 肯定的,你說dba備份數據的時候 有用jdbc處理的嗎。最快的是拷貝文件, 其次是dump import 數據.
me: 尷尬, 我們就是測試發現mysql_dump太慢了, 所以就棄用那個方案了...
資深: /data/mysql/mysql/bin/mysqldump -n --compact --skip-extended-insert --skip-set-charset --skip-tz-utc --no-create-db --no-create-info --skip-triggers --no-create-db --default-character-set=utf8 --insert-ignore --skip-comments -hxxxx -uauto_test -pauto_test -P3306 --databases auto_test --tables sbtest4
資深: 這些參數都是看官方文檔一個個查的, 一張表瞬間搞定.
---eof---