Настройка внешнего URL в микросервисе - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть несколько микросервисов, которые общаются друг с другом через вызовы REST.Я использовал весеннюю загрузку и весенний отдых и настроил URL-адреса конечных точек остальных в файле application.properties.Теперь проблема в том, что если URL-адрес для одной конечной точки изменяется, то мне приходится вручную изменять все файлы свойств служб, которые вызывают эту конкретную конечную точку, которая изменилась.

Есть ли обходной путь для этого?чтобы URL-адреса можно было как-то разместить в централизованном месте, чтобы любая модификация не влияла на другие сервисы, которые их используют.

Ответы [ 4 ]

0 голосов
/ 28 декабря 2018

Вы можете использовать Spring-Cloud для достижения этой цели.Обычный способ, используемый в Spring-Cloud, - это настройка необходимых свойств в git-репо.И тогда эти свойства могут быть доступны любому микросервису с минимальными настройками.Вы можете ссылаться на проектов в этом репо limits-services действует как клиент, которому нужны определенные свойства, настроенные в spring-cloud-config-server.Надеюсь, это поможет.

0 голосов
/ 28 декабря 2018

может поместить конфигурацию в базу данных.
после этого необходимо иметь одну службу централизованного кэша, которая используется другими службами, может быть .jar,
тогда значения могут быть загружены в класс кэша в этой службе,
, тогда на внешней стороне должна быть кнопка обновления для обновления кэша после изменения значения URL в базе данных, чтобы все затронутые службы могли использовать новое значение.
и, что еще проще, может иметь автономный интерфейс для обновления этой конфигурации, а не для непосредственного обновления базы данных.

0 голосов
/ 28 декабря 2018

Как уже упоминали другие, вы можете использовать Spring Cloud Config Server для удаленной загрузки конфигурации вашего приложения.Все, что вам нужно, это git репозиторий, содержащий вашу конфигурацию.

Конфигурация Spring Cloud поддерживает Git, базу данных в качестве хранилища для конфигурации.

Идея состоит в том, чтобы создать приложение с загрузочной пружиной, которое может обеспечить конфигурациюдля других приложений.

@SpringBootApplication
@EnableConfigServer
public class ConfigServer {
  public static void main(String[] args) {
    SpringApplication.run(ConfigServer.class, args);
  }
}

Вы можете настроить порт и предоставить свой git-репозиторий, используя ключ spring.cloud.config.server

server.port: 8888
spring.cloud.config.server.git.uri: file://${user.home}/config-repo

На стороне клиента, если у вас есть spring-config в вашем classpath, приложение попытаетсяподключитесь к приложению runnign через порт 8888 для получения конфигурации.

Дополнительную информацию можно найти здесь .

0 голосов
/ 28 декабря 2018

В случае с микросервисами вы можете использовать Spring Cloud Config ( Spring Cloud Config , Spring Cloud Config Server ).Это очень полезно, и вы можете обновить свою конфигурацию во время выполнения.

Spring Cloud Config обеспечивает серверную и клиентскую поддержку для внешней конфигурации в распределенной системе.С сервером Config у вас есть центральное место для управления внешними свойствами для приложений во всех средах.Концепции и клиента, и сервера соответствуют идентичным абстракциям Spring Environment и PropertySource, поэтому они очень хорошо подходят для приложений Spring, но могут использоваться с любым приложением, работающим на любом языке.По мере того, как приложение перемещается по конвейеру развертывания от dev к тестированию и в производство, вы можете управлять конфигурацией между этими средами и быть уверенным, что приложения имеют все, что им нужно для запуска при миграции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...