天天看點

簡單微服務建立和微服務間的調用建立簡單的微服務并實作微服務互相調用

建立簡單的微服務并實作微服務互相調用

  1. 建立項目

    a、建立項目

    簡單微服務建立和微服務間的調用建立簡單的微服務并實作微服務互相調用

    b、 配置檔案簡單配置

    server.port=8771

    spring.cloud.client.ipAddress =client1

    //注冊中心ip

    eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

    //注冊名

    spring.application.name=product-server

    //使用真實ip

    eureka.instance.prefer-ip-address=true

    //注冊中心顯示名字

    eureka.instance.instance-id= s p r i n g . c l o u d . c l i e n t . i p A d d r e s s : {spring.cloud.client.ipAddress}: spring.cloud.client.ipAddress:{server.port}

  2. 微服務的調用方式

    a、RestTemplate類

    1)啟動類添加方法傳回一個RestTemplate

    @Bean

    @LoadBalanced

    public RestTemplate restTemplate(){

    return new RestTemplate();

    }

    2)調用:

    注入:@Autowired

    private RestTemplate restTemplate;

    調用:Map map= restTemplate.getForObject(“http://orderservice/getById?id=”+123(拼接通路的URL),Map.class(指定傳回類型));

    b、LoadBalancerClient類

    1)注入

    @Autowired

    private LoadBalancerClient loadBalancerClient;

    2)調用:

    //通過被調用服務注冊的名字擷取被調用方的資訊

    ServiceInstance serviceInstance =loadBalancerClient.choose(“product-server”(調用服務注冊的名字));

    //拼接url

    String url =“http://”+serviceInstance.getHost()+":"+serviceInstance.getPort()+"/findById?id="+Id;

    注:有時候用注入的RestTemplate類調用會報錯No instances available for 192.168.1.123 ,自己建立一個 RestTemplate 在調用就好了

繼續閱讀