1、服務隔離資料設計:為做到基礎資料共享,還是繼續考慮採用獨立的資料模組設計,獨立資料庫加上獨立服務,對外提供標準化的AIP,不變。考慮到新老系統的基礎資料存在資料差異性,例如資料欄位性別這個欄位,新系統男是1,女是2;但是老系統剛好相反,男是2,女是1;針對這種情況,我們在設計上引入了服務ID這個隔離標記,這個服務ID是用來標記這些資料是對應哪個系統。
在網際網路設計中,經常會採用資料快取,來儘可能避免join所帶來的效能損耗,這裡的思想一樣,用空間換時間,每一個業務資料庫都會存在不可更改的基礎資料表。這裡要強調,這些基礎資料表的作用:不可更改,只提供聯表查詢操作。
3、資料非同步化維護:在採用了資料表快取到各個業務庫後,維護成了一個大問題。這裡要藉助我們強大的MQ來實現。一個基礎資料服務建成後,除了對外提供標準化的API,還提供了一個基礎資料接收包。這個基礎資料接收包主要就是連線並監聽MQ的基礎資訊,只要基礎資料庫的資料發生變化,所有業務資料庫上的基礎資料都會同步到,來避免資料不一致問題。
4、資料快取化設計:現在前後端分離,前端只做頁面展示,最快的方式肯定是請求網路,檔案的方式雖然快,但運維是個問題,這時候,我們考慮的時候快取化設計。在設計中,資料採用redis進行快取,redis直接與nginx進行連線,這樣子,前端在進行請求的時候,直接請求的是redis上的資料,這樣子用來解決網路效能問題。這裡的方案是預設前端部署在nginx上,如果部署在tomcat上,原理是一致的
1、服務隔離資料設計:為做到基礎資料共享,還是繼續考慮採用獨立的資料模組設計,獨立資料庫加上獨立服務,對外提供標準化的AIP,不變。考慮到新老系統的基礎資料存在資料差異性,例如資料欄位性別這個欄位,新系統男是1,女是2;但是老系統剛好相反,男是2,女是1;針對這種情況,我們在設計上引入了服務ID這個隔離標記,這個服務ID是用來標記這些資料是對應哪個系統。
在網際網路設計中,經常會採用資料快取,來儘可能避免join所帶來的效能損耗,這裡的思想一樣,用空間換時間,每一個業務資料庫都會存在不可更改的基礎資料表。這裡要強調,這些基礎資料表的作用:不可更改,只提供聯表查詢操作。
3、資料非同步化維護:在採用了資料表快取到各個業務庫後,維護成了一個大問題。這裡要藉助我們強大的MQ來實現。一個基礎資料服務建成後,除了對外提供標準化的API,還提供了一個基礎資料接收包。這個基礎資料接收包主要就是連線並監聽MQ的基礎資訊,只要基礎資料庫的資料發生變化,所有業務資料庫上的基礎資料都會同步到,來避免資料不一致問題。
4、資料快取化設計:現在前後端分離,前端只做頁面展示,最快的方式肯定是請求網路,檔案的方式雖然快,但運維是個問題,這時候,我們考慮的時候快取化設計。在設計中,資料採用redis進行快取,redis直接與nginx進行連線,這樣子,前端在進行請求的時候,直接請求的是redis上的資料,這樣子用來解決網路效能問題。這裡的方案是預設前端部署在nginx上,如果部署在tomcat上,原理是一致的