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

第3章 微服務解決方案

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

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

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

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

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

主站蜘蛛池模板: 葫芦岛市| 崇礼县| 齐齐哈尔市| 措美县| 新泰市| 焉耆| 洱源县| 长宁区| 唐河县| 攀枝花市| 准格尔旗| 穆棱市| 济宁市| 岗巴县| 达孜县| 铜川市| 安龙县| 康乐县| 会宁县| 广汉市| 会东县| 宝坻区| 类乌齐县| 榕江县| 瑞金市| 大安市| 白河县| 和龙市| 班玛县| 东安县| 徐州市| 麟游县| 乐安县| 玉屏| 甘洛县| 雷州市| 长白| 襄樊市| 屯留县| 项城市| 年辖:市辖区|