官术网_书友最值得收藏!

第3章 微服務解決方案

服務化有很多的實現方式,早期的SOA方式因為水平拆分顯得太臃腫、ESB服務總線過于重量級、技術棧固定等問題,在微服務流行后很快就被淘汰出了主流方案。當然,微服務也可以看成是當前服務化發展過程中的一個高級形式,其大部分的建設思路都是從前文中的服務化思路演進而來的。

DDD的系統設計方法正好可以解決微服務邊界確定難的問題,微服務就是DDD設計方法最好的落地實踐。中臺的業務部分需要的是全域共享復用,正好與微服務的領域建模相契合,進而業務中臺的建設自然可以使用微服務來實現。

微服務平臺建立的難點在于微服務的拆分,單體應用服務拼裝成的微服務不能發揮微服務的真正優勢,這也是本書認為微服務是服務化進程的高級形式的原因。單體拼裝顯得單體過于獨立,而微服務強調的是物理相對分離、邏輯相對不分離。

從業務單元角度來看,DDD中的一個聚合可以構成一個最小粒度的微服務,但在系統建設初期,本著“能不分就不分”“盡量少拆分”的原則,應該以一個限界上下文作為分隔微服務的“黃金標準”。當然,理想的情況是一次性分拆到位,一個子域對應一個限界上下文,這個限界上下文中只有一個聚合。但是業務往往是復雜多變的,微服務拆分很少能夠一次就拆分到位,在系統演進的過程中,微服務也是不斷進行調整的,不過這個調整的次數當然是越少越好。

主流的基于Java語言的微服務技術架構基本上呈現出了平分天下的態勢,一個是基于原生RPC框架的Apache Dubbo生態,另一個是依托Spring框架的Spring Cloud生態。

主站蜘蛛池模板: 永靖县| 新乐市| 都江堰市| 温州市| 蒙自县| 大方县| 华坪县| 会泽县| 海丰县| 石城县| 晋州市| 栾川县| 大厂| 凤山县| 宁阳县| 景谷| 武宁县| 汶川县| 芮城县| 竹山县| 平利县| 阳谷县| 屯门区| 东辽县| 永康市| 会泽县| 靖边县| 安化县| 德钦县| 亚东县| 延安市| 抚宁县| 浮山县| 勃利县| 宣城市| 天长市| 黑河市| 青海省| 桃园县| 抚宁县| 疏附县|