文章目录

  • 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。

nacos开源镜像_nacos开源镜像

开启鉴权访问,并设置白名单

nacos开源镜像_spring_02

启动,这里直接使用了若依的配制文件。

nacos开源镜像_开源_03

启动成功!下面做一下测评分析!

2、Nacos和Eureka在性能、功能、控制台体验、上下游生态和社区体验的对比:

  1. 性能:Nacos在性能方面相对较好,它使用了一些优化技术来提高服务注册和发现的效率。Eureka在大规模部署时可能会遇到性能问题。
  2. 功能:Nacos在功能方面比Eureka更加全面。除了服务注册和发现外,Nacos还提供了配置管理、动态路由、服务熔断等功能。Eureka主要专注于服务注册和发现。
  3. 控制台体验:Nacos的控制台提供了直观的用户界面,可以方便地管理和监控服务实例。Eureka的控制台相对简单,功能较少。
  4. 上下游生态:Nacos在上下游生态方面更加丰富。它与Spring Cloud、Kubernetes等流行的微服务框架和容器编排工具集成紧密,可以无缝地与它们配合使用。Eureka的上下游生态相对较少。
  5. 社区体验:Nacos是由阿里巴巴开源的,拥有较大的社区支持和活跃度。Eureka的社区相对较小,更新和支持可能相对较慢。

综上所述,Nacos在性能、功能、控制台体验、上下游生态和社区体验等方面相对优于Eureka。

3、记使使用Nacos中容易犯的错误

3.1 nacos账号密码未设置

Nacos开启nacos.core.auth.enabled=true后报错!

nacos开源镜像_java_04

  • 这里注意nacos、springboot、springcloud的版本,github上有对应关系。https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
  • 另外在yml的配制文件中添加账户和密码(注意不是白名单的key和value)
  • nacos开源镜像_开源_05

  • 再次启动,成功!
  • nacos开源镜像_java_06

  • 白名单配制的key和value是在head里用的,如下:
  • nacos开源镜像_开源_07

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命令,启动完成,开机自启设置成功