ribbon客户端负载均衡

2019-11-10  本文已影响0人  我是啵啵

在消费者中引入

   <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <version>2.0.2.RELEASE</version>
        </dependency>

写yml

server:
  port: 80

eureka:
  client:
    registerWithEureka: false # 服务注册,false表示不将本消费者注册到 Eureka 服务器
    fetchRegistry: true # 服务发现,true从 Eureka 服务器中获取注册信息
    serviceUrl:
      default

配置类上加上

 */
@Configuration //标识配置类
public class ConfigBean {

   @LoadBalanced
    @Bean
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

}

配置类上标识@EnableEurekaClient


@SpringBootApplication
public class ProductConsumer_80 {

    public static void main(String[] args) {
        SpringApplication.run(ProductConsumer_80.class, args);
    }

}


image.png

检测:
(http://localhost/consumer/product/list)

创建provider集群

对应了不同数据库的访问


image.png image.png

但是是同一个服务 只会有一个服务名

feign 客户端接口调用

使用:

通过定义接口
接口上加注解 使用
就像 mapper 和service一样
就不用resettlement 进行远程调用了
导入pom

     <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

复制 consumer 的pom和com包 yml
写service 接口 和provider里面的一样
删掉resettlement 的config 配置类

controller 上调

  @Autowired
   ProductClientService service;

    @RequestMapping(value = "/consumer/product/add")
    public boolean add(Product product) {
        return service.add(product);
    }

service 这里面只有接口 而且是再注册中心找指定了服务名称

@FeignClient(value = "microservice-product") //指定调用的微服务名称
public interface ProductClientService {

    @RequestMapping(value = "/product/add", method = RequestMethod.POST)
    boolean add(@RequestBody Product product);

    @RequestMapping(value = "/product/get/{id}", method = RequestMethod.GET)
    Product get(@PathVariable("id") Long id);

    @RequestMapping(value = "/product/list", method = RequestMethod.GET)
    List<Product> list();

}

启动类上

@EnableEurekaClient
@SpringBootApplication
//会扫描指定包下面使用@FeignClient标识的接口
@EnableFeignClients(basePackages = "com.mengxuegu.springcloud.service")

开启服务测试
然后关闭服务提供者
他自己的客户端就会自己熔断


image.png
上一篇 下一篇

猜你喜欢

热点阅读