精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:企業應用軟件行業動態 → 正文

Vaughn Vernon談微服務和領域驅動設計

責任編輯:editor006 作者: Jan Stenberg |來源:企業網D1Net  2016-08-03 16:25:48 本文摘自:INFOQ

雖然單體應用程序也可以實現相當好地建模,但它們常常會演變成一團亂麻。究其原因是單體應用程序內的多個領域模型錯綜復雜地交織在一起。根據Vaughn Vernon的經驗,這種情況在幾周或幾個月內就會出現。在今年早些時候舉行的Scala Days大會上,他在演講中表達了這樣的觀點。

Vernon是《實現領域驅動設計》和《通過Actor模型實現響應式消息處理模式》這兩本書的作者。他指出,當應該保持獨立的領域模型混在了一起,互相無法區分時,就很難或者不可能和業務及領域專家一起從邏輯上推斷模型,讓應用或系統比單體應用程序還糟糕。

單體應用程序的一個替代方案是微服務,但我們如何定義一個微服務?它有多大?有時候,人們提出使用代碼行定義微服務的大小,Vernon見過以數十行為標準的,也見過一上千行為標準的,但他不主張采用這樣一種既寬泛又不準確的定義。

此外,有些企業號稱有數以百計的微服務,但又不知道或者不關心準確數值。他們認為,不值得花費時間和精力去弄清它們的實際使用情況,因為,只是讓它們運行起來的話,成本會很低。Vernon對此作出了回應。他不同意這樣的觀點。他指出,別的不說,基礎設施對于許多微服務如何運行,如何在故障情況下保持彈性,有重大的影響。

Vernon建議采用一種規定性的方法確定一個系統里微服務的大小和數量:使用領域驅動設計(DDD)的方法,尤其是有界上下文。他指出,在微服務社區里,有時候會將有界上下文定義成只有一個實體,但他發現那不大可能。相反,Vernon支持借助通用語言在大小確定的有界上下文中建模微服務,并提到了Sam Newman的著作《構建微服務》。

在開始使用微服務的時候,Vernon建議從每個有界上下文一個微服務開始。他認為,即使我們能夠在一個有界上下文中找出多個本身可以視為微服務的組件,但它們的內聚性和協同關系意味著它們應該一起放在一個服務里。他還建議,一個服務和一個有界上下文應該是一個可部署的單元。盡管如此,根據經驗,他們可能會采用更細的粒度,為一個有界上下文創建更多的微服務和可部署單元,可能是因為擴展性方面的原因。

除了實體之外,通用語言還包括命令和事件消息。通過發布最終供其他微服務使用的事件,消息可以用在事件驅動的架構中。在演講總結階段,Vernon展示了一個構建微服務的例子。該例子使用了Actor模型,并使用Akka和Scala實現。

查看英文原文:Vaughn Vernon on Microservices and Domain-Driven Design

關鍵字:領域模型Vernon

本文摘自:INFOQ

x Vaughn Vernon談微服務和領域驅動設計 掃一掃
分享本文到朋友圈
當前位置:企業應用軟件行業動態 → 正文

Vaughn Vernon談微服務和領域驅動設計

責任編輯:editor006 作者: Jan Stenberg |來源:企業網D1Net  2016-08-03 16:25:48 本文摘自:INFOQ

雖然單體應用程序也可以實現相當好地建模,但它們常常會演變成一團亂麻。究其原因是單體應用程序內的多個領域模型錯綜復雜地交織在一起。根據Vaughn Vernon的經驗,這種情況在幾周或幾個月內就會出現。在今年早些時候舉行的Scala Days大會上,他在演講中表達了這樣的觀點。

Vernon是《實現領域驅動設計》和《通過Actor模型實現響應式消息處理模式》這兩本書的作者。他指出,當應該保持獨立的領域模型混在了一起,互相無法區分時,就很難或者不可能和業務及領域專家一起從邏輯上推斷模型,讓應用或系統比單體應用程序還糟糕。

單體應用程序的一個替代方案是微服務,但我們如何定義一個微服務?它有多大?有時候,人們提出使用代碼行定義微服務的大小,Vernon見過以數十行為標準的,也見過一上千行為標準的,但他不主張采用這樣一種既寬泛又不準確的定義。

此外,有些企業號稱有數以百計的微服務,但又不知道或者不關心準確數值。他們認為,不值得花費時間和精力去弄清它們的實際使用情況,因為,只是讓它們運行起來的話,成本會很低。Vernon對此作出了回應。他不同意這樣的觀點。他指出,別的不說,基礎設施對于許多微服務如何運行,如何在故障情況下保持彈性,有重大的影響。

Vernon建議采用一種規定性的方法確定一個系統里微服務的大小和數量:使用領域驅動設計(DDD)的方法,尤其是有界上下文。他指出,在微服務社區里,有時候會將有界上下文定義成只有一個實體,但他發現那不大可能。相反,Vernon支持借助通用語言在大小確定的有界上下文中建模微服務,并提到了Sam Newman的著作《構建微服務》。

在開始使用微服務的時候,Vernon建議從每個有界上下文一個微服務開始。他認為,即使我們能夠在一個有界上下文中找出多個本身可以視為微服務的組件,但它們的內聚性和協同關系意味著它們應該一起放在一個服務里。他還建議,一個服務和一個有界上下文應該是一個可部署的單元。盡管如此,根據經驗,他們可能會采用更細的粒度,為一個有界上下文創建更多的微服務和可部署單元,可能是因為擴展性方面的原因。

除了實體之外,通用語言還包括命令和事件消息。通過發布最終供其他微服務使用的事件,消息可以用在事件驅動的架構中。在演講總結階段,Vernon展示了一個構建微服務的例子。該例子使用了Actor模型,并使用Akka和Scala實現。

查看英文原文:Vaughn Vernon on Microservices and Domain-Driven Design

關鍵字:領域模型Vernon

本文摘自:INFOQ

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 斗六市| 乌兰察布市| 万州区| 长垣县| 广灵县| 贵定县| 酒泉市| 陆河县| 兰溪市| 库尔勒市| 天气| 浪卡子县| 香格里拉县| 大足县| 汾阳市| 德州市| 格尔木市| 南汇区| 连平县| 垫江县| 郯城县| 崇左市| 河北省| 浪卡子县| 商南县| 田东县| 昭通市| 宜春市| 侯马市| 南郑县| 南昌县| 台东县| 长垣县| 五指山市| 鹤山市| 准格尔旗| 定南县| 朝阳市| 鄂州市| 平和县| 葫芦岛市|