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

當前位置:新聞中心行業(yè)動態(tài) → 正文

Vaughn Vernon使用反應式DDD對微服務中的不確定性建模

責任編輯:editor004 作者:Thomas Betts |來源:企業(yè)網(wǎng)D1Net  2017-10-13 11:22:38 本文摘自:INFOQ

微服務和反應式模型雖然很強大,但也帶來了不確定性。開發(fā)人員總是對消息驅(qū)動的系統(tǒng)持有疑問:

有人接收到我發(fā)出的消息了嗎?他們對消息做出回應了嗎?消息的順序會不會被打亂了?

Vaughn Vernon在DDD探索大會的演講中提到,DDD是回答上述問題的基礎。使用通用語言(Ubiquitous Language)來描述由邊界上下文(Bounded Context)組成的系統(tǒng)可以降低分布式系統(tǒng)的復雜度。不確定性應該成為通用語言的一部分,比如邊界上下文之間的交互問題。

Vernon是“Implement Domain Driven Design”和“Reactive Messaging Patterns with the Actor Model”的作者,他認為為項目創(chuàng)建好上下文映射是至關重要的。從實際情況來看,業(yè)務的核心領域總會包含多個邊界上下文,而上下文映射體現(xiàn)了邊界上下文之間的關系。在建立上下文映射關系時,要專注在團隊之間的關系上,而不是去關注技術細節(jié),比如究竟是使用REST還是使用RPC。Vernon說,“集成對象比如何集成更加重要”。

Vernon看到了反應式系統(tǒng)的發(fā)展趨勢,反應式行為存在于微服務之中,同時又超越了微服務。這并非什么新概念,他說,Eric Evans早就在業(yè)界推廣事件模式。其核心思想就是對過去發(fā)生的事件作出反應,進而達到和諧的狀態(tài)。

微服務和反應式行為帶來了不確定性,包括事件順序的不確定性和事件的重復性問題。Vernon強調(diào)說,“就算你使用的是Kafka,認為自己是在按順序消費消息,但其實是在自欺欺人。如果任何一個消息可能出現(xiàn)亂序,那么所有消息都有可能出現(xiàn)亂序,你要為之做好應對準備”。

Vernon認為這種不確定性是很難得到消除的,因為我們已經(jīng)習慣于阻塞調(diào)用、數(shù)據(jù)庫鎖等事物,并總是期待事物是按照一定順序進行的。在反應式系統(tǒng)里,一些長久以來的信念開始土崩瓦解?;蛟S,開發(fā)者會本能地創(chuàng)建出門面(facade)來隱藏不確定性,寫出傳統(tǒng)的非反應式代碼,但Vernon認為我們應該要反其道而行之。

Vernon總結了自己處理不確定性的方式——“更少的查詢,更多的事件”。事件告訴我們在過去某個時刻發(fā)生了什么。我們不知道系統(tǒng)現(xiàn)在處于什么狀態(tài),只知道事件發(fā)生時的狀態(tài)以及在這一過程中發(fā)生了哪些變化。如何對這些事件作出反應式屬于業(yè)務決策,包括如何處理亂序問題。Vernon引用了Pat Helland的論文“Life Beyond Distributed Transactions”:“在一個不能依賴分布式事務的系統(tǒng)里,必須在業(yè)務層面管理不確定性”。

Vernon列舉了幾中不同形式的不確定性,并提供了用于管理不確定性的簡短代碼。他強調(diào)這些代碼只是業(yè)務決策的實現(xiàn)。業(yè)務必須擁抱不確定性,必須讓業(yè)務決策者來對其進行建模,而不是在軟件開發(fā)團隊內(nèi)部完成這件事情。不要通過創(chuàng)建門面來隱藏不確定性,而是盡你所能對不確定性進行建模。

查看英文原文:Vaughn Vernon Uses Reactive DDD to Model Uncertainty in Microservices

關鍵字:Vernon不確定性

本文摘自:INFOQ

x Vaughn Vernon使用反應式DDD對微服務中的不確定性建模 掃一掃
分享本文到朋友圈
當前位置:新聞中心行業(yè)動態(tài) → 正文

Vaughn Vernon使用反應式DDD對微服務中的不確定性建模

責任編輯:editor004 作者:Thomas Betts |來源:企業(yè)網(wǎng)D1Net  2017-10-13 11:22:38 本文摘自:INFOQ

微服務和反應式模型雖然很強大,但也帶來了不確定性。開發(fā)人員總是對消息驅(qū)動的系統(tǒng)持有疑問:

有人接收到我發(fā)出的消息了嗎?他們對消息做出回應了嗎?消息的順序會不會被打亂了?

Vaughn Vernon在DDD探索大會的演講中提到,DDD是回答上述問題的基礎。使用通用語言(Ubiquitous Language)來描述由邊界上下文(Bounded Context)組成的系統(tǒng)可以降低分布式系統(tǒng)的復雜度。不確定性應該成為通用語言的一部分,比如邊界上下文之間的交互問題。

Vernon是“Implement Domain Driven Design”和“Reactive Messaging Patterns with the Actor Model”的作者,他認為為項目創(chuàng)建好上下文映射是至關重要的。從實際情況來看,業(yè)務的核心領域總會包含多個邊界上下文,而上下文映射體現(xiàn)了邊界上下文之間的關系。在建立上下文映射關系時,要專注在團隊之間的關系上,而不是去關注技術細節(jié),比如究竟是使用REST還是使用RPC。Vernon說,“集成對象比如何集成更加重要”。

Vernon看到了反應式系統(tǒng)的發(fā)展趨勢,反應式行為存在于微服務之中,同時又超越了微服務。這并非什么新概念,他說,Eric Evans早就在業(yè)界推廣事件模式。其核心思想就是對過去發(fā)生的事件作出反應,進而達到和諧的狀態(tài)。

微服務和反應式行為帶來了不確定性,包括事件順序的不確定性和事件的重復性問題。Vernon強調(diào)說,“就算你使用的是Kafka,認為自己是在按順序消費消息,但其實是在自欺欺人。如果任何一個消息可能出現(xiàn)亂序,那么所有消息都有可能出現(xiàn)亂序,你要為之做好應對準備”。

Vernon認為這種不確定性是很難得到消除的,因為我們已經(jīng)習慣于阻塞調(diào)用、數(shù)據(jù)庫鎖等事物,并總是期待事物是按照一定順序進行的。在反應式系統(tǒng)里,一些長久以來的信念開始土崩瓦解?;蛟S,開發(fā)者會本能地創(chuàng)建出門面(facade)來隱藏不確定性,寫出傳統(tǒng)的非反應式代碼,但Vernon認為我們應該要反其道而行之。

Vernon總結了自己處理不確定性的方式——“更少的查詢,更多的事件”。事件告訴我們在過去某個時刻發(fā)生了什么。我們不知道系統(tǒng)現(xiàn)在處于什么狀態(tài),只知道事件發(fā)生時的狀態(tài)以及在這一過程中發(fā)生了哪些變化。如何對這些事件作出反應式屬于業(yè)務決策,包括如何處理亂序問題。Vernon引用了Pat Helland的論文“Life Beyond Distributed Transactions”:“在一個不能依賴分布式事務的系統(tǒng)里,必須在業(yè)務層面管理不確定性”。

Vernon列舉了幾中不同形式的不確定性,并提供了用于管理不確定性的簡短代碼。他強調(diào)這些代碼只是業(yè)務決策的實現(xiàn)。業(yè)務必須擁抱不確定性,必須讓業(yè)務決策者來對其進行建模,而不是在軟件開發(fā)團隊內(nèi)部完成這件事情。不要通過創(chuàng)建門面來隱藏不確定性,而是盡你所能對不確定性進行建模。

查看英文原文:Vaughn Vernon Uses Reactive DDD to Model Uncertainty in Microservices

關鍵字:Vernon不確定性

本文摘自:INFOQ

電子周刊
回到頂部

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

企業(yè)網(wǎng)版權所有 ©2010-2024 京ICP備09108050號-6 京公網(wǎng)安備 11010502049343號

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

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 汾阳市| 延长县| 定边县| 定边县| 英德市| 平山县| 靖宇县| 盘山县| 宣武区| 洮南市| 铜山县| 南阳市| 方城县| 永嘉县| 岳普湖县| 西乌| 阿克陶县| 浠水县| 盖州市| 三亚市| 房山区| 大安市| 遂川县| 犍为县| 静乐县| 济南市| 博野县| 双城市| 新民市| 林西县| 台安县| 成安县| 社会| 泾源县| 色达县| 星子县| 合阳县| 翼城县| 五河县| 安义县| 安阳县|