微服务准备工作

一、BASE理论(CAP理论)

1.数据一致性(consistent)

原子性(硬状态) -> 要求多个节点的数据副本都是一致的,这是一种"硬状态"

软状态(弱状态) -> 允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延迟。

上面说软状态,然后不可能一直是软状态,必须有个时间期限。在期限过后,应当保证所有副本保持数据一致性。从而达到数据的最终一致性。这个时间期限取决于网络延时,系统负载,数据复制方案设计等等因素。(最终一致性)

2.可用性(Available)

某节点挂了,其他节点仍然可以正常向外提供服务。


3.分区容错性

因网络故障,节点之间相互通信受到影响时,各节点仍然可以正常向外提供服务;

4.为什么三者不能同时保证?

1.分区容错性,就是允许网络传输出错,网络天然是不可靠的,只能通过基础设施增强其可靠性。因此只要用到网络,分区容错性肯定是满足的。(不允许网络容错,除非你不使用网络传输数据。)
2.一致性:当发生网络故障,或者某节点故障时,如果要保证强一致性,就必须不断重试,直到所有节点数据都一致。
这个过程需要对相关的资源都进行锁定,后续请求只能阻塞直到所有节点数据一致,阻塞时间不可控,也就是保证不了可用性。
3.可用性: 这里的可用性指的是,可以及时的反馈给用户数据。要保证一致性,就不允许有不可控的阻塞等待发生,也就是满足不了强一致性。

二、五大组件

1.服务注册中心

一代的服务治理组件为:Spring Cloud Netflix Eureka,主要负责Spring Cloud的服务发现与服务注册。

功能:
1.服务注册与发现,统一编排与管理所有服务。
2.服务的健康监测(心跳机制/30s)
3.服务的安全保障

2.负载均衡组件

一代的负载均衡组件为:Spring Cloud Ribbon,主要负责Spring Cloud的客户端负载均衡和服务调用工具。

3. 熔断器组件

Spring Cloud Hystrix 是一款优秀的服务容错与保护组件,也是 Spring Cloud 中最重要的组件之一。

Spring Cloud Hystrix 能够有效地阻止分布式微服务系统中出现联动故障,以提高微服务系统的弹性。Spring Cloud Hystrix 具有服务降级、服务熔断、线程隔离、请求缓存、请求合并以及实时故障监控等强大功能。

4. 服务网关组件

在微服务架构中,一个系统往往由多个微服务组成,而这些服务可能部署在不同机房、不同地区、不同域名下。这种情况下,客户端(例如浏览器、手机、软件工具等)想要直接请求这些服务,就需要知道它们具体的地址信息,例如 IP 地址、端口号等。

可以通过服务网关,请求直接到服务网关,再由服务网关根据不同的标识信息将请求转发到微服务实例。

可以在服务网关中处理一些非业务功能的逻辑,例如权限验证、监控、缓存、请求路由等。

常见服务网关实现方案:

Spring Cloud Gateway
Spring Cloud Netflix Zuul
Nginx + Lua

5.统一配置管理 

 Nacos 提供了一个简洁易用的 UI 帮助我们管理所有服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助我们更安全地在生产环境中管理配置变更和降低配置变更带来的风险。

 

 

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值