注册中心的访问过程+CAP理论+负载均衡+高可用+自我保护机制

  • 把一个庞大的系统拆封成若干个服务,通过http的RESTful 的api进行通信。在springCould中RestTemplate是一个基于Http协议的一个工具对象。(可以通过这个对象以http协议发送请求到具体的模个web服务器中),微服务是基于http服务的json格式进行调用的所以不同的服务可以使用不同的语言进行编写。

  • 注册中心

注册中心是一个把provicer和consumer的模块注册到上面的工具

1,provider拥有服务名称和ip地址+端口号

2,provider把服务名称和ip地址+端口号注册到注册中心。

3,consumer通过服务名称访问注册中心,得到provider的ip地址加上端口号。

4,consumer通过ip地址+端口号,对provider进行访问。


  • CAP理论

Consistency(一致性) 2. Availability(可用性) 3. Partition tolerance(分区容忍性)

Eureka 是(ap) zookeeper(cp)

在微服务中必须保证分区容错性(一个微服务不可以访问后,其他服务依然可以继续访问)

高可用:多个微服务没有主从关系,通过负载均衡,来轮寻算法来访问注册中心。(每一个注册中心都有可能被访问到)

当你发送一个微服务到注册中心的时候,其他注册中心也会再复制这个微服务。但是这个是有时间的,如果在这个期间,consumer访问这个最新发布的微服务,有可能还没有来得及同步(这个)。所以会访问失败,然后重新访问。(对于更新微服务,和删除微服务是同样的道理)。

一致性:拥有主从关系,有一个主注册中心,其他都是从注册中心。在主进行注册微服务的时候,其他的从服务器是不能使用的。追求的是数据的一致性,这个时候进行访问数据,可能会失败。如果master宕机了,其他的slave需要进行选举,这个过程是缓慢的(10s~30s),这个整个服务器集群是不可以使用的。

zookeeper采用的是cp            eureka采用的是ap

在springCloud中推荐使用eureka


  • 负载均衡

在consumer通过服务名称在注册中心拿到多个provider的ip地址+端口号(有多个provoder注册到注册中心,是同一个微服务),这时候就有一个问题?consumer不知道需要访问那个ip地址+端口号,这是就需要Ribbon来实现负载均衡,通过选择策略来决定访问那个ip地址+端口号。(比如轮寻访问,每个ip地址+端口号轮流访问)


  • Eureka的高可用

把Eureka注册中心互相注册到对方的中,这样子就实现了数据共享


  • Eureka的service和client

Eureke的serivice就是注册中心

Eureka的client就是consumer和provider


  • 细节

在EurekaClient端中往EurekaService端注册微服务时候,需要指定全部的EurekaService的地址,这样可以防止在其中一个Service端宕机的时候,刚好是在client端指定的地址,这样就不可以成功注册到service端了。(指定全部service端的地址就可以避免这样的问题)


  • Eureka的自我保护机制

前提:每个一段时间client会向service发送心跳,证明client还存活着。

自我保护机制:如果client没有往service发送心跳的时候,service不会删除client注册的微服务。

没有发送心跳存在两种情况。1、client宕机了  2、可能是client发送的网络断掉了,但是client还可以使用。

对于2的情况,自我保护机制不会删除微服务,这时候还是可以成功访问到微服务的,好像有句名言(想不起来了自己编)宁可放过一千也不愿错杀一个。后面还会有什么重连的机制。有点忘了

对于自我保护机制是默认打开的(注册中心的页面的醒目红字)

非自我保护机制就是,没心跳就杀掉。


  • Eureka的配置

provider的配置

发送心跳的间隔

多久没有发送心跳就是嗝屁了

告诉service,provider提供服务的名称

连接service的ip地址

service的配置

端口号

注册中心的名字

指定自己的名字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值