springCloud组件介绍

一、CAP理论

        在介绍springCloud之前,我们需要先了解CAP理论。CAP理论又称布鲁尔定理,于1998年第一次提出。最初提出是指分布式数据存储不可能同时提供以下三种保证中的两种以上:
1.一致性(Consistency):每次读取收到的信息都是最新的;
2.可用性(Availability):每个请求都会收到(非错误)的响应;
3.分区容错性(Partition tolerance):尽管节点间的网络不通导致分区,系统仍在继续运行。
        事实上,所有分布式系统都必须在CAP这三点上做出权衡。

二、springCloud组件之Eureka

        springCloud是一套微服务框架,它由一套组件组成。那么什么是微服务呢?举个例子,前端需要一个用户与订单组合的数据,但是如果既拿用户数据又拿订单数据再去前端组成,可能会造成卡顿,用户体验下降。所以我们可以只让前端调用用户模块,再由用户模块调用订单模块,即由后台系统去内部调用最后组成数据返回到前端。需要说明的是,这里的用户模块和订单模块不是耦合在一起的,它们可以是分别两套完整的系统,部署在不同的机器上,这里的用户模块和订单模块就是两个不同的微服务。
        当系统并发比较大时,一个用户服务和一个订单服务的机器可能不能承受压力,所以我们可能需要两个用户服务的机器和三个订单服务的机器。这样就涉及到我们要调用哪个用户服务和哪个订单服务了,这就需要用到微服务系统中的服务注册与发现。Eureka就是一个微服务系统中的注册中心,它用来感知服务的变化,并管理服务。
        微服务系统中有这两种角色:服务提供者和服务消费者。当服务提供者启动时,定时向EurekaServer注册自己的服务信息(包括服务名、ip和端口等等);当服务消费者启动时,后台定时拉取EurekaServer中存取的服务提供者的信息,然后服务消费者就能调用到服务提供的的服务。在EurekaClient初始化时,会启动一个心跳任务,它会向EurekaServer发出一次请求,去判断当前的实例是否注册到了EurekaServer上,若没有,则注册,EurekaServer接收到注册的请求,把EurekaClient的实例ID作为作为key,把实例作为value放入一个concurrentHashMap;若已经注册,则EurekaClient返回实例正常地状态。EurekaClient通过后台定时任务,定时从EurekaServer拉取服务信息,存到自己的内存中。同时,EurekaServer还有剔除机制,即当在心跳时间内没有收到EurekaClient的消息,则会剔除服务。但是,我们通常会开启Eureka的自我保护机制以不启用这项剔除服务,因为若是网络波动导致正常的服务在一个心跳时间内没有连接上EurekaServer就把它剔除的话,会导致服务大面积不可用,这违反了分布式系统中的可用性。所以,即使服务不可用我们一般也不会直接把它剔除掉,而是利用其它的补偿机制,比如hystrix的降级机制。

三、springCloud组件之Ribbon

        多个相同的服务提供者注册到注册中心,服务消费者该去选择哪一个实例呢?springCloud中提供了Ribbon组件去实现了客户端负载,即由服务消费端自己去做选择调用哪个服务。Ribbon组件负载规则包括:
1.ZoneAvoidanceRule:区域规避策略(默认策略);
2.AbstractLoadBalanceRule:抽象策略;
3.RoundRobinRule:轮询策略;
4.BestAvailableRule:最小调用数策略;
5.RandomRule:随机策略;
6.RetryRule:重试策略;
7.weightedResponseTimeRule:权重策略;
8.AvailabilityFilteringRule:线性抽样策略。

四、springCloud组件之hystrix

        在微服务系统中,一个请求可能是多个微服务实例协同处理的,但是每个服务不可能永远健康,有时可能超时,有时可能网络不通,有时又可能出现调用阻塞。所以我们需要有一个容错机制,当微服务实例或网络出现问题时能够友好的解决而不是直接报错。springCloud提供了hystrix组件来实现容错机制(熔断机制和降级机制)。以下是hystrix的初始化流程以及各部分说明如下:
在这里插入图片描述
hystrix的执行流程如下:
在这里插入图片描述

五、springCloud其他组件

springCloud微服务框架中还有其他一些组件:
1.声明式接口调用客户端feign;
2.微服务网管zuul、gateway;
3.配置中心config、zookeeper、consul、nacos;
4.注册中心zookeeper、consul、nacos。
这些组件暂留以后再完善。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值