• Nacos 开源版的使用测评


    1、Nacos的使用

    这里配置mysql的连接方式,spring.datasource.platform=mysql是老版本的,最新的用spring.sql.init.platform=mysql。
    1.png

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

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

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

    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后报错!
    4.png

    • 这里注意nacos、springboot、springcloud的版本,github上有对应关系。https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

    • 另外在yml的配制文件中添加账户和密码(注意不是白名单的key和value)
      5.png

    • 再次启动,成功!
      6.png

    • 白名单配制的key和value是在head里用的,如下:
      7.png

    3.2 nacos端口未开放

    • Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。
    端口与主端口的偏移量描述
    98481000客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
    98491001服务端gRPC请求服务端端口,用于服务间同步等
    7848-1000Jraft请求服务端端口,用于处理服务端间的Raft相关请求
    88480nacos的主端口

    4、对Nacos开源提出的一些需求

    Nacos的功能、控制台体验和上下游集成已经满足大部分个人开发者需求了。
    这里对文档方面提出一些建议,官方文档希望可以更新的更及时一些,一些功能可能没有和最新的功能和代码一致,并且官方文档的教程有一点少,没有一个系统的教程。
    如果Nacos开源版本无法满足你的需求的话,请移步MSE-Nacos,MSE-Nacos提供了更加强大的功能,能满足企业级应用。

    5、启动

    cd /usr/local/nacos/bin
    sh ./startup.sh -m standalone
    
    • 1
    • 2

    6、开机自启

    • 在 /lib/systemd/system 目录底下,新建nacos.service文件
    • /lib/systemd/system是系统服务管理,开机启动,无需登录用户。
    • /usr/lib/systemd/system是用户服务管理,用户登录后自动启动。
    • /etc/systemd/system是存放所有的系统管理所需要的配置文件的地方。
    vim /lib/systemd/system/nacos.service
    
    • 1
    • 里面的配置信息,如下:
    [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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 使配置文件生效
    systemctl daemon-reload  
    
    • 1
    • 使nacos开机自启生效
    systemctl start nacos.service  
    
    • 1
    • 相关命令
    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	#查看所有已启动的服务
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 期间遇到的问题,启动报错,查看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)
    
    • 1
    • 2
    • 3
    • 解决方法
    • ① 执行 whereis javac 命令
    输出:/usr/local/jdk/jdk-17.0.9/bin/javac        #输出结果:java的安装路径底下的javac
    
    • 1
    • ②然后,创建软连接,执行如下命令
    ln -s /usr/local/jdk/jdk-17.0.9/bin/javac /usr/bin/javac
    
    • 1

    然后,执行systemctl start nacos命令,启动完成,开机自启设置成功

  • 相关阅读:
    实验二 图像增强
    ArcGIS 10.7软件安装包下载及安装教程!
    说说Spring常用的注解
    nginx部署web项目(跟着搞不出来,来砍我)
    MySQL性能优化
    Diverse Branch Block论文中对于串联卷积的融合中的一些理解点
    一文速通Sentinel熔断及降级规则
    SAS基本统计分析语句
    浅析MySQL-基础篇01
    docker.service配置docker镜像加速
  • 原文地址:https://blog.csdn.net/weixin_43684214/article/details/132557659