微服务系列-注册中心:Nacos(一)
目前,无论面试还是平时的技术交流,都绕不开一个话题,就是如今异常火爆的微服务。那么就以日常工作中微服务开发和大家讨论。
当业务发展,系统功能逐渐扩大,开发人员迅速增加时,单体架构就会带来它的最大缺陷,系统庞大,代码臃肿,代码耦合严重。此时,想要在原先的系统中增加或者修改功能时就显得异常复杂,牵一发而动全身不为过吧。既然如此,聪明的你们肯定想到了分布式开发,将系统拆分成对外暴露自己功能的模块,此时系统耦合度大大降低,即便其中一个模块出现问题,也不影响其他模块的运行(如果是核心模块当我没说),而且经过拆分后的系统由于模块中无论代码量还是复杂程度都大大降低,此时排查问题将会简单很多(当然比较辛苦的就是运维小哥了,毕竟之前一套部署的系统现在要部署成多个,哈哈哈)。
那么现在进入微服务中第一个至关重要的组件,注册中心,它提供了2个核心功能。1:服务注册,2:服务发现。
1、服务注册:将系统中各个服务启动时自动注册到服务中心上,下线时自动从注册中心列表中移除。
2、服务发现:注册到服务中心的服务,能发现并调用其他注册到同一个服务中心的服务。
从第一个版本以来的springcloud至今,诞生了很多种注册中心,例如:eureka、zookeeper(zk)、consul、nacos等。由于设计初衷,其中的zk和consul采用的是CAP定理(最后会讲到)中的CP,而eureka和nacos则采用AP原则。在eureka和nacos中,eureka又已经闭源,因此我们最终选型的是alibaba开源的nacos作为注册中心(先悄悄说一句,nacos不仅仅可以作为注册中心哦,后续会有其它功能的分享)。
欢迎各位童鞋提出不同意见。下一篇分享nacos注册中心的搭建。