Nacos 注册中心如何做到每秒百万级别的服务注册?

1. Nacos 注册中心如何做到每秒百万级别的服务注册 ?

在 nacos.io 官方文档里边有这样一个性能测试报告:

Nacos 注册中心如何做到每秒百万级别的服务注册?_第1张图片

PS:TPS 是指每秒能够处理的事物数 / 任务数

从图中可以看出当有 4 台机器,并发数为 100 的时候,注册实例的测试数量级已经达到 92 万了,那么它底层是使用了什么技术实现的呢 ?

2. 底层实现技术

它底层是基于异步任务 + 内存队列的方式来实现这一高并发任务的。

Nacos 注册中心如何做到每秒百万级别的服务注册?_第2张图片

        从上图就能看出来为什么 Nacos 能实现百万级别的服务注册了,当客户端组装好的服务实例发给服务器的时候,服务器接收到这个服务实例后,它并没有立即写入注册表,它是先放到内存队列中,而对于客户端来说,他收到的就是注册成功,我服务端这边就可以新起一个异步任务,慢慢将这些服务实例写入到注册表中。

        大家都知道程序中,IO 操作是最耗时的,如果接收到服务实例后,立即写入注册表,那么就不可能实现百万级别的服务注册。

所以 Nacos 能实现百万级别的服务注册主要得益于以下两点:

  1. 异步任务 - 异步处理注册请求,提高响应速度和吞吐量。
  2. 内存队列 - 使用内存数据结构和内存队列优化读写速度和处理流程。

你可能感兴趣的:(springcloud,springcloud,微服务)