浅析Feign与RestTemplate

背景:Spring Boot 微服务架构与多租户模式

在微服务架构中,各服务之间的通信使用@FeignClient绑定服务名就能简单方便的实现接口调用。

@FeignClient(serviceId = "source")
public interface CoreClientService {
}

但是在多租户模式下,为保证租户tanancyId的数据隔离,为每一个租户资源部署一个服务,服务名假设为:SOURCE_tanancyId。

当系统服务要去访问租户资源服务时,再使用Feign调用的方式显然行不通。此时可以使用RestTemplate访问租户资源服务。

Object result = restTemplate.getForObject("url",Object.class);

根据租户tanancyId动态拼接url来控制访问租户资源服务器,以此实现系统服务动态访问租户资源。

小结:Feign使用更为简单,也方便服务降级管理,但略失灵活;RestTemplate同样简单实现http调用,可灵活改变访问对象,但在拼接url方面稍显麻烦。

你可能感兴趣的:(Feign,初学)