开发者社区 > 云原生 > 正文

Nacos为什么distroprotocol,没有实现approtocol接口,要单独弄一个?

Nacos为什么distroprotocol,没有实现approtocol接口,要单独弄一个?这个是基于什么考虑的呢?

展开
收起
嘟嘟嘟嘟嘟嘟 2023-11-06 22:51:37 69 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Nacos 中的 DistroProtocol 类没有实现 Protocol 接口的原因可能是由于两个原因:

    1. 不同的设计理念:DistroProtocol 类采用了分布式通信框架 Dubbo 的设计理念,并且使用 Netty 来进行网络通信。相比之下,Protocol 接口则使用了更为基础的 Socket IO 实现,并不适合分布式的使用场景。
    2. 功能差异:DistroProtocol 类提供了高级的通信特性,例如心跳、熔断和容错等,这些都是 Protocol 接口中没有提供的功能。
    2023-11-07 15:23:41
    赞同 展开评论 打赏
  • Nacos的设计者可能出于以下考虑:

    1. 分离核心功能与协议:通过将核心功能与通信协议分离,可以使得Nacos更加灵活和可扩展。例如,未来如果需要支持其他协议(如gRPC、WebSocket等),只需实现相应的Protocol接口即可。

    2. 简化客户端接入:对于不同的客户端(如Java、Python、JavaScript等),它们可能需要使用不同的通信协议。通过为每个客户端提供独立的Protocol实现,可以降低客户端接入的难度,提高开发效率。

    3. 便于测试和调试:通过将通信协议与核心功能分离,可以更容易地进行单元测试和性能调优。

    4. 保持核心功能的简洁性:如果将通信协议与核心功能混合在一起,可能会使核心功能的代码变得复杂和难以维护。通过将通信协议独立出来,可以使核心功能的代码更加清晰和易于理解。

    2023-11-07 10:39:04
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    Nacos中的distroProtocol和applicationProtocol是两个不同的概念,它们之间存在一定的差异,因此没有直接实现applicationProtocol接口。以下是这两个概念的解释以及为什么需要单独弄一个distroProtocol的原因:

    1. distroProtocol:Nacos中的distroProtocol主要用于实现服务注册和发现。它是一种基于HTTP协议的通信方式,通过向Nacos服务注册中心发送HTTP请求来实现服务的注册和发现。distroProtocol的设计目的是为了简化服务注册和发现的实现,提供一种高效、可扩展的通信方式。
    2. applicationProtocol:Nacos中的applicationProtocol主要用于实现动态服务发现和配置。它是一种基于RPC协议的通信方式,通过Nacos提供的RPC框架来实现服务的调用和配置的更新。applicationProtocol的设计目的是为了提供一种高性能、灵活的服务调用和配置更新方式。
      Nacos之所以需要单独弄一个distroProtocol,主要是因为distroProtocol和applicationProtocol在功能和设计目标上存在差异。distroProtocol关注的是服务注册和发现,而applicationProtocol关注的是服务调用和配置。
    2023-11-07 08:05:06
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载