建立微服務

微服務是一種JHipster應用程式,它沒有前端(必須在閘道器)上生成Angular前端),並且可以與JHipster Registry一起設定,發現和管理。

在微服務架構中生成實體

在微服務架構中,使用實體子產生器的工作方式略有不同,因為前端和後端程式碼不在同一應用程式中。

首先,在微服務應用程式中生成實體:這是一個常用操作,您還可以使用JHipster UMLJDL Studio來幫助您生成複雜的實體和關係。由於微服務沒有前端,因此不會生成Angular/React程式碼。

然後,在閘道器上,再次執行實體子產生器。開頭將出現一個新問題,該問題將特供於閘道器:

  • 您可以選擇正常生成一個新實體(閘道器也是標準的JHipster應用程式,因此這對於Monolith應用程式來說可以正常工作),或者選擇使用微服務中現有的JHipster設定。
  • 如果選擇從微服務生成實體,則需要在本地電腦上指定該微服務的路徑,然後JHipster將在閘道器上生成前端程式碼。

使用Hazelcast進行分散式快取

如果您的應用程式使用SQL資料庫,那麼JHipster會為微服務提出一個不同的第二級快取解決方案:

  • JHipster的預設微服務快取解決方案是Hazelcast
  • 您仍然可以選擇Ehcache(monolith應用程式的預設解決方案)或Caffeine,或者選擇完全不使用快取

此解決方案是微服務的預設設定,因為在此架構中,您可以擴充套件服務:

  • 使用本地快取,您的服務實例將沒有服務間同步的快取,從而導致資料不正確
  • 沒有任何快取,擴充套件的負擔將被推到資料庫上,這將不是很好(除非您使用我們的Cassandra選項)

將Hazelcast與微服務一起使用將產生特定的設定:

  • 在啟動時,您的應用程式將連線到JHipster Registry,以查詢同一服務的其他實例是否正在執行
  • 透過dev設定檔案,JHipster將在本地主機(127.0.0.1)上建立這些實例的叢集,每個實例使用一個不同的連接埠。預設情況下,Hazelcast連接埠是應用程式的連接埠+5701(因此,如果您的應用程式的連接埠是8081,Hazelcast將使用連接埠13782
  • 藉助prod設定檔案,JHipster將使用預設的Hazelcast連接埠(5701)建立一個包含所有找到的其他節點的叢集。

沒有資料庫的微服務

沒有資料庫,只能建立微服務應用程式。這是因為微服務很小,並且沒有用戶管理程式碼。

沒有資料庫的微服務非常小,可以用來連線到特定的後端(如舊版系統)。