文章目录
- 1、Nacos的使用
- 2、Nacos和Eureka在性能、功能、控制台体验、上下游生态和社区体验的对比:
- 3、记使使用Nacos中容易犯的错误
- 3.1 nacos账号密码未设置
- 3.2 nacos端口未开放
- 4、对Nacos开源提出的一些需求
- 5、启动
- 6、开机自启
1、Nacos的使用
这里配置mysql的连接方式,spring.datasource.platform=mysql是老版本的,最新的用spring.sql.init.platform=mysql。
开启鉴权访问,并设置白名单
启动,这里直接使用了若依的配制文件。
启动成功!下面做一下测评分析!
2、Nacos和Eureka在性能、功能、控制台体验、上下游生态和社区体验的对比:
- 性能:Nacos在性能方面相对较好,它使用了一些优化技术来提高服务注册和发现的效率。Eureka在大规模部署时可能会遇到性能问题。
- 功能:Nacos在功能方面比Eureka更加全面。除了服务注册和发现外,Nacos还提供了配置管理、动态路由、服务熔断等功能。Eureka主要专注于服务注册和发现。
- 控制台体验:Nacos的控制台提供了直观的用户界面,可以方便地管理和监控服务实例。Eureka的控制台相对简单,功能较少。
- 上下游生态:Nacos在上下游生态方面更加丰富。它与Spring Cloud、Kubernetes等流行的微服务框架和容器编排工具集成紧密,可以无缝地与它们配合使用。Eureka的上下游生态相对较少。
- 社区体验:Nacos是由阿里巴巴开源的,拥有较大的社区支持和活跃度。Eureka的社区相对较小,更新和支持可能相对较慢。
综上所述,Nacos在性能、功能、控制台体验、上下游生态和社区体验等方面相对优于Eureka。
3、记使使用Nacos中容易犯的错误
3.1 nacos账号密码未设置
Nacos开启nacos.core.auth.enabled=true后报错!
- 这里注意nacos、springboot、springcloud的版本,github上有对应关系。https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
- 另外在yml的配制文件中添加账户和密码(注意不是白名单的key和value)
- 再次启动,成功!
- 白名单配制的key和value是在head里用的,如下:
3.2 nacos端口未开放
-
Nacos2.0
版本相比1.X
新增了gRPC
的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port
)基础上,进行一定偏移量自动生成。
端口 | 与主端口的偏移量 | 描述 |
9848 | 1000 | 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 |
9849 | 1001 | 服务端gRPC请求服务端端口,用于服务间同步等 |
7848 | -1000 | Jraft请求服务端端口,用于处理服务端间的Raft相关请求 |
8848 | 0 | nacos的主端口 |
4、对Nacos开源提出的一些需求
Nacos的功能、控制台体验和上下游集成已经满足大部分个人开发者需求了。
这里对文档方面提出一些建议,官方文档希望可以更新的更及时一些,一些功能可能没有和最新的功能和代码一致,并且官方文档的教程有一点少,没有一个系统的教程。
如果Nacos开源版本无法满足你的需求的话,请移步MSE-Nacos,MSE-Nacos提供了更加强大的功能,能满足企业级应用。
5、启动
cd /usr/local/nacos/bin
sh ./startup.sh -m standalone
6、开机自启
- 在 /lib/systemd/system 目录底下,新建nacos.service文件
- /lib/systemd/system是系统服务管理,开机启动,无需登录用户。
- /usr/lib/systemd/system是用户服务管理,用户登录后自动启动。
- /etc/systemd/system是存放所有的系统管理所需要的配置文件的地方。
vim /lib/systemd/system/nacos.service
- 里面的配置信息,如下:
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 使配置文件生效
systemctl daemon-reload
- 使nacos开机自启生效
systemctl start nacos.service
- 相关命令
systemctl start nacos.service #启动nginx服务
systemctl stop nacos.service #停止nginx服务
systemctl enable nacos.service #设置开机自启动
systemctl disable nacos.service #停止开机自启动
systemctl status nacos.service #查看服务当前状态
systemctl restart nacos.service #重新启动服务
systemctl list-units --type=service #查看所有已启动的服务
- 期间遇到的问题,启动报错,查看nacos运行状态
- 报如下错误:
Job for nacos.service failed because the control process exited with error code. See "systemctl status nacos.service" and "journalctl -xe" for details.
which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
- 解决方法
- ① 执行 whereis javac 命令
输出:/usr/local/jdk/jdk-17.0.9/bin/javac #输出结果:java的安装路径底下的javac
- ②然后,创建软连接,执行如下命令
ln -s /usr/local/jdk/jdk-17.0.9/bin/javac /usr/bin/javac
然后,执行systemctl start nacos
命令,启动完成,开机自启设置成功