自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

事件驅(qū)動(dòng)+推拉結(jié)合:智慧社區(qū)服務(wù)解耦新玩法

開(kāi)發(fā) 前端
在實(shí)現(xiàn)了基礎(chǔ)微服務(wù)的通信與解耦后,智慧社區(qū)可以引入增值服務(wù),通過(guò)服務(wù)的關(guān)聯(lián)進(jìn)一步豐富社區(qū)應(yīng)用場(chǎng)景。例如,智能充電、云廣播、出入提醒等服務(wù)可以依據(jù)不同的用戶需求,自動(dòng)化推送與定向推薦。

Hi,大家好!今天我們要聊聊“關(guān)聯(lián)微服務(wù)”的設(shè)計(jì),這是在智能社區(qū)項(xiàng)目中常見(jiàn)的一個(gè)大方向。如何利用微服務(wù)讓各個(gè)業(yè)務(wù)模塊靈活互聯(lián)、互通,幫助物業(yè)實(shí)現(xiàn)信息整合、數(shù)據(jù)清洗,同時(shí)能夠提供豐富的增值服務(wù)。我們將主要圍繞四大模塊來(lái)展開(kāi):

  • 智慧通行:打破物業(yè)多品牌系統(tǒng)的信息孤島;
  • 安全社區(qū):集成視頻識(shí)別、傳感監(jiān)控,形成預(yù)警體系;
  • 全屋智能:為業(yè)主提供更智能、便捷的生活體驗(yàn);
  • 增值服務(wù):提供多種智能服務(wù)及定向增值服務(wù)。

限界上下文下的微服務(wù)拆分

微服務(wù)拆分的核心,是根據(jù)限界上下文將領(lǐng)域模型劃分成多個(gè)子域。這個(gè)過(guò)程確保每個(gè)子域獨(dú)立、清晰,服務(wù)職責(zé)明確,為后續(xù)的業(yè)務(wù)獨(dú)立拓展提供基礎(chǔ)。

1.1 限界上下文劃分

在智慧社區(qū)的項(xiàng)目場(chǎng)景中,限界上下文非常重要,它明確了微服務(wù)的邊界、職責(zé),并確保各個(gè)模塊能夠有獨(dú)立的生命周期和自治管理。以下我們結(jié)合各個(gè)服務(wù)模塊,分析如何進(jìn)行限界上下文的劃分:

  • 通訊錄、短信、推送通知、支付、文件服務(wù):這些是核心的基礎(chǔ)服務(wù)模塊。由于各個(gè)業(yè)務(wù)系統(tǒng)都需要這些基礎(chǔ)服務(wù),我們可以將其拆分為獨(dú)立的子域模塊供其他微服務(wù)調(diào)用。這樣的設(shè)計(jì)讓通訊、支付等不依賴(lài)某個(gè)業(yè)務(wù),變得非常通用。
  • 人臉門(mén)禁、可視對(duì)講、電梯梯控、停車(chē)系統(tǒng)、訪客預(yù)約:這些屬于智慧通行子域,是對(duì)社區(qū)智慧管理的支撐系統(tǒng)。將這一子域獨(dú)立,能夠讓“通行”部分更加集中在智慧管理功能上,而不摻雜其他功能。
  • 視頻監(jiān)控、周界報(bào)警、高空拋物、跨域追蹤:這類(lèi)服務(wù)屬于安全社區(qū)子域。安全社區(qū)的所有服務(wù)以保障安全為主,聚焦視頻圖像識(shí)別、傳感器數(shù)據(jù)的采集處理等安全相關(guān)功能,并提供報(bào)警預(yù)警。
  • 超級(jí)面板、無(wú)線門(mén)鎖、煙感霧感:這是全屋智能子域,主要針對(duì)業(yè)主的家庭智能化需求。這里的服務(wù)應(yīng)該集中在家居控制、環(huán)境監(jiān)測(cè)等,以滿足全屋智能設(shè)備對(duì)接的需要。
  • 智能充電、云廣播、出入提醒、定向投放:這一部分屬于增值服務(wù)子域。增值服務(wù)可以通過(guò)matrix引擎實(shí)現(xiàn)智能場(chǎng)景裂變,支持多品牌產(chǎn)品融合,為業(yè)主提供個(gè)性化的增值體驗(yàn)。

1.2 微服務(wù)的組織形式

限界上下文的劃分后,每個(gè)模塊的服務(wù)依賴(lài)關(guān)系變得清晰。這種拆分帶來(lái)的核心好處就是解耦合、聚焦服務(wù)的“單一職責(zé)”,使各個(gè)模塊可以獨(dú)立維護(hù)、擴(kuò)展。比如支付服務(wù)可以完全獨(dú)立實(shí)現(xiàn)支付功能,不會(huì)因升級(jí)影響其他模塊。各個(gè)微服務(wù)之間的依賴(lài)性降低,適合高并發(fā)、高擴(kuò)展需求的場(chǎng)景。

充血模型與貧血模型的微服務(wù)設(shè)計(jì)

在限界上下文劃分清晰后,接下來(lái)我們要考慮的是如何設(shè)計(jì)微服務(wù)內(nèi)部的業(yè)務(wù)邏輯層次。微服務(wù)中,業(yè)務(wù)模型一般分為充血模型與貧血模型。簡(jiǎn)單來(lái)說(shuō),充血模型更適合需要領(lǐng)域強(qiáng)邏輯、復(fù)雜的業(yè)務(wù)場(chǎng)景,而貧血模型更注重?cái)?shù)據(jù)傳遞的簡(jiǎn)潔性。

2.1 貧血模型應(yīng)用

貧血模型的設(shè)計(jì)思路是將數(shù)據(jù)和業(yè)務(wù)邏輯分開(kāi)。對(duì)于數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、業(yè)務(wù)邏輯輕量的微服務(wù),比如通訊錄、短信、文件服務(wù)等,這種模型尤其適用。

在貧血模型下,服務(wù)中的Entity只負(fù)責(zé)數(shù)據(jù)存儲(chǔ),不承擔(dān)復(fù)雜的業(yè)務(wù)邏輯。Service層承擔(dān)業(yè)務(wù)邏輯,負(fù)責(zé)調(diào)用底層的數(shù)據(jù)操作。因此,貧血模型的微服務(wù)結(jié)構(gòu)會(huì)非常簡(jiǎn)潔,方便與其他服務(wù)的接口交互。

2.2 充血模型應(yīng)用

充血模型則適合復(fù)雜的業(yè)務(wù)服務(wù),例如智慧通行和安全社區(qū)的某些業(yè)務(wù)模塊。這些模塊往往包含復(fù)雜的業(yè)務(wù)邏輯和狀態(tài)維護(hù)。在充血模型中,Entity不僅包含數(shù)據(jù),還封裝業(yè)務(wù)邏輯,使得領(lǐng)域模型更加貼合業(yè)務(wù)邏輯。

以智慧通行模塊中的人臉門(mén)禁服務(wù)為例,系統(tǒng)不僅需要處理基本的用戶驗(yàn)證,還需要考慮用戶權(quán)限、時(shí)間段限制等。因此,這樣的業(yè)務(wù)邏輯就可以直接封裝在Entity中,實(shí)現(xiàn)權(quán)限和狀態(tài)的閉環(huán)控制。

充血模型能在微服務(wù)的業(yè)務(wù)邏輯層體現(xiàn)更豐富的業(yè)務(wù)語(yǔ)義,減少Service層的業(yè)務(wù)邏輯復(fù)雜度,提高代碼的可讀性。

通過(guò)領(lǐng)域事件通知機(jī)制實(shí)現(xiàn)服務(wù)解耦

為了讓微服務(wù)系統(tǒng)能高效工作,還需要讓各個(gè)服務(wù)間的通信保持松耦合。我們可以利用領(lǐng)域事件通知機(jī)制,實(shí)現(xiàn)微服務(wù)間的事件推送和數(shù)據(jù)同步。領(lǐng)域事件是解耦微服務(wù)之間邏輯的重要手段,它能夠?qū)I(yè)務(wù)變化以事件形式廣播給其他服務(wù),極大地降低了模塊間的耦合度。

3.1 事件推送

在推送事件的場(chǎng)景下,每個(gè)微服務(wù)只負(fù)責(zé)發(fā)布自己的事件,不需要關(guān)心哪些服務(wù)會(huì)消費(fèi)這些事件。例如,當(dāng)安全社區(qū)子域中的“周界報(bào)警”觸發(fā)警報(bào)時(shí),它可以通過(guò)領(lǐng)域事件通知視頻監(jiān)控、跨域追蹤等服務(wù),立即同步啟動(dòng)相關(guān)聯(lián)動(dòng)機(jī)制。

領(lǐng)域事件的核心是每個(gè)微服務(wù)發(fā)布的事件能夠自動(dòng)化通知到需要接收的其他微服務(wù)。這樣,推送通知服務(wù)只需監(jiān)聽(tīng)事件,并將通知發(fā)送給指定用戶,無(wú)需與其他微服務(wù)的代碼緊密耦合。

3.2 數(shù)據(jù)同步的拉取機(jī)制

在有些場(chǎng)景下,事件推送可能無(wú)法滿足數(shù)據(jù)實(shí)時(shí)一致性的需求。這時(shí)可以采用拉取機(jī)制,即各服務(wù)通過(guò)定時(shí)任務(wù),主動(dòng)從相關(guān)服務(wù)中拉取數(shù)據(jù)。這種方法適用于對(duì)數(shù)據(jù)實(shí)時(shí)性要求相對(duì)寬松的場(chǎng)景,比如全屋智能模塊可以定期從增值服務(wù)模塊拉取最新的用戶場(chǎng)景偏好數(shù)據(jù)。

例如,全屋智能中的“超級(jí)面板”需要實(shí)時(shí)掌握用戶的智能控制需求和定制場(chǎng)景,來(lái)更新面板的推薦項(xiàng)。這樣即便事件推送發(fā)生延遲,面板也能保證在下一個(gè)時(shí)間周期內(nèi)更新到最新?tīng)顟B(tài)。

智慧社區(qū)的增值服務(wù):跨品牌服務(wù)互聯(lián)

在實(shí)現(xiàn)了基礎(chǔ)微服務(wù)的通信與解耦后,智慧社區(qū)可以引入增值服務(wù),通過(guò)服務(wù)的關(guān)聯(lián)進(jìn)一步豐富社區(qū)應(yīng)用場(chǎng)景。例如,智能充電、云廣播、出入提醒等服務(wù)可以依據(jù)不同的用戶需求,自動(dòng)化推送與定向推薦。

增值服務(wù)的核心是“個(gè)性化”,我們可以基于matrix引擎進(jìn)行用戶畫(huà)像和場(chǎng)景化管理,為不同用戶推送特定內(nèi)容。比如,定向投放功能可以針對(duì)住戶的歷史操作習(xí)慣,投放他們可能感興趣的活動(dòng)或社區(qū)團(tuán)購(gòu)服務(wù)。

關(guān)聯(lián)微服務(wù)的設(shè)計(jì),通過(guò)限界上下文的明確劃分和業(yè)務(wù)模型的設(shè)計(jì),使得微服務(wù)模塊的職責(zé)清晰、獨(dú)立。在此基礎(chǔ)上,通過(guò)事件通知機(jī)制將服務(wù)解耦合,并通過(guò)推拉結(jié)合的方式保持?jǐn)?shù)據(jù)同步,實(shí)現(xiàn)各個(gè)子域模塊之間的高效、松耦合協(xié)作。

責(zé)任編輯:武曉燕 來(lái)源: 軟件求生
相關(guān)推薦

2024-03-08 16:27:22

領(lǐng)域事件DDD項(xiàng)目跨層解耦

2017-12-18 10:53:20

大數(shù)據(jù)云平臺(tái)社區(qū)服務(wù)

2009-02-16 15:36:41

SNS

2022-09-02 08:23:12

軟件開(kāi)發(fā)解耦架構(gòu)

2009-10-22 18:42:48

2013-09-16 10:19:08

htmlcssJavaScript

2016-11-30 15:30:42

架構(gòu)工具和方案

2023-09-26 01:18:55

解密系統(tǒng)業(yè)務(wù)

2023-07-12 08:30:52

服務(wù)架構(gòu)事件驅(qū)動(dòng)架構(gòu)

2020-11-20 15:22:32

架構(gòu)運(yùn)維技術(shù)

2021-03-10 05:50:06

IOCReact解耦組件

2017-07-06 12:52:12

智慧社區(qū)APP智慧城市

2022-04-15 11:46:09

輕量系統(tǒng)解耦鴻蒙操作系統(tǒng)

2018-04-18 08:47:17

Alluxio構(gòu)建存儲(chǔ)

2020-10-23 14:18:00

智慧社區(qū)互聯(lián)網(wǎng)科技

2016-04-25 14:12:46

Top Show虛擬現(xiàn)

2015-07-31 15:29:21

智慧社區(qū)昆明廣福城華為

2018-03-28 10:32:18

微服務(wù)無(wú)服務(wù)器CQRS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)