赞
踩
目录
-> eureka结合配置中心与rabbitmq实现配置刷新
文章中会介绍到nacos与eureka的本质区别, 并且如何重新配置心跳, 自我保护机制,
服务剔除规则, 以及二者如何保证CAP/AP的 微服务注册中心
文章末尾是微服务的常用功能服务目录及传送门
nacos是注册和配置中心一起
eureka是只有注册中心, 配置中心需要其他组件组合使用
nacos: netty服务, 长连接与服务直连
eureka: 定时发送心跳给服务, 短连接
client 每30秒发送心跳 到 server, 90秒没有收到心跳 删除服务
leaseRenewalIntervalInSeconds:30
leaseExpirationDurationInSeconds: 90
- client:
- register-with-eureka:true #false表示不向注册中心注册
- fetch-registry:false #false维护服务实例,不区域检索服务
- service-url:
- #集群指向其他的eureka
- #defaultZone:http://eureka1:2001/eureka #不搭律作群 单机指向自己
- defaultZone:http://eureka1:2001/eureka,http://eureka2:2002/eureka #集群
- server:
- #关闭自我保护机制,保证不可用服务被即时别除
- enable-self-preservation:false
- #并将就认心线由X设置未30s
- eviction-interval-timer-in-ms:30000
也就是一分半会删除服务 实际可能会更久,(例如ribbon的时间间隔加入)
15秒未检测心跳 变成unhealthy状态 请求也是可以正常发送 报500
超过30秒nacos中的实例从concurrentHashMap中移除后, 再次请求就是503
- spring:
- cloud:
- nacos:
- discovery:
- # 实例上报心跳间隔时间(毫秒)
- heart-beat-interval: 1000
- # 实例上报心跳超时时间(毫秒)
- heart-beat-timeout: 3000
- # 实例超时心跳被剔除时间(毫秒)
- ip-delete-timeout: 3000
ribbon:
ServerListRefreshInterval: 5000
分布式系统中 不可缺少的原则 C一致性 A 可用性 P分区容错性
就是宁愿天下人负我 我不负天下人的状况, 不会删除任何服务
防止是服务端网络波动,延迟接收了心跳, 而客户端是正常使用. 导致大面积宕机问题
所有服务都是临时服务, 不上报心跳就异常 一直不报就剔除,
但只要是触发保护机制, 就算是异常的服务也会发送请求分担其他服务压力
假设10个服务 每个服务100qps 总请求量1000
这时候变成变成俩服务了 也就是每个服务将承受500qps 这俩幸存的服务也可能宕机
[防止了 服务雪崩]
0-1 (健康实例/总实例)=保护阀值 常规 0.75-0.85
feign远程调用yml配置,并解决显示服务不可用 timed-out and no fallback
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。