簡體   English   中英

將用戶界面(UI)作為springboot中的不同微服務

[英]User Interface(UI) as a different microservice in springboot

我有多個微服務,每個微服務用於特定的任務/活動。 我正在使用UREKA以及網關服務。

因此,我的問題是我是否應該具有可以處理所有微服務的UI活動的其他UI微服務? 還是我應該由相應的微服務來處理UI部分?

是的,這個問題的答案是業務需求。

我的需要是我應該具有不同的UI微服務。 因此,再次出現以下架構問題,請幫助解決。

UI Microservice :用戶發出HTML請求,請求綁定到適當的對象,例如Employee POJO。 我將處理該pojo中的所有UI驗證以及控制器中的其他自定義驗證。
成功驗證后,我向Employee Microservice進行偽API調用以保存雇員對象。

Employee Microservice :此微服務將僅包含RestController,因為此處沒有UI活動。 上述調用由適當的控制器接收,並將Employee對象綁定到Employee Microservice的Employee對象中。 然后,該雇員對象傳遞到服務層,並轉換為適當的JPA,並保存到數據庫中。

請參閱此處,我的Employee類在UI微服務和Employee微服務中重復。 這是我的問題,我們如何消除重復的Employee類? 當我的UI微服務處理所有其他微服務的UI部分時,我的所有微服務POJO將在UI服務中進行復制,從而進行開銷修改任務和重復操作。 一種解決方案是將UI微服務的Employee對象綁定到其他服務的JPA Pojo直接,但是我不想在服務層之前公開JPA POJO。 還是這是個好方法?

有解決方案嗎? 任何設計模式?

UI微服務或服務或應用程序,無論是什么問題,但重復POJO的問題都是我關注的問題

如果這是您唯一關心的問題,是的,這就是微服務,代碼重復的詛咒。

您有解決此問題的創造性方法

  1. 通過發布具有所有共享POJO的jar

要么

  1. 將所有代碼庫都放在一個monorepo中,並作為一個單獨的jar進行構建(恭喜,盡管您的應用程序將是微服務,但您現在已經擁有一個整體代碼庫)。

恕我直言,不要只是掛在那里。 如果您的微服務A是用JVM語言編寫的,而微服務B是用go語言編寫的,那該怎么辦。 您不能在那里共享任何類型的類(AKA POJO)。

順便說一句,我不會有UI微服務。 我寧願有一個單頁應用程序(例如Angular / React / Vue / Yet-another-javascript-framework)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM