天天看點

多租戶微服務中使用Java Config注冊HSF服務

有了速賣通中間件的spring-boot-starter-hsf,在基于spring boot微服務中使用hsf,是件簡單而惬意的事情。

我們首先來看最簡單的服務注冊

再附上最簡單的服務調用

然後是入口類

然後是……,沒有了,就這麼愉快地結束了。

以上代碼實作,對于通用的微服務來說已經足夠。但對于我們idst的智能語音互動服務來說,還差點東西要填。

我們的每一種服務(确切地說,是由一份java代碼+一份c++代碼編譯後,容器化的一個鏡像)會因為啟動時引導的租戶配置不同,而加載不同的算法模型。容器啟動後,不同租戶的服務,隻在流程上是一緻的。也就是說,鏡像是一個,容器按租戶分組。

那麼,使用<code>@hsfprovider</code>這種靜态注冊服務的方式就不夠用了,服務啟動時,要從運維系統擷取租戶的分組資訊,然後将其作為服務名稱的一部分,注冊為hsf服務。

這時,最理想、最優雅的方式就是使用java config來程式設計實作了:

相應地,服務調用可以是這樣(調用端使用上述方式也是可以的,這裡隻為了保持風格一緻,别怪我強迫症):