springCloud

RestTemplate

RestTemplate 是 spring 提供给我们的微服务http rest 远程调用组件, 可以这么使用

@Bean
@LoadBalanced //使用@LoadBalanced注解赋予RestTemplate负载均衡的能力

   public RestTemplate restTemplate(){
      return new RestTemplate();
   }
restTemplate.postForObject( "http://CLOUD-PAYMENT-SERVICE/"+ "/payment/create" ,payment,CommonResult.class );
 restTemplate .getForObject( "http://CLOUD-PAYMENT-SERVICE/" + "/payment/get/" +id, CommonResult. class , id);

加入 @LoadBalanced 这个注解后 RestTemplate 可以直接和我们注册中介结合, 使用 服务名称 调用服务并且有负载均衡的能力, 在没有加入LoadBalanced 注解的时候是无法和注册中心结合的;

@EnableDiscoveryClient

spring 定义的 必须放入spring boot 主启动类, 表示这是一个注册中心的客户端, 像 Eureka 、consul、zookeeper 都实现了这个注解客户端@EnableEurekaClient = EnableDiscoveryClient

Ribbon

他可以实现我们的在客户端的负载均衡策略, eureka , consul, zookeeper, 客户端都默认 引入 了 Ribbon 在使用 RestTemplate @ LoadBalanced 注解的时候这个时候也就开启了负载均衡策略, 有很多这里就不多说了, 默认策略是轮询策略,

public IRule ribbonRule() {
   return new RandomRule();//这里配置策略,和配置文件对应
 }  

@EnableFeignClients

Feign默认的情况下会集成 Ribbon @EnableFeignClients 是开启Feign客户端代理, 它对 Ribbon 进行了一次包装, 让我们调用Http rest 接口像调用 RPC框架一样简单方便

Hystrix

对服务的 降级 -> 熔断 -> 限流

  • 降级: 举例来说以前比如查询查出100条记录, 现在服务无法访问了(超时 …) 我们可以吧数据查询10条给 用户 或者返回一个错误页面 及降低服务的能力
  • 熔断: 在 客户端调用服务端多次无法返回正常数据的时候 吧这个服务剔除调用其他服务, 为什么这么做, 如果服务已经达到 了极限 我们客户端一直调用 那么会导致这个服务卡死, 或者数据库等奔溃 , 所以需要熔断;
  • 限流: 对每个服务进行限流超过浏览 直接返回异常, 或者排队
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值