Nacos长连接诉求分析

简介: Nacos长连接诉求分析

Nacos1.x版本推送模型的现状分析


Nacos1.x版本配置中心推送模型

image.png

1、配置中心服务端通过MD5一致性对比发现客户端不是最新版本的配置

2、所以会与客户端建立短连接通过异步Servlet的方式主动推送数据给客户端

缺点

因为是短连接 30秒定期创建和销毁 所以GC压力很大

服务注册发现中心推送模型

image.png

服务端与客户端建立Http或UDP连接进行推送数据


缺点

  • 丢包

因UDP存在丢包的情况 所以会有一个UDP的补偿查询

  • 云架构下无法反向推送

反思改进的方向

  • 因配置中心和服务注册发现中心推送通道不一致所以要统一推送通道
  • 因http短连接性能压力大所以要使用长链接


场景分析


image.png

客户端和服务端之间


连接

客户端连接服务端:首先要获取服务端节点列表,然后负载均衡选择一个节点连接;连接断开时需要切换服务端重连


客户端发起

客户端基于当前可用的长链接发起配置领域或服务发现领域的RPC语意接口通信


服务端发起

服务端推送配置变更数据或服务变更数据给客户端;失败可重推;有推送ack机制,方便服务端进行metrics和重推判定


客户端断开连接

感知客户端断开连接,将连接注销,并且清空对应的上下文比如客户端连接注册的服务和订阅的服务

服务端之间


连接

服务端之间需要长连接感知对端存活状态,需要通过长连接汇报服务状态(同步RPC能力);断开连接,需要进行重连;服务端列表发生变更,需要创建新节点的长连接,销毁下线的节点长连接


数据同步

比如服务注册与发现:服务端之间进行AP Distro数据同步,需要异步RPC带ack能力

比如配置中心:配置变更信息同步、当前连接数信息、系统负载信息同步、负载调节信息同步


长链接核心诉求


功能性诉求

image.png

连接

无论客户端还是服务端都要具有连接生命周期的感知能力 包括连接的建立和连接断开


客户端角度

1、客户端调用服务端需要支持同步阻塞、异步Future、异步CallBack三种模式

2、客户端与服务端断开连接,需要具备底层切换连接的能力

3、客户端响应服务端的连接切换的请求

4、选址/服务发现


服务端角度

1、服务主动推送数据,需要客户端返回ack以保证消息的可靠推送,并且可进行失败重试

2、服务端主动推送负载调节


相关文章
|
存储 前端开发 Nacos
从源码角度分析 Nacos 配置文件加载以及加载优先级
从源码角度分析 Nacos 配置文件加载以及加载优先级
897 0
|
存储 缓存 负载均衡
【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
305 12
【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
|
运维 中间件 调度
【Alibaba中间件技术系列】「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(中)
【Alibaba中间件技术系列】「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(中)
433 12
【Alibaba中间件技术系列】「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(中)
|
缓存 Ubuntu 安全
【Alibaba中间件技术系列】「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(上)
【Alibaba中间件技术系列】「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(上)
296 15
【Alibaba中间件技术系列】「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(上)
|
2月前
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
473 81
高效搭建Nacos:实现微服务的服务注册与配置中心
|
2月前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
313 18
|
3月前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
69 5
|
3月前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
508 15
|
3月前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
54 4
|
3月前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
73 3