核心服务-注册中心(下)

简介: 核心服务-注册中心(下)
logic1服务死了 zk不知道
因为zk的KeepAline机制太弱了 太浅层了

应该怎么处理?

1、tcp活性探测即每隔段时间心跳检测 如果服务死了就踢出
2、服务健康与否的逻辑开放给服务方 让服务方自定义
zk server只管服务方定制的状态
具体死活 zk不需要判断


注册中心容灾


image.png


zk原生客户端有很多问题

zk clinet和zk server很多情况下是弱依赖
很多情况下 不需要与zk强依赖
zk的ip节点存在本地 每次启动会从zk拉取
如果拉不到 用本地ip
需要强依赖的场景就是服务发布、上下线、扩容
zk原生客户端没有缓存数据机制(没有缓存ip列表)


综上:zk完全不适合做注册中心

ZK使用场景

image.png

低频事务适合(tps低的)

这些组件的分布式协调器都是zk

image.png

image.png


如何模拟网络异常

zk集群其中一台机器网络断掉或防火墙进出设置下

如果模拟服务假死

在业务逻辑层while(True)


自研数据中心如何设计


注册中心业务流程及熔断机制

image.png

1、服务管理平台:服务展示、调用关系展示(梳理服务之间调用关系)以及入口、参数配置(超时时间、熔断规则、降级规则、IP:Port)、控制中心注册信息、
有自己的db存储
2、服务发现不需要直接连接控制中心
3、熔断极端情况下 熔断不了 影响也不大 可损
4、
服务管理平台不需要和业务逻辑层交互
业务逻辑层需要和服务管理平台交互
(服务质量情况 监控 流量情况)
5、服务控制:注册信息存储、指令下发
6、控制中心(服务版本信息、ip:port、服务名称) 无状态化 多个节点 多个控制中心之间 指令同步
控制中心多个节点服务相互探活
7、全部都是服务集群 熔断其中一台数据访问层
推送给业务逻辑层的所有集群
8、服务发现方第一次获取服务列表 若拿不到就采用本地配置
上线的时候 肯定是知道 下游是哪一台
拿到的信息更新本地配置
9、推送指令有没有到达业务逻辑层?
ccp和控制中心通讯 
长连接推送 
给ack
没有给ack再推送
10、服务管理平台也会在内存中缓存一份
缓存有脏数据 无所谓 流量不均衡而已
11、服务管理平台还是控制中心 全是去中心化的
12、熔断是针对api粒度的

服务权重配置

机器配置高 允许流量高 权重配置高些 比如10 其他就是8

服务分组


物理隔离

image.png


后续


后续会推出配置中心实践
相关文章
|
6月前
|
存储 缓存 测试技术
微服务注册中心的原理和实现方式
【2月更文挑战第19天】注册中心可以说是实现服务化的关键,因为服务化之后,服务提供者和服务消费者不在同一个进程中运行,实现了解耦,这就需要一个纽带去连接服务提供者和服务消费者,而注册中心就正好承担了这一角色。
|
存储 运维 Dubbo
Nacos 注册中心的设计原理:让你的应用轻松实现高效注册与发现!
Nacos 注册中心的设计原理:让你的应用轻松实现高效注册与发现!
182 0
|
6月前
|
微服务
注册中心机制
【2月更文挑战第16天】注册中心机制
56 5
|
6月前
|
存储
注册中心是如何工作的
【2月更文挑战第8天】
微服务注册中心技术选型:5种主流注册中心,哪个最香?
讲解5种常用的注册中心,对比其流程和原理,无论是面试还是技术选型,都非常有帮助。 对于注册中心,在写这篇文章前,我其实只对ETCD有比较深入的了解,但是对于Zookeeper和其它的注册中心了解甚少,甚至都没有考虑过ETCD和Zookeeper是否适合作为注册中心。 经过近2周的学习,原来注册中心除了ETCD和Zookeeper,常用的还有Eureka、Nacos、Consul,下面我们就对这些常用的注册中心,初探它们的异同,便于后续技术选型。 全文接近 8千字,有点长,建议先收藏,再慢慢看,下面是文章目录:
应用中心——应用中心如何使用
应用中心——应用中心如何使用自制脑图
81 0
应用中心——应用中心如何使用
|
缓存 算法 Java
传统服务注册中心 | 学习笔记
快速学习 传统服务注册中心
传统服务注册中心 | 学习笔记
|
Java 开发者 微服务
EurekaServer 服务注册中心建立|学习笔记
快速学习 EurekaServer 服务注册中心建立
EurekaServer 服务注册中心建立|学习笔记
|
缓存 Java Nacos
第01篇:分布式注册中心
什么是`注册中心`,`注册中心` 往往是在分布式的应用体系下才会遇到的。对于分布式体系应用都是横向进行扩展。如下图`User App`这个服务,具有2台服务器 但是当用户从网关进来访问, 网关是如何知道这个 `User App`有几台服务及每台服务的网络地址是什么呢? 所以就需要有一个地方能收集到每台应用的地址及命名。 往往这个地方就被叫做 `注册中心`。分布式环境下的应用在启动时候都会向这个地方来注册自己的网络地址,及命名。
435 0
第01篇:分布式注册中心
|
运维 安全 开发工具
SpringCloud - 统一配置中心(一)(上)
SpringCloud - 统一配置中心(一)(上)
120 0
SpringCloud - 统一配置中心(一)(上)