我目前正在構建一個基於微服務的應用程序,這個應用程序是用平均堆棧開發的,我遇到了幾種需要在有界上下文之間共享模型的情況。微服務:在有界的上下文之間共享模型
作爲一個例子,我有一個用戶服務來處理註冊過程以及登錄(生成jwt),註銷等。我還有一個文件服務,用於處理用戶發生的配置文件圖片和其他圖像的上傳上傳。另外,我有一個跟蹤會員之間關係的朋友服務。
目前,我將用戶的guid從用戶服務使用的用戶表以及第一個,中間和最後一個名稱字段添加到File表和Friend表中。通過這種方式,無論何時在其他服務(朋友和文件)中需要這些字段時,都可以查詢這些字段,而無需在每次查詢時都進行任何休息調用以獲取信息。
這裏是警告:
缺點似乎是,我必須這樣做,我選擇了與塞涅卡RabbitMQ的,通知文件和朋友表只要用戶更新從用戶表的信息。
1)我應該擔心服務變得過於健談嗎?
2)這是否會導致任何性能問題,如果很多更新發生一個多小時,假設? 3)在試圖隔離邊界時,我只是沒有看到另一種解決方法。什麼是解決這個問題的建議方法,我在正確的軌道上?
*我應該擔心服務過於嘮叨?* - 不,服務應該發佈所有相關的狀態更改。 *如果更新發生在一個小時以上,會導致任何性能問題,比如說?* - 消息隊列的設計基本上是爲了應對大量數據。 *解決此問題的建議方法是什麼...? - 我的建議是不要再擔心了。你目前的做法是最佳的。 –
因此,保存文件和朋友的每條記錄的First,Middle,Last name,user guid(fk)字段或創建一個單獨的用戶表來存儲f,m,l,guid字段和只需將guid複製到Friend和File表。看起來,如果需要通過傳入隊列消息更新f,m,l字段,這可能會更有效率? – user1790300
那麼,爲File和Friends的每個記錄保存First,Middle,Last name,user guid(fk)字段還是創建一個單獨的用戶表將存儲f,m,l,guid字段和只需將guid複製到Friend和File表。看起來這樣可以更有效地更新f,m,l字段需要從傳入的隊列消息中創建,因爲我只會更新一個記錄而不是幾個? – user1790300