成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go在酷狗數據庫中間件的應用

開發 后端 MySQL
本次分享主要圍繞Go在數據庫中間件應用這方面展開;首先會聊一下程序開發的需求,具體會參考Go的特性是否滿足這些需求;接下來會介紹一下近期采用Go語言開發的mysql中間件這個項目,整體方案,分表路由、故障切換、平滑擴容,系統運維,主要從以上這五個方面進行展開。

[[212810]]

本次分享主要圍繞Go在數據庫中間件應用這方面展開;首先會聊一下程序開發的需求,具體會參考Go的特性是否滿足這些需求;接下來會介紹一下近期采用Go語言開發的mysql中間件這個項目,整體方案,分表路由、故障切換、平滑擴容,系統運維,主要從以上這五個方面進行展開。

程序開發需求

程序開發對開發語言的要求,簡單概括如下幾點:

語言特性精煉,容易入門

開發效率高,代碼邏輯清晰

運行性能強,節省機器資源

部署維護方便

生態圈完善

Golang的特性

結合Golang與C之間區別,闡述一下Golang的特性:

Go語法簡練;沒有學習壓力

開發效率高;語言描述能力接近于腳本語言

性能高;接近于C/C++,充分利用資源

容易部署;可執行程序,編譯時解決上線部署、運行時的依賴

強大的標準庫、豐富的第三方庫、go test、pprof

自動內存管理;內存泄漏與野指針是C/C++語言開發者的噩夢

Go routine + channel;簡單的并發與簡易的數據同步

Go開發mysql中間件

  • 系統整體方案

圖 1

本系統開發的出發點是:突破mysql的單機、單表容量,解決mysql訪問的單點問題。

上圖是系統整體框架圖,整套系統致力于提供一套 mysql 分布式解決方案,上層應用接入本系統與使用單機mysql一樣;系統內部會做一些路由分發、故障切換、讀寫分離等工作。

proxy接收SQL請求,解析SQL語句、路由分發以及組裝返回結果;

mysql-group都是一個“復制集”,可以是主從模式、主主模式;

dbmoniter主要是負責故障切換、數據修復等;

zookeeper上存儲相關的配置信息。

  • 分表路由邏輯

分表規則遵循哈希分表與分段分表兩種;哈希分表是shardkey通過Hash函數分表,分段分表是按照年、月、日或者整形范圍進行分表。這兩種方式的區別在于因哈希規則不同,導致其數據組織方式上的差異性。

  • 故障主備切換

關于MySQL的高可用方案,業內流行的解決方案有MHA。MHA在部署方面還是有點麻煩的,需要在每臺機器上都部署一個agent,然后機器之間進行SSH授權。我們采取的策略是通過配置Rsync拉取mysql的binlog日志的方式處理。

故障的幾種情形以及對應的處理:

  1. 當從節點掛掉,可以剔除下線的處理;
  2. 當主節點掛了,但是機器存活的情況下,可以通過binlog恢復數據,將備節點提升為主節點;
  3. 當主節點掛了,同時機器不存活的情況下,可以采用relaylog恢復數據,同時將備節點提升為主節點。

我們實現了如下的雙主模式主備切換機制,這點是MHA不支持的。

圖 2

主備切換數據恢復的過程:Master故障時試圖通過Rsync拉取Binlog,最大程度保證數據不丟失;Slave之間的數據差異通過中繼日志恢復。

圖 3

  • 在線平滑擴容

數據遷移的方式分為兩種:

  1. 表遷移,將整張表的數據從一個Mysql遷移到另一個;
  2. 表拆分,將數據表的部分數據從一個Mysql遷移到另一個數據庫的過程。

擴容的工作原理:mysqldump導存量數據 + binlog追增量

擴容工作流程:

首先,導出存量數據;

其次,訂閱binlog變更,追增量;

再次,待同步后,修改路由規則;

最后,清理不需要的冗余數據。

這樣設計的好處就在于其中任一環節出問題都可以馬上進行回滾,對數據操作相對比較安全;下圖是擴容時的流程圖。

圖 4

  • 系統管理命令

圖 5

如圖 5 所示是提供了幾個主要管理命令,比如上下線MySQL、數據遷移指令、添加路由等。 

責任編輯:龐桂玉 來源: 36大數據
相關推薦

2017-11-27 05:36:16

數據庫中間件TDDL

2017-11-27 05:06:42

數據庫中間件cobar

2017-12-01 05:04:32

數據庫中間件Atlas

2022-11-18 07:54:02

Go中間件項目

2018-02-24 19:37:33

Java8數據庫中間件

2017-05-23 18:55:05

mysql-proxy數據庫架構

2009-01-20 10:45:55

Oracle數據庫中間件

2011-08-10 13:03:58

CJDBC數據庫集群

2021-10-06 19:03:35

Go中間件Middleware

2015-12-21 14:56:12

Go語言Http網絡協議

2024-12-06 08:29:29

2017-07-26 09:41:28

MyCATSQLMongoDB

2017-07-18 17:35:16

數據庫MyCATPreparedSta

2017-11-03 11:02:08

數據庫中間件

2017-11-30 08:56:14

數據庫中間件架構師

2013-12-12 10:55:21

2021-07-27 05:49:59

MySQL數據庫中間件

2017-11-27 06:01:37

數據庫中間件中間層

2017-12-01 05:40:56

數據庫中間件join

2017-07-18 17:07:40

數據庫 MyCATJoin
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 女人av| 国产精品毛片av一区 | 九九热国产精品视频 | 二区在线观看 | 久热国产精品视频 | 欧州一区二区三区 | 欧美一区二区三区在线观看 | 中文字幕精品视频在线观看 | 久久精品久久久久久 | 毛片韩国| 精品三级在线观看 | www.久草.com | 国产亚洲一区二区三区在线观看 | 欧美久久国产精品 | 美女131mm久久爽爽免费 | 精品国产乱码久久久久久丨区2区 | 亚洲第一成年免费网站 | 在线观看中文字幕 | 久久精品av | 成人免费在线视频 | 中文字幕一区二区三区精彩视频 | 精品欧美激情在线观看 | 99色综合| 神马九九| 国产日韩精品视频 | 精品久久久久久久久久久院品网 | 色接久久 | av福利网| 精品一区二区三区91 | 午夜成人免费视频 | 久久这里有精品 | 亚洲日本免费 | 欧美性另类 | 国产一区不卡 | 中文字幕av高清 | 91观看| 毛片av免费在线观看 | 四虎永久免费地址 | 东方伊人免费在线观看 | 午夜精品视频在线观看 | 日韩三区 |