spring cloud 微服務應用間通信

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>

啓動類須要增長註解@EnableFeignClientsspa

@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();
    }
相關文章
相關標籤/搜索