微服务--springcloud注册中心

1. 注册中心是什么

注册中心是微服务体系中一个关键组件,是协调各服务调用和状态监控以及服务路由的关键点,

2. 注册中心特性

  • 服务注册、
  • 服务发现、
  • 健康检查、
  • 集群节点间的心跳机制等等,
  • 集群架构要么是平级结构、要么是主从结构。节点之间必须考虑服务的数据信息同步,而一旦是主从结构,就必须考虑主节点leader的选举等等功能,而选举过程,只是算法不一样而已。

2.1 CAP(布鲁尔定理)

在这里插入图片描述

它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  • 一致性(Consistency) (等同于所有节点访问同一份最新的数据副本)
  • 可用性(Availability)(每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据)
  • 分区容错性(Partition tolerance)(以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。)

根据定理,分布式系统只能满足三项中的两项而不可能满足全部三项。理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致,即丧失了C性质。如果为了保证数据一致性,将分区一侧的节点设置为不可用,那么又丧失了A性质。除非两个节点可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。

  • CAP三个特性只能满足其中两个,那么取舍的策略就共有三种:

    • CA without P:如果不要求P(不允许分区),则C(强一致性)和A(可用性)是可以保证的。但放弃P的同时也就意味着放弃了系统的扩展性,也就是分布式节点受限,没办法部署子节点,这是违背分布式系统设计的初衷的。传统的关系型数据库RDBMS:Oracle、MySQL就是CA。

    • CP without A:如果不要求A(可用),相当于每个请求都需要在服务器之间保持强一致,而P(分区)会导致同步时间无限延长(也就是等待数据同步完才能正常访问服务),一旦发生网络故障或者消息丢失等情况,就要牺牲用户的体验,等待所有数据全部一致了之后再让用户访问系统。设计成CP的系统其实不少,最典型的就是分布式数据库,如Redis、HBase等。对于这些分布式数据库来说,数据的一致性是最基本的要求,因为如果连这个标准都达不到,那么直接采用关系型数据库就好,没必要再浪费资源来部署分布式数据库。

    • AP wihtout C:要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。典型的应用就如某米的抢购手机场景,可能前几秒你浏览商品的时候页面提示是有库存的,当你选择完商品准备下单的时候,系统提示你下单失败,商品已售完。这其实就是先在 A(可用性)方面保证系统可以正常的服务,然后在数据的一致性方面做了些牺牲,虽然多少会影响一些用户体验,但也不至于造成用户购物流程的严重阻塞。

3. 选型

  • eureka
  • console
  • zookeeper
  • Nacos
序号比较项EurekazookeeperNacosConsul
1集群结构平级主从支持平级和主从主从
2集群角色主人Leader、follower observerleader、follower、candidateserver-leader、server以及client
3是否可以及时知道服务状态变化不能及时知道会及时知道不能及时知道不能及时知道
4一致性协议(CAP)注重可用性(AP)注重一致性(CP)支持CP和AP-如何实现注重一致性(CP)
5雪崩保护没有没有
6社区是否活跃Eureka2.0不再维护了持续维护持续维护持续维护
7管理端有现成的eureka管理端没有现成的管理端有现成的管理端有现成的管理端
8负载均衡策略使用ribbon实现一般可以直接采用RPC的负载均衡权重/metadata/SelectorFabio
9权限控制使用ACL实现节点权限控制RBAC-用户、角色、权限ACL
10Spring Cloud集成支持支持支持支持
11健康检查Client BeatKeep AliveTCP/HTTP/MYSQL/Client BeatTCP/HTTP/gRPC/Cmd
12自动注销实例支持支持支持不支持
13访问协议HTTPTCPHTTP/DNSHTTP/DNS
14是否可用作配置中心
15多数据中心不支持不支持不支持支持
16跨注册中心同步不支持不支持支持支持
17Dubbo集成不支持支持支持不支持
18K8S集成支持支持支持支持

4. 总结

注册中心多样化,根据不同场景选用合适的组件.

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你是真的皮005

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值