Spring Cloud

配置中心 Config

是SpringCloud的配置中心组件,集中管理配置文件,是客户端和服务器端CS模式,配置文件基于Git的。

服务的注册和发现 Eureka

 

Netflix公司提供的服务注册和发现组件

Netflix相关的组件:Eureka、Ribbon、Hystrix、Zuul、Config等

注册中心的作用:服务提供者启动后将自己的IP和端口注册到注册中心上,服务消费者从注册中心获得服务提供者的IP和端口进行连接,

服务提供者和消费者每隔30s向注册中心发送心跳,如果90s没有发送,注册中心会剔除掉失效的服务器。

路由 Gateway

Gateway是SpringCloud提供的API网关,提供主要功能有:路由和鉴权以及限流、统一配置等。

 

服务和服务之间的调用 OpenFeign

Feign的简介

SpringCloud提供的声明式的REST客户端,实现远程的服务的调用,只需要编写接口和SpringMVC的注解就能完成调用。

Feign = RestTemplate + Ribbon + Hystrix

Feign的用法

  1. 引入依赖 openfeign

  2. 在启动类上加 @EnableFeignClients("Feign接口所在的包名")

  3. 编写Feign接口,在接口上加@FeignClient("被调用的服务名")

  4. 在Feign接口中编写方法(对应提供者的方法),方法可以使用SpringMVC的注解

  5. 注入接口对象,通过方法实现远程调用

负载均衡 Ribbon

服务器为了提高并发性能、可用性一般会以集群方式部署

负载均衡是将流量均匀的分配到每一台服务器上,从而实现集群作用的最大化

负载均衡分为:

服务器端实现

Nginx(软件)、F5(硬件)

客户端实现

Ribbon基于注册中心实现,服务消费者调用服务提供者集群时,Ribbon通过注册中心拉取服务地址,通过特定的负载均衡策略实现服务调用

 

Ribbon的使用

1)引入Ribbon依赖,已经包含在Eureka-Client依赖中

2) 在RestTemplate加@LoadBalanced

3) 调用提供者时自动生效

配置商品服务的伪集群

 

 

熔断器 Hystrix

Netflix提供的熔断器,能在服务出现长时间等待或崩溃的情况下提供一系列处理方法,解决服务雪崩的问题。

方法有:

熔断:当失败率达到一定的阈值,会触发熔断,进行快速失败。

降级:降级处理,返回兜底数据

缓存:对请求进行缓存、请求合并处理

实时监控、报警、控制等

使用方法:

  1. 引入hystrix依赖

  2. 在启动类加 @EnableHystrix

  3. 在需要熔断降级的方法上添加注解 @HystrixCommand(fallbackMethod="降级方法名")

  4. 在同一个类中添加降级方法,返回兜底数据

    @Service
    public class ProductService {
    ​
        @Autowired
        private RestTemplate restTemplate;
    ​
        //熔断和降级
        @HystrixCommand(fallbackMethod = "getProductByIdFallback")
        public Product getProductById(Long id){
            //商品服务查询商品
            ResponseEntity<Product> entity =
                    restTemplate.getForEntity("http://product-service/product/" + id, Product.class);
            return entity.getBody();
        }
    ​
        //降级方法
        public Product getProductByIdFallback(Long id){
            //兜底的商品对象
            return new Product(0L,"兜底商品",new BigDecimal("0"));
        }
    }

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值