Конфигурационный центр Опыт Consul Microservices

задняя часть Микросервисы Spring Vue.js

Spring Cloud Consul

Проект представляет собой реализацию управления сервисом для Consul. Consul — это распределенная система высокой доступности с распределенной, высокой доступностью и высокой масштабируемостью.

Consul

Consul — это инструмент с открытым исходным кодом, выпущенный HashiCorp, который используется для обнаружения сервисов и настройки распределенных систем. По сравнению с другими решениями для регистрации и обнаружения распределенных служб, решение Consul является более универсальным, со встроенной структурой регистрации и обнаружения служб и обладает следующими свойствами:
● Реализация протокола распределенного консенсуса
● Проверка работоспособности
● Хранение ключей/значений
● Решение для нескольких центров обработки данных
Не нужно полагаться на другие инструменты (такие как ZooKeeper и т. д.)

добавить зависимости

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-all</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Какую функциональность предоставляет зависимость consul-all?

<!--消息总线,提供配置实时刷新,不再依赖中间件-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-bus</artifactId>
</dependency>
<!--consul的配置中心功能-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<!--服务注册和发现功能-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

bootstarp.yml

Здесь следует отметить, что он должен быть настроен в bootstarp.yml

spring:
  application:
    name: pig-consul
  cloud:
    consul:
      host: localhost
      port: 8500
      config:
        enabled: true
        format: KEY_VALUE
        watch:
          enabled: true
        prefix: pig-config
  

установить консула

Скачать: https://www.consul.io/downloads.html
Использование: (режим разработки, режим генерации кластера предложений)

-dev表示开发模式运行,使用-client 参数可指定允许客户端使用什么ip去访问,例如-client 127.0.0.1 表示可以使用。  

consul agent -dev -client 127.0.0.1

Ссылка на производственную конфигурацию:
https://www.consul.io/intro/getting-started/join.html
http://127.0.0.1:8500/ui/ для посещения

image

настроить конфигурацию

image

demo

@RestController
public class DemoController {
    @Value("${author}")
    private String author;

    @GetMapping("/demo")
    public String demo() {
        return author;
    }
}

О конфигурации динамического обновления

spring:
  cloud:
    consul:
      config:
        watch:
          enabled: true

Затем приложению необходимо запустить запланированную задачу

@EnableScheduling

Суммировать

  1. По сравнению с центром конфигурации весенней облачной конфигурации, его использование более проблематично, но для обновления в реальном времени этот лучше, чем весенняя облачная конфигурация, он не зависит от уведомления о сообщении промежуточного программного обеспечения, и нет проблем с сервис офлайн.
  2. Эта статья в основном предназначена для начала работы, более продвинутое использование Consul Config в сочетании с Git для контроля версий, пожалуйста, обратитесь к моим более поздним статьям.
  3. О свинье: на основе Spring Cloud и oAuth2.0 разработайте платформу разработки на основе разделения передней и задней части Vue, поддержите несколько входов в систему, таких как учетная запись, SMS, SSO и т. д., и предоставьте вспомогательные учебные пособия по разработке видео.