Nacos调研
一.什么是Nacos
Nacos是阿里巴巴最新开源的项目,核心定位是“一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台”,项目地址:Nacos官网 | Nacos 官方社区 | Nacos 下载 | Nacos
Nacos核心提供两个功能:服务注册与发现,动态配置管理。
在微服务架构中,整个系统会按职责能力划分为多个服务,通过服务之间协作来实现业务目标。这样在我们的代码中免不了要进行服务间的远程调用,服务的消费方要调用服务的生产方,为了完成一次请求,消费方需要知道服务生产方的网络位置(IP地址和端口号)。
服务注册,就是将提供某个服务的模块信息(通常是这个服务的ip和端口)注册到1个公共的组件上去(比如: zookeeper\consul)。
服务发现,就是新注册的这个服务模块能够及时的被其他调用者发现。不管是服务新增和服务删减都能实现自动发现。
Nacos提供基于DNS和基于RPC的服务发现,即能被用来支持https/http的服务注 册与发现,也支持RPC如dubbo的服务注册与发现。
动态修改配置并实时生效,这种服务能够让我们的服务拥有更多的灵活性,不需要重启服务即可做到配置实时生效,非常适合于“配置优先”的服务开发。
二.部署使用
1.安装Nacos
Nacos支持集群和单机部署两种方式,此文我们是采用Windows单机部署方式。参考文档:Nacos官网 | Nacos 官方社区 | Nacos 下载 | Nacos步骤如下:
1.首先到https://github.com/alibaba/nacos/releases下载压缩包。
2.解压文件到指定目录。
3.新建mysql数据库执行nacos初始化文件到数据库。
4.修改conf下的配置文件application.properties数据存到指定数据库。
5.进入到bin目录,打开dos窗口,输入命令 .\startup.cmd -m standalone以单机模式启动Nacos。
6.浏览器输入http://localhost:8848/nacos/登录nacos,账号密码默认nacos/nacos。
7.登录成功进入主页,说明安装部署成功。
2.nacos服务注册
1.搭建好springboot项目,配置文件写好服务注册地址和信息。
2.,每个模块分端口为单独服务启动,启动服务
3.可以在nacos看到服务已被注册
3.nacos服务发现
1.在pom文件引入feign依赖
2.编写FeignClient远程调用实现类接口
3.并在生产者订单服务模块编写功能实现代码,user类似
4.编写测试类,在地址栏调用测试,可以看到消费者调用订单服务成功。
5.当停止订单服务时,可以发现调用会失败,而没有停止的user服务还是可以调用成功。
三.调研结论及建议
1.内存消耗
可以知道在单机模式下的时内存消耗比较小的。
而且nacos的最大占用内存是可以配置调节的,默认单机下512M,集群2G。
2.使用反馈
实践得出,nacos相当于一个服务中心,所有的服务都注册到他那里,服务间的调用是通过nacos来实现,但是当被调用的服务停止时,调用方也会调用失败,相对于我们的建设目标-服务与服务之间相互调用,且互不影响,即使被调用方服务停掉了,调用方也依然能正常运行不相符。而且需要改造成本过高,时间又紧,所以目前我们的项目是不适合上nacos的。