分布式架构之服务注册中心
一、什么是服务注册中心?
服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者url串、路由信息等。服务注册中心是微服务架构中最基础的设施之一。
二、为什么要有服务注册中心?
这里着重强调服务注册中心的主要作用,分别为如下:
1.对微服务进行动态的集中管理;
2.松耦合,减少服务之间相关的依赖性。
如果没有服务注册中心,那么服务之间的维护、彼此调用将会非常复杂,随着服务的增加,复杂系数也会增加。
三、服务注册中心现有的解决方案有哪些?
下面四种是比较经典的解决方案:
1.Zookeeper;
2.Eureka;
3.Consul;
4.Nacos。
就我的实践经验而言我用过其中三种,一种是基于Dubbo的Zookeeper解决方案,一种是基于Eureka Server+Client的解决方案,另一种是Nacos解决方案。
我曾经写过相关的博文记录,感兴趣的朋友可以阅读:
SpringBoot之整合Dubbo
SpringCloud之Nacos
SpringCloud之服务注册中心和提供者
四、基于这些解决方案,我遇到了哪些问题?
这里以Nacos解决方案为例,我遇到了如下问题:
1.服务注册中心宕机,导致对应的微服务死掉;
2.因为网络问题,微服务之间的调用出现延迟;
3.Nacos日志文件问题(产生大量的日志,严重占用磁盘空间);
4.Nacos启动问题(单机和集群);
5.Nacos配置文件管理持久化问题;
6.服务注册失败问题;
7.新增配置文件无效问题;
8.生产环境运行时间长的时候,偶尔打不开,加载非常慢。
上面这八个问题,涉及面较广,需要深度分析,这里不做详细解答,后面会有专题讲这些问题是如何解决的。
上面红色标记处,均可通过阅读原文获取!!!