[笔记]SpringCloud学习05: 服务提供方集群

服务提供方集群搭建

参考之前搭建好的服务提供方工程,再创建一个新的工程,要注意application.yml中,spring.application.name属性要和之前的一致,完成后启动服务

eureka
eureka

服务消费方请求地址修改

在消费方工程中,将请求地址改为微服务名称

package com.ilirus.springcloud.controller;

/* import ... */

@RestController
@RequestMapping("/consumer")
@Slf4j
public class OrderController {
    private static final String PAYMENT_URL = "http://irs-provider-payment/payment";

    @Resource
    private RestTemplate restTemplate;

    @GetMapping("/payment/create")
    public CommonResult create(Payment payment) {
        return restTemplate.postForObject(PAYMENT_URL+"/create", payment, CommonResult.class);
    }

    /* ... */
}

因为目前irs-provider-payment服务下有两个实例,直接使用服务名并不能让程序知道你想用具体哪一个,所以还需要进一步配置

RestTemplate 配置负载均衡

修改RestTemplate配置类

package com.ilirus.springcloud.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced  // 授予restTemplate负载均衡能力
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }
}

至此,全部配置完成

负载均衡
负载均衡