SpringCloud 應用間通訊基於HTTP的Restful調用方式有兩種,RestTemplate與Feign。java
1.RestTemplate應用間通信spring
經過 @LoadBalanced,可在restTemplate 直接使用應用名字。app
@Component public class RestTemplateConfig { @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }
@Autowired private RestTemplate restTemplate; @Override public String hello() { //使用RestTemplate通信調用auth-server服務 String url="http://auth-server/hello"; //返回值類型和咱們的業務返回值一致 return restTemplate.getForObject(url, String.class); }
2.Feign應用間通信ide
引入依賴注意要加版本號,不然引入依賴可能失敗url
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> <version>1.4.2.RELEASE</version> </dependency>
啓動類須要增長註解@EnableFeignClients
spa
@EnableFeignClients @EnableEurekaClient @SpringBootApplication public class ManagerServerApplication { public static void main(String[] args) { SpringApplication.run(ManagerServerApplication.class, args); } }
須要編寫接口聲明@FeignClient
參數註解代表這個是Fegin客戶端,name參數指定訪問的服務網關rest
@FeignClient(name = "auth-server")//服務網關 public interface TestClient { @RequestMapping("/fegin/hello")//調用的服務 String feginHello(); }
調用code
@Autowired private TestClient testClient; @Override public String feginHello() { //使用fegin通信調用auth-server服務 return testClient.feginHello(); }