我在M2公司做架构之服务注册中心

一、什么是服务注册中心?

服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者url串、路由信息等。服务注册中心是微服务架构中最基础的设施之一。

注册中心可以说是微服务架构中的”通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。

二、为什么要有服务注册中心?

这里着重强调服务注册中心的主要作用,分别为如下:

  • 对微服务进行动态地集中管理;
  • 松耦合,减少服务之间相关的依赖性。

如果没有服务注册中心,那么服务之间的维护、彼此调用将会非常复杂,随着服务的增加,复杂系数也会增加。

三、服务注册中心现有的解决方案有哪些?

下面四种是比较经典的解决方案:

  • Zookeeper;
  • Eureka;
  • Consul;
  • Nacos。

就我的实践经验而言我用过其中三种,一种是基于Dubbo的Zookeeper解决方案,一种是基于Eureka Server+Client的解决方案,另一种是Nacos解决方案。

我曾经写过相关的博文记录,感兴趣的朋友可以阅读:
SpringBoot之整合Dubbo

SpringCloud之Nacos

SpringCloud之服务注册中心和提供者

四、基于这些解决方案,我遇到了哪些问题?

这里以Nacos解决方案为例,我遇到了如下问题:

  • 服务注册中心宕机,导致对应的微服务死掉;
  • 因为网络问题,微服务之间的调用出现延迟;
  • Nacos日志文件问题(产生大量的日志,严重占用磁盘空间);
  • Nacos启动问题(单机和集群);
  • Nacos配置文件管理持久化问题;
  • 服务注册失败问题;
  • 新增配置文件无效问题;
  • 生产环境运行时间长的时候,偶尔打不开,加载非常慢。

上面这八个问题,涉及面较广,需要深度分析,这里不做详细解答,后面会有专题讲这些问题是如何解决的。

文章目录
  1. 一、什么是服务注册中心?
  2. 二、为什么要有服务注册中心?
  3. 三、服务注册中心现有的解决方案有哪些?
  4. 四、基于这些解决方案,我遇到了哪些问题?