通常來說資料庫都儲存著一個公司的核心資料,單機資料庫往往會存在宕機,網路延時等問題,不僅是資料安全存在隱患,效能問題也是十分值得關注的!
①,主從複製,讀寫分離:使用一主多從可以保證資料不丟失,而使用讀寫分離的原因是因為讀寫比例通常有二八分的選擇,所以使用多個從庫來做讀取是很好的方案!
主從複製的開啟很簡單,在mysql中的配置中心開啟log-bin進行復制,使用server-id配置主從即可!
讀寫分離可以使用spring aop配置動態資料來源來實現!
②,雙主互備:
1,兩臺機器互為主從,實現雙邊同步資料,可以在程式碼中或者別的元件實現負載均衡!
2,一主一備:當前主機掛掉的時候,備機可以迅速上位,提供服務!
雙主互備模式在掛掉一臺機器的時候,另一臺可以持續使用,資料同步中斷!
水平拆分:按照月份,hash等方式,實現資料分散到不同庫(表)中!
垂直拆分:將一張表中的欄位按照一定的原則拆分到不同庫(表)中!
總的來說,如果寫資料過大,建議使用分庫分表,將寫壓力分散到不同庫中,如果讀多寫少,則讀寫分離也就夠了!
上面的幾種方式,是筆者這幾年在不同公司遇到的,程式碼層實現的讀寫分離,雙寫負載均衡等,如果有需要的朋友,可以一起交流!
通常來說資料庫都儲存著一個公司的核心資料,單機資料庫往往會存在宕機,網路延時等問題,不僅是資料安全存在隱患,效能問題也是十分值得關注的!
採用資料庫的分散式方案可以在充分保證資料容災,效能提升等方面有著舉足輕重的作用,一般來說資料庫的分散式方案有以下幾種:①,主從複製,讀寫分離:使用一主多從可以保證資料不丟失,而使用讀寫分離的原因是因為讀寫比例通常有二八分的選擇,所以使用多個從庫來做讀取是很好的方案!
主從複製的開啟很簡單,在mysql中的配置中心開啟log-bin進行復制,使用server-id配置主從即可!
讀寫分離可以使用spring aop配置動態資料來源來實現!
②,雙主互備:
1,兩臺機器互為主從,實現雙邊同步資料,可以在程式碼中或者別的元件實現負載均衡!
2,一主一備:當前主機掛掉的時候,備機可以迅速上位,提供服務!
雙主互備模式在掛掉一臺機器的時候,另一臺可以持續使用,資料同步中斷!
水平拆分:按照月份,hash等方式,實現資料分散到不同庫(表)中!
垂直拆分:將一張表中的欄位按照一定的原則拆分到不同庫(表)中!
總的來說,如果寫資料過大,建議使用分庫分表,將寫壓力分散到不同庫中,如果讀多寫少,則讀寫分離也就夠了!
上面的幾種方式,是筆者這幾年在不同公司遇到的,程式碼層實現的讀寫分離,雙寫負載均衡等,如果有需要的朋友,可以一起交流!