有了速卖通中间件的spring-boot-starter-hsf,在基于spring boot微服务中使用hsf,是件简单而惬意的事情。
我们首先来看最简单的服务注册
再附上最简单的服务调用
然后是入口类
然后是……,没有了,就这么愉快地结束了。
以上代码实现,对于通用的微服务来说已经足够。但对于我们idst的智能语音交互服务来说,还差点东西要填。
我们的每一种服务(确切地说,是由一份java代码+一份c++代码编译后,容器化的一个镜像)会因为启动时引导的租户配置不同,而加载不同的算法模型。容器启动后,不同租户的服务,只在流程上是一致的。也就是说,镜像是一个,容器按租户分组。
那么,使用<code>@hsfprovider</code>这种静态注册服务的方式就不够用了,服务启动时,要从运维系统获取租户的分组信息,然后将其作为服务名称的一部分,注册为hsf服务。
这时,最理想、最优雅的方式就是使用java config来编程实现了:
相应地,服务调用可以是这样(调用端使用上述方式也是可以的,这里只为了保持风格一致,别怪我强迫症):