[英]event-driven microservices id generation
我是微服務的新手。 我正在嘗試創建一個微服務架構,其中有一個API網關應該只接收請求並相應地創建一個事件。 然后,該事件將被微服務攔截,該微服務將所需的數據存儲到數據庫中。
也許我在設計上犯了一個錯誤,但是我希望在客戶端調用API網關后,請求將異步進行,並且不能保證數據的一致性。
那么客戶端如何知道資源是否已創建及其ID?
客戶也應該聽事件嗎?
這是正確的體系結構還是我走錯了路?
預先感謝您的評論!
注意:我沒有使用任何結構化框架。 我喜歡它們,但這主要是一個實驗,我希望一切都保持簡單。 無論如何,如果您的建議涉及spring或任何Java框架,我都會開放。
(編輯)
另一個有趣的觀點。 讓我們假設API響應是異步的,如果客戶端必須插入由兩個資源(由其自己的ID標識)構成的聚合數據,那么如何通過事件驅動的體系結構來實現此目的?
在同步調用和異步調用之間有兩種選擇,后者允許更靈活的體系結構,因此如果您要這樣做,則可以選擇它。
也許我在設計上犯了一個錯誤,但是我希望在客戶端調用API網關后,請求將異步進行,並且不能保證數據的一致性。
那么客戶端如何知道資源是否已創建及其ID?
不知道 我看到兩個選擇:
分開的事件和命令 。
事件是過去發生的事情,將事件發送到服務器僅會收到一個確定的響應。
命令是您需要響應時使用的東西,例如id或創建用戶時,需要檢查電子郵件是否已在使用中。 然后,該命令發送一個帶有用戶信息的“用戶創建”事件,並將用戶的ID返回給運行該命令的用戶(例如,前端客戶端)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.