nacos除了用作配置中心,即可以将配置信息由配置文件转移到nacos上,更便于修改和维护外,更重要的,是用作微服务的注册中心。没有这类中间件,微服务玩不转。
微服务架构也者,就是有好多好多的微服务,不然就无须采用微服务架构了。这么多的微服务,不可能都部署在一台服务器吧,应该是分布式的,分布于不同的物理机上。这样,就有一个IP地址的问题,要怎么样才能找到那个微服务。当然可以手动维护一张表,每部署一个微服务,就登记一下它的IP。
但是微服务不是这么玩的,十月革命一声炮响,送来了nacos。nacos除了充当配置中心,更重要的是用作注册中心。所有的微服务都在nacos上注册,由nacos记录微服务的IP信息,当有请求时,nacos将请求分配至对应的微服务。这一切,对上层应用都是透明的,我们无须关心微服务的物理地址和处理烦琐的跳转,只要所有微服务都注册于同一个nacos,且用同一个命名空间,不管微服务安装在哪台服务器,网络相通的情况下,就能访问到想要的微服务。
这些道理很浅显,但我多次迷惑撞板之后才逐渐理解。
需要特别注意的是,nacos所在服务器要能访问微服务所在服务器。有时,微服务可以注册到nacos,但nacos反过来访问不了微服务,就导致系统无法正常运行。其中原因,可以关注这么些常见原因:
1)检查是不是微服务的服务器防火墙阻挡了,可以将防火墙关了试试看
2)微服务部署在docker,没有恰当设置docker的网络,或者nacos的服务器没有设置访问docker的路由,可参考拙作《虚拟机中docker承载的微服务注册到nacos无法访问问题》
参考文章:
spring boot项目中使用nacos作为配置中心