微服務(wù)業(yè)務(wù)開發(fā)三個難題-拆分悼沈、事務(wù)、查詢(下) | 程序猿DD | 博客 http://blog.didispace.com/microservice-three-problem-2/
上集我們闡述了使用微服務(wù)體系架構(gòu)的關(guān)鍵障礙是領(lǐng)域模型姐扮,事務(wù)和查詢絮供,這三個障礙似乎和功能拆分具有天然的對抗。只要功能拆分了茶敏,就涉及這三個難題壤靶。
然后我們向你展示了一種解決方案就是將每個服務(wù)的業(yè)務(wù)邏輯實(shí)現(xiàn)為一組DDD聚合。然后每個事務(wù)只能更新或創(chuàng)建一個單獨(dú)的聚合惊搏。然后通過事件來維護(hù)聚合(和服務(wù))之間的數(shù)據(jù)一致性贮乳。
在本集中,我們將會向你介紹使用事件的時候遇到了一個新的問題恬惯,就是怎么樣通過原子方式更新聚合和發(fā)布事件向拆。然后會展示如何使用事件源來解決這個問題,事件源是一種以事件為中心的業(yè)務(wù)邏輯設(shè)計(jì)和持久化的方法酪耳。之后浓恳,我們會闡述微服務(wù)架構(gòu)下的查詢困難的問題。然后向你介紹一種稱為命令查詢責(zé)任分離(CQRS)的方法來實(shí)現(xiàn)可擴(kuò)展和高性能的查詢。