nacos源码启动

Nacos 2.3.0-SNAPSHOT 最新版本源码启动

最近研究 nacos源码启动, 把遇到的问题总结一下, 希望可以帮助到大家

1. nacos官方源码登陆

  1. 从github上下载最新源码, github地址为 https://github.com/alibaba/nacos.git

  2. 用 idea打开nacos项目

  3. 找到 /confg/src/main/resource/META-INF/nacos-db.sql 文件, 初始化nacos的数据库

    img

  4. 打开最外层的pom.xml文件, 将 305-325行的校验plugin注释掉(nacos部分源码不符合import规范, 编译无法通过, 需要手动修改)

  5. 点开idea 右侧的maven 页签, 先点击 Toggle 'Skip Tests' Mode, 跳过大宝测试, 在点击install安装项目所需jar包

    img

    install完成后如下图所示

    image-20231019163353263

  6. 打开/console/src/main/resource/application.properties项目配置文件, 修改为自己的数据库信息

    image-20231019164003590

  7. 在idea中添加nacos的启动配置, 配置如下

    image-20231019164203850

    启动参数 -Dnacos.standalone=true 指定了nacos单体启动

  8. 启动nacos(如果出现缺少文件的情况, 在点击install安装项目即可), 出现下图即为启动成功.

    image-20231019165010991

  9. 打开上图console: 后面的网页, 即可打开nacos的管理页面, 这样nacos就启动成功了.

    image-20231019165250371

2. 简洁版源码启动

在我使用了jeecg框架后, 发现nacos启动只需要把需要的jar包引入即可;

而阿里官方并没有维护这些依赖包的远程仓库, 因此我们就需要下载源码, install项目, nacos需要的jar包打包到本地的maven仓库;

如果我们有这些jar包的远程仓库, 那么我们就可以非常方便快捷的使用源码形式的nacos了

本教程使用的是 jeecg 维护的nacos相关基础包, 依赖信息如下

<!--需要添加的nacos基础包-->
<dependencies>
    <dependency>
      <groupId>org.jeecgframework.nacos</groupId>
      <artifactId>nacos-naming</artifactId>
      <version>2.2.3</version>
    </dependency>
    <dependency>
      <groupId>org.jeecgframework.nacos</groupId>
      <artifactId>nacos-istio</artifactId>
      <version>2.2.3</version>
    </dependency>
    <dependency>
      <groupId>org.jeecgframework.nacos</groupId>
      <artifactId>nacos-config</artifactId>
      <version>2.2.3</version>
    </dependency>
    <dependency>
      <groupId>org.jeecgframework.nacos</groupId>
      <artifactId>nacos-console</artifactId>
      <version>2.2.3</version>
    </dependency>
  </dependencies>

<!--需要额外引入jeecg的远程maven仓库-->
<repositories>
    <repository>
      <id>aliyun</id>
      <name>aliyun Repository</name>
      <url>https://maven.aliyun.com/repository/public</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>jeecg</id>
      <name>jeecg Repository</name>
      <url>https://maven.jeecg.org/nexus/content/repositories/jeecg</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

在一个新的springboot项目中, 引入上述依赖, 即可搭建起nacos运行的基础环境;

server:
  servlet:
    contextPath: /nacos
  tomcat:
    accesslog:
      enabled: true
      pattern: '%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i'
    basedir: ''
db:
  num: 1
  password: root
  url: jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
  user: root
management:
  metrics:
    export:
      elastic:
        enabled: false
      influx:
        enabled: false
nacos:
  core:
    auth:
      enabled: false
      caching:
        enabled: true
      server:
        identity:
          key: example
          value: example
      plugin:
        nacos:
          token:
            expire:
              seconds: 18000
      system:
        type: nacos
  istio:
    mcp:
      server:
        enabled: false
  naming:
    empty-service:
      auto-clean: true
      clean:
        initial-delay-ms: 50000
        period-time-ms: 30000
  security:
    ignore:
      urls: /,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
spring:
  sql:
    init:
      platform: mysql

将上述配置加入到application.yml, 启动项目即可运行nacos

posted @   浅唱z2  阅读(419)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示