前言 上一篇講了事件,以及為什么要使用事件,主要是為了解耦,但是有同學就問了,同步如果訂閱事件的人太多,比如13億人都關心上頭條的事,那么RaiseEvent得等13億人都處理完,那得多久呀,從此再也不敢發事件了。 舉個例子,你在網上下單,下完單要通知庫房,甚至要通知供應商補貨,如果都是同步的話 ...
前言 上一篇說到為什么要使用事件驅動,但是只有概念是不夠的,我們要代碼呀 記得臉書的老總說過: Talk is cheap, Show me the code 實現思路 發出事件 事件顧名思義就是一件事情發生了,比如我要上頭條,這不是一個事件,這事一個Command, HeadCommand, 而我上頭條了這就是一個事件HeadedEvent,事件就是一件事情已經發生了。 好,先來一個偽代碼 所以 ...
2015-02-11 18:05 14 4118 推薦指數:
前言 上一篇講了事件,以及為什么要使用事件,主要是為了解耦,但是有同學就問了,同步如果訂閱事件的人太多,比如13億人都關心上頭條的事,那么RaiseEvent得等13億人都處理完,那得多久呀,從此再也不敢發事件了。 舉個例子,你在網上下單,下完單要通知庫房,甚至要通知供應商補貨,如果都是同步的話 ...
前言 今天講一下事件驅動,這個不是領域驅動設計里的事件源(Event Source), 這個以后再講,今天主要講一下如何用事件來解耦,主要的原因是我們有個項目有個功能我覺得用事件的方式比較好,正好寫篇博客,就不用專門給他們講了。 解耦 說到解耦,我們很熟悉分層設計,比如上層依賴於抽象,不依賴 ...
的DDD原則。 這是“領域驅動設計實踐之路”系列的第二篇文章,分析了如何應用事件來分離軟件核心復雜度 ...
上一篇:《IDDD 實現領域驅動設計-SOA、REST 和六邊形架構》 閱讀目錄: CQRS-命令查詢職責分離 EDA-事件驅動架構 Domin Event-領域事件 Long-Running Process(Saga)-長時處理 ...
本篇是“事件驅動的微服務”系列的第二篇,主要講述事件驅動設計。如果想要了解總體設計,請看第一篇"事件驅動的微服務-總體設計" 程序流程 我們通過一個具體的例子來講解事件驅動設計。 本文中的程序有兩個微服務,一個是訂單服務(Order Service), 另一個是支付服務(Payment ...
一、引言 在當前的電子商務平台中,用戶下完訂單之后,然后店家會在后台看到客戶下的訂單,然后店家可以對客戶的訂單進行發貨操作。此時客戶會在自己的訂單狀態看到店家已經發貨。從上面的業務邏輯可以看出,當 ...
最近一直在思考一個問題:有沒有這樣一種可能,就是一個領域模型的狀態不依賴於外部,它只負責接收外部的事件,然后根據這些事件做出響應;響應分兩種: 根據模型當前的內存狀態進行業務邏輯處理,然后產生事件,注意:這個過程不會改變模型當前的內存狀態; 根據事件改變自己的狀態; 另外,也是 ...
一、概念 領域模型並不能直接帶來收益,只是輔助我們去理解正在做的事情。 引用百度的說法,“領域模型是對領域內的概念類或現實世界中對象的可視化表示。又稱概念模型、領域對象模型、分析對象模型。它專注於分析問題領域本身,發掘重要的業務領域概念,並建立業務領域概念之間的關系。”總結一下,就是“准確描述 ...