SpringCloud配置熔断&负载均衡

首先的是pom的依赖

 <dependencies>
        <!-- Eureka依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!-- Feign依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
		//这个仔provider中加载
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-netflix-eureka-client</artifactId>
        </dependency>
		//以上的三个都要放到consumer当中

        //这个在server模块中加载
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

consumer配置

#服务的端口号
server.port=9083
#服务的名字,自己可以随便起
spring.application.name=EUREKA-CONSUMER
//provider只需要配置上面三个即可


#配置服务器节点
eureka.client.service-url.defaultZone=http://localhost:9080/eureka

service-provider.ribbon.NIWSServerListClassName=com.netflix.loadbalancer.ConfigurationBasedServerList
service-provider.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
#service-provider.ribbon.listOfServers=localhost:8081
#启用熔断机制
feign.hystrix.enabled=true

这个是server模块的配置

#服务的端口号
server.port=9080
#服务的名字,自己可以随便起
spring.application.name=EUREKA-SERVER1

#配置数据复制的peer节点
eureka.client.service-url.defaultZone=http://localhost:9080/eureka
##关闭自我保护
eureka.server.enable-self-preservation=false
#不注册自己到Eureka注册中心
eureka.client.register-with-eureka=false
##配置不获取注册信息
eureka.client.fetch-registry=false

下面是主要的代码

@FeignClient(name = "EUREKA-PROVIDER")
@EnableCircuitBreaker  //熔断的注解
public interface ControllerApi {
    @RequestMapping("/commen/list")
    public String list();
}
------------------------------------------
@Component
public class OrderApiHandler implements ControllerApi {
    @Override
    public String list() {
        return "出错了弟弟!~";
    }
}
------------------------------------------
 @RequestMapping("/commen/list")
    public  String list(){
        return  controllerApi.list();
    }
上面是通过FeignClient注解实现负载均衡与熔断的
------------------------------------------
   @Autowired
    private LoadBalancerClient loadBalancer;

    @RequestMapping("/commen/list")
//    @HystrixCommand(fallbackMethod = "callFallback")
    public  String list2(){
        System.out.println("这是原来的");
        ServiceInstance serviceInstance = loadBalancer.choose("EUREKA-PROVIDER");
        System.out.println("服务地址:" + serviceInstance.getUri());
        System.out.println("服务名称:" + serviceInstance.getServiceId());

        String callServiceResult = new RestTemplate().getForObject(serviceInstance.getUri().toString() + "/commen/list", String.class);
        System.out.println(callServiceResult);
        return  "来了";
    }
//这个是通过注入对象实现的

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
consummer启动类 其他的启动类没有什么不同
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值