Как запустить Nacos Server в исходном виде

Java Spring Cloud

Официальный стандартный режим работы

Загрузите и разархивируйте исполняемый пакет

curl -O https://github.com/alibaba/nacos/releases/download/1.3.2/nacos-server-1.3.2.tar.gz
tar -zxvf nacos-server-1.3.2.tar.gz
cd nacos/bin

выполнить запуск

# Linux/Unix/Mac 启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

# 如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

# Windows 启动命令(或者双击startup.cmd运行文件)

cmd startup.cmd

Зачем запускать из исходного кода?

1. Удобно использовать в процессе разработки

Если вы переходите с системы Spring Cloud Netflix на технологическую систему Spring Cloud Alibaba, возникает очевидное ощущение, что вся система упрощается. Nacos отвечает за реализацию обнаружения сервисов и управление конфигурацией всего Spring Cloud. на протяжении всего процесса разработкисильная зависимость, для запуска микросервисного дела необходимо проверить запущен ли Nacos Server.Метод распаковки и установки становится очень неудобным.

Не было бы удобнее запускать Nacos Server непосредственно из Main как часть всей микросервисной инфраструктуры?

2. Настройка пользовательского интерфейса

  • Изменение пользовательского интерфейса практически невозможно, если запустить его без упаковки. Вы можете загрузить исходный код Nacos, чтобы продолжить модификацию, а затем переупаковать и запустить. очень неудобно
git clone https://github.com/alibaba/nacos.git

cd nacos/

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/

// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
  • Если вы запустите его в режиме исходного кода, вы можете попробовать настроить пользовательский интерфейс, а затем собрать, чтобы увидеть эффект.

3. Убедитесь, что сервер и клиент согласованы

  • Как микросервисный проект с открытым исходным кодом, pig имеет очень высокую скорость итерации обновлений.Версия клиента Nacos, от которой зависит каждая версия, может измениться, а это означает, что соответствующая версия сервера Nacos также должна быть соответствующим образом обновлена, что требует от пользователей самостоятельной загрузки и обновления, что является дорогостоящим..

  • У Nacos хорошая обратная совместимость младших версий, но функции основных версий сильно изменились, например, изменения разрешений 1.2 и 1.3. Поэтому рекомендуется поддерживать согласованность версии в течение фактического процесса разработки.

  • Если вы запустите исходный код, вы можете очень хорошо решить эту проблему.

Как добиться

1. Загрузите исходный код Nacos

  • Просто сохраните модуль консоли nacos, другие модули можно удалить.

2. Описание структуры исходного кода консоли

├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── alibaba
    │   │           └── nacos
    │   │               ├── Nacos.java  # main 启动类
    │   │               └── console    # 控制台相关源码
    │   └── resources
    │       ├── application.properties  # nacos 配置文件
    │       └── static    # 静态页面目录
    └── test    # 单元测试部分

3. Измените класс Nacos.java.

  • В основном добавьте два параметра в основной метод, независимо от того, является ли это автономным запуском и следует ли отключить проверку разрешений.
@SpringBootApplication(scanBasePackages = "com.alibaba.nacos")
@ServletComponentScan
@EnableScheduling
public class Nacos {

    public static void main(String[] args) {
        # 通过环境变量的形式 设置 单机启动
      System.setProperty(ConfigConstants.STANDALONE_MODE, "true");

        # 通过环境变量的形式 设置 关闭权限校验
      System.setProperty(ConfigConstants.AUTH_ENABLED, "false");
        SpringApplication.run(Nacos.class, args);
    }
}

4. Измените консоль/pom.xml

  • Поскольку вы не используете управление nacos bom, вам необходимо добавить номера версий ко всем зависимым координатам.

  • Поскольку такие пакеты, как nacos-config /nacos-naming, не загружаются в центральную ссылку и не могут быть загружены, идентификатор группы изменяется наcom.pig4cloud.nacosготов к загрузке

  • Обратитесь к следующему после изменения

<dependency>
  <groupId>com.pig4cloud.nacos</groupId>
  <artifactId>nacos-config</artifactId>
  <version>1.3.2</version>
</dependency>
<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
  <version>7.0.59</version>
</dependency>
<dependency>
  <groupId>com.pig4cloud.nacos</groupId>
  <artifactId>nacos-naming</artifactId>
  <version>1.3.2</version>
</dependency>
...

Суммировать

    1. Приведенная выше ссылка на измененный исходный код:gitee.com/log4j/pig
    1. Следует ли запускать в виде исходного кода, этот вопрос зависит от вашей реальной ситуации.