В архитектуре микросервисов Spring Cloud регистрация и обнаружение сервисов являются важными звеньями в реализации связи между микросервисами. В качестве платформы динамического обнаружения, настройки и управления услугами Nacos широко используется в микросервисной архитектуре. Однако в процессе разработки разработчики могут захотеть провести тестирование на локальном компьютере и не захотеть, чтобы служба автоматически регистрировалась в реестре Nacos, чтобы не влиять на тестовую среду.
Для этого мы можем контролировать поведение службы при регистрации, написав условную логику в приложении Spring Boot. Ниже будет представлен простой, но эффективный метод.
первый,существоватьapplication.yml
(илиapplication.properties
)Настроить в файлеNacosосновная информация,Включая название службы, адрес регистрационного центра и т. д.:
spring:
application:
name: my-microservice
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 # Адрес регистрационного центра Накос
пожалуйста, обрати внимание,Это не установлено явноenabled
свойство,Потому что он включен по умолчанию. На следующем этапе мы динамически установим это свойство в зависимости от типа операционной системы.
Далее весной Загрузочное приложениекласс стартапа(Обычно с@SpringBootApplication
аннотированный класс)середина,мы можем ввести инъекциюEnvironment
объект,И установите свойства системы в соответствии с типом операционной системы.,Тем самым контролируя включение и отключение регистрации службы Nacos.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;
@SpringBootApplication
public class MyMicroserviceApplication {
public static void main(String[] args) {
// Определить текущий тип операционной системы
String osName = System.getProperty("os.name").toLowerCase();
if (osName.contains("win")) {
// Если это система Windows, отключите регистрацию службы Nacos.
System.setProperty("spring.cloud.nacos.discovery.enabled", "false");
}
// Начало весны Загрузочное приложение
SpringApplication.run(MyMicroserviceApplication.class, args);
}
}
В приведенном выше коде,мы проходимSystem.getProperty("os.name")
Получить имя текущей операционной системы,и преобразуйте его в нижний регистр для сравнения. Если имя операционной системы содержит «win»,Это означает, что в настоящее время это система Windows.,мы проходимSystem.setProperty
Как настроить системусвойствоspring.cloud.nacos.discovery.enabled
для"false",Тем самым отключив регистрацию службы Nacos. в противном случае,В серверной среде Linux,Для этого свойства останется значение по умолчанию (т. е. регистрация службы Nacos включена).
Теперь, когда вы запускаете приложение Spring Boot в локальной среде разработки Windows, служба не будет автоматически регистрироваться в реестре Nacos. При работе в серверной среде Linux служба будет автоматически зарегистрирована в центре регистрации Nacos, как и ожидалось. После этой настройки вы можете легко проводить самотестирование локально, не беспокоясь о том, что это повлияет на тестовую среду.
В этой статье описывается, как управлять поведением регистрации служб Nacos в зависимости от типа операционной системы в архитектуре микросервисов Spring Cloud. Просто написав условную логику в классе запуска, мы можем отключить регистрацию службы Nacos в локальной среде разработки Windows и автоматически включить функцию регистрации в серверной среде Linux. Такая конфигурация помогает повысить эффективность разработки и защитить стабильность тестовой среды.
Навыки обновляются благодаря обмену ими, и каждый раз, когда я получаю новые знания, мое сердце переполняется радостью. Искренне приглашаем вас подписаться на публичный аккаунт 『
код тридцать пять
』 , для получения дополнительной технической информации.