Eureka服务注册中心

一、Eureka基本概念:

1.服务注册与发现原理,在任何rpc远程框架中,都会有个注册中心

2.注册中心概念:存放服务地址相关信息(接口地址)

3.SpringCloud找给你支持以下三种注册中心

   3.1 Eureka

   3.2 Consul(Go语言编写)

   3.3 Zookeeper

4. Dubbo支持常用二种Redis和Zookeeper

5.Eureka原理(订单服务与会员服务)

  5.1 首先启动注册中心(eureka注册中心)

  5.2 启动会员服务

  5.3 会员服务在启动的时候,会把当前服务基本信息比如服务地址和端口,以别名方式注册到注册中心(member,value:127.0.0.1:8080)

  5.4 消费者在调用接口时,使用服务别名去注册中心获取实际rpc远程调用地址

  5.5 消费者获取实际rpc远程调用地址后,使用本地HttpClient技术实现调用

  5.6 地址会缓存在jvm内存中,默认eureka每30秒更新一次服务调用地址;微服务负载均衡:本地负载均衡

  5.7 spirngCloud中使用哪些技术调用服务接口:feign客户端和restTemplate

  5.8 默认rest方式开启负载均衡功能,如果以服务别名调用服务接口,必须使用注解@LoadBalanced

5.9 还能使用这种方式,将yaml配置的值附给类变量

二、搭建注册中心集群

1.微服务rpc远程调用框架最核心的是什么? 注册中心

2.如果让你来设计一套微服务rpc框架远程调用框架,你是如何设计的?核心在于服务治理--注册中心

3.如果注册中心因为原因,出现故障,如何解决,可能导致整个微服务环境不可用

解决办法:搭建注册中心集群--大型互联网公司 注册中心都是集群版本,没有单机版本

4.搭建eureka集群环境,至少二台以上

思路:eureka搭建集群原理使用相互注册原理,形成一组相互注册的注册中心,从而实现数据相互的同步,达到高可用效果

如下图:二个注册中心,相互注册对方(多台):服务名称一定要相同

eureka集群注册中心例图:

然后注册和订阅,都要关联这个集群地址,但是在注册过程中,只会保证一台注册中心有对应服务信息数据,当8100注册中心宕机后,启动转移同步数据到9100上去的。

三、Eureka自我保护机制

1.自我保护机制有二种角色:EurekaClient(注册客户端)、EurekaServer(注册中心服务端)

2.为什么会产生Eureka自我保护机制:为了防止EurekaClient可以正常运行,但是与EurekaServer网络不通的情况下,EurekaServer不会把EurekaClient服务剔除

3.原理:默认情况下EurekaClient定时向EurekaServer端发送心跳包(大概5秒),如果EurekaServer在一定时间内没有收到EurekaClient发送心跳包,便会直接从服务注册中剔除该服务.(默认90S),同样的话,在短时间内丢失大量服务实例心跳,这时候EurekaServer会开启自我保护机制,不会剔除该服务

4.为什么最终还是会剔除该服务:因为EurekaClient的服务已关闭的这种情况下,没有剔除该服务,那其他服务还能调用该服务,但是实际上该服务已不可用,页面会报错、

5.本地环境:建议禁止自我保护环境(可能自己会多次重启EurekaClient);生产环境:建议开启自我保护机制

这个配置放到EurekaServer

这个配置放到EurekaClient

关闭之后,发现EurekaClient已经剔除了该注册,但是短时间内,访问的时候还会报错,因为地址缓存在jvm内存中30s

6.如果在生产环境上发现注册服务宕机,1.先人为的把注册服务剔除掉 2.本地调用应该重试机制,重试多次还不行(保证接口网络幂等性问题),轮询到下一台服务器上 3.做好服务的降级功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值