Эта статья в основном знакомит
Spring Boot
Как работать сConsul
Для интеграции Consul — это только реализация регистрации сервисов, а есть и другие, такие как Zookeeper, Etcd и т. д. Обнаружение регистрации сервисов играет важную роль в архитектуре микросервисов.С появлением большого количества сервисов взаимосвязь между сервисами и услуги Управление конфигурацией и управление эксплуатацией и обслуживанием также стало трудным поддерживать Consul может решить эти проблемы и реализовать управление услугами и мониторинг услуг.
Дополнительные знания о Consul не будут здесь повторяться, но я надеюсь, что вы сможете понять их до изучения этого раздела, пожалуйста, перейдите к тому, что я написал ранееСерия Consul по обнаружению регистрации сервисов микросервисов
Быстрая навигация
- Добавить зависимость Consul Maven
- Файлы конфигурации системного уровня и файлы конфигурации уровня приложения
- Настройка консоли администратора Consul
- сборка проекта
- тест интерфейса
- Суммировать
Уведомление:Следующие примеры кода можно просмотреть на Github для полного примера главы 7-1 проекта.
добавить зависимости maven
существуетSpring Boot
Проектpom.xml
импортируется в файлspring-cloud-starter-consul-discovery
Пусковая установка
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
Необходимо импортировать при использовании информации о конфигурации Consulspring-cloud-starter-consul-config
полагаться
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
конфигурационный файл
Файл конфигурации системного уровня bootstrap.yml
использоватьSpring Cloud Consul Config
, вам необходимо настроить следующую информацию вbootstrap.yml
документ
-
spring.cloud.consul.host
: настроить адрес консула -
spring.cloud.consul.port
: настроить консульский порт -
spring.cloud.consul.config.prefix
: настроить базовый файл, значение по умолчанию — config -
spring.cloud.consul.config.enabled
: запустить центр конфигурации консула -
spring.cloud.consul.config.format
: Формат файла выше консул YAML, ФАЙЛЫ, СВОЙСТВА, по умолчанию КЛЮЧ-ЗНАЧЕНИЕ -
spring.cloud.consul.config.data-key
: указывает значение KEY (или имя файла) на консуле, по умолчанию это данные
bootstrap.yml
spring:
cloud:
consul:
host: 192.168.6.128
port: 8500
config:
prefix: config
enabled: true
format: YAML
data-key: user
Файл конфигурации уровня приложения application.yml
Определите конфигурацию уровня приложения вbootstrap.yml
Загрузите его позже, например, с помощьюspring-cloud-config
использовать.
-
spring.cloud.consul.host
: настроить адрес консула -
spring.cloud.consul.port
: настроить консульский порт -
spring.cloud.consul.discovery.enabled
: включить обнаружение службы -
spring.cloud.consul.discovery.register
: включить регистрацию службы -
spring.cloud.consul.discovery.deregister
: отменить регистрацию, когда служба остановится -
spring.cloud.consul.discovery.prefer-ip-address
: означает использовать IP вместо имени хоста при регистрации -
spring.cloud.consul.discovery.health-check-interval
: частота проверки работоспособности -
spring.cloud.consul.discovery.health-check-path
: путь проверки работоспособности -
spring.cloud.consul.discovery.health-check-critical-timeout
: Через какое время после сбоя проверки работоспособности отменить регистрацию -
spring.cloud.consul.discovery.instance-id
: Идентификатор регистрации службы
server:
port: 8082
spring:
application:
name: consul-service
profiles:
active: dev
cloud:
consul:
host: 192.168.6.128
port: 8500
discovery: # 服务发现配置
enabled: true
register: true
deregister: true
prefer-ip-address: true
health-check-interval: 10s
health-check-critical-timeout: 30s
health-check-path: /health
instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port} # 应用名称+服务器IP+端口
Настройка консоли администратора Consul
Consul
при условииKey/Value
Хранилище используется для хранения данных конфигурации, вSpring Cloud Consul
Конфигурация по умолчанию хранится в/config
папка, в соответствии с названием приложения и симуляциейSpring Cloud Config
Правила разбора свойств для настройки файлов.
В этом примере используйте консоль Consul, чтобы установить следующую конфигурацию пути:
-
config
: для настройки основного файла по умолчанию используетсяconfig
. -
consul-service
:заapplication.yml
настроен вspring.application.name
ценность. -
dev
:заapplication.yml
настроен вspring.profiles.active
Значение также является переменной среды, установленной этой программой для обозначения среды разработки. -
user.yml
: имя файла конфигурации, форматyml
Формат.
config/consul-service.dev/user.yml
Окончательно установленные данные конфигурации для консоли Consul показаны на следующем рисунке:
сборка проекта
Примечание. Ниже размещен только основной код, см. исходный код:Github chapter7-1
Создайте Config, чтобы получить данные конфигурации Consul
- Получить данные о конфигурации учащихся
Обратите внимание, что следующие имена свойств должны полностью соответствовать именам, настроенным в консоли Consul.
@ConfigurationProperties
выполнить инъекцию свойств
config/StudentConfig.java
@ConfigurationProperties(prefix = "student")
public class StudentConfig {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "大家好我是" + name + ",今年" + age + "岁,我是一名在校大学生!";
}
}
- Получить данные конфигурации обучения
Как и в приведенной выше конфигурации ученика, мы можем определить различные типы файлов конфигурации.
@ConfigurationProperties(prefix = "teach")
public class TeachConfig {
private String name;
private String course;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
@Override
public String toString() {
return "大家好我是" + name + ",是一名大学老师!教同学们学习" + course;
}
}
Напишите конфигурацию вызова класса запуска
Примечания:
-
EnableDiscoveryClient
: позволить реестру выполнить обнаружение службы и зарегистрировать службу в компоненте службы. -
RestController
:Да@ResponseBody
и@Controller
Комбинация аннотаций, указывающая, что возвращаемое значение всех методов всего класса после аннотации в формате json. -
SpringBootApplication
: аннотация запуска SpringBoot. -
EnableConfigurationProperties
: Класс конфигурации атрибута добавлен в аннотацию конфигурации атрибута SpringBoot, иначе он не может пройти@Autowired
Аннотация вводится в определяемый нами класс конфигурации свойства.
Описание интерфейса:
-
/health
: Интерфейс проверки работоспособности -
/user/description
: аннотация @Value для получения интерфейса описания информации о пользователе. -
/user/student/intro
: @ConfigurationProperties для доступа к информационному интерфейсу профиля учащегося. -
/user/teach/intro
: @ConfigurationProperties Получить информационный интерфейс профиля учителя
@EnableDiscoveryClient
@RestController
@SpringBootApplication
@EnableConfigurationProperties({ StudentConfig.class, TeachConfig.class })
public class ConsulApplication {
@Value("${description}")
private String description;
@Autowired
private StudentConfig studentConfig;
@Autowired
private TeachConfig teachConfig;
@GetMapping("/health")
public String Health() {
System.out.println("health");
return "OK";
}
@GetMapping("/user/description")
public String Description() {
return description;
}
@GetMapping("/user/student/intro")
public String StudentIntro() {
return studentConfig.toString();
}
@GetMapping("/user/teach/intro")
public String TeachIntro() {
return teachConfig.toString();
}
public static void main(String[] args) {
SpringApplication.run(ConsulApplication.class, args);
}
}
тест интерфейса
- Интерфейс проверки работоспособности
После того, как служба запущена и зарегистрирована в центре конфигурации Consul, этот интерфейс автоматически вызывается в соответствии со свойствами Health-Check-Interval и Health-Check-Path, настроенными в файле application.yml.
$ curl http://127.0.0.1:8082/health
OK!
После успешной регистрации название нашего сервиса и результаты проверки работоспособности будут отображаться следующим образом:
- Получить интерфейс настройки профиля учителя
$ curl http://127.0.0.1:8082/user/teach/intro
大家好我是Teach Li,是一名大学老师!教同学们学习Java软件开发!
- Получить интерфейс настройки профиля учащегося
$ curl http://127.0.0.1:8082/user/student/intro
大家好我是Jack,今年18岁,我是一名在校大学生!
- Используйте аннотацию @Value, чтобы получить интерфейс описания элемента
$ curl http://127.0.0.1:8082/user/description
用户信息描述
Суммировать
Здесь мы только представляем функцию настройки Consul в Spring Boot. О Consul как о реестре будет рассказано в следующей главе. В этой статье вам нужно обратить внимание на свойства, введенные через @Value. После модификации Consul вам нужно перезапустите сервис, чтобы он вступил в силу Через @ConfigurationProperties Внедренные свойства вступают в силу сразу после изменения свойств в консоли Consul.
Если вы столкнетесь с чем-то еще, вы можетеSpringBoot-Course issuesвопрос в
материал
- личный блог:Стек технологий Node.js
- Боевая серия Spring Boot:GitHub.com/Q-Анджело/SP…
- Исходный код проекта:Посмотреть полный пример этой статьи на Github, глава 7-1.
Автор: Мэй Джун
Ссылка на сайт:Уухуу. ИМО OC.com/article/286…
Источник: МООК