隨著業務越拆越小,而且各個應用又是獨立部署和維護的,這樣的架構存在以下問題: 1,資料庫連接數的問題,如果各個應用都連接現有資料庫,當使用集群和併發訪問量大的情形下,就會導致資料庫連接數超過限制。當然,如果各個應用都有自己的資料庫,則不存在這個問題。 2,代碼復用的問題,有些基礎信息在各個應用中都存 ...
隨著業務越拆越小,而且各個應用又是獨立部署和維護的,這樣的架構存在以下問題:
1,資料庫連接數的問題,如果各個應用都連接現有資料庫,當使用集群和併發訪問量大的情形下,就會導致資料庫連接數超過限制。當然,如果各個應用都有自己的資料庫,則不存在這個問題。
2,代碼復用的問題,有些基礎信息在各個應用中都存在,比如用戶信息,這樣就造成代碼的重覆和變成難以維護。
服務化
服務化就是把每個應用都需要執行的業務操作,比如員工信息和客戶信息,提供出來,然後獨立部署和維護,由這些可復用的業務連接資料庫,提供共用業務服務(api介面),而應用系統只需要管理用戶界面,通過遠程服務調用完成具體業務操作。架構如下圖:
總結:
1,服務化解決了業務拆分後的代碼復用問題和資料庫連接問題,同時也帶來一個問題:原來業務之間的調用是單機內部的方法調用,現在變成了遠程的服務調用,即通常的RPC,如果使用了分散式服務,還要考慮引入服務框架中間件。
2,如果在服務實現了分散式的情形下,單純解決服務路由的問題,可以在服務層前面使用負載均衡伺服器來解決。
3,關於微服務的架構,還需要後面的理論加實踐中慢慢總結。