Spring Cloud Gateway зарегистрирован на сервисный центр Консул, все услуги прокси сервисного центра

Spring Cloud

Шлюз Шлюз зарегистрирован в сервисном центре Консул

Spring Cloud Gateway предоставляет возможность переадресации по умолчанию.Пока Spring Cloud Gateway зарегистрирован в сервисном центре, Spring Cloud Gateway по умолчанию будет проксировать все службы в сервисном центре.

Шаг 1: Создайте проект

  1. Выберите Шлюз и Консул

Шаг 2. Настройте файл src/main/resources/application.yml.

  1. spring.cloud.gateway.discovery.locator.enabled: сочетается ли он с компонентами регистрации и обнаружения службы и перенаправляется ли он в определенные экземпляры службы через serviceId. По умолчанию установлено значение false, установите значение true, чтобы включить функцию автоматического создания маршрутов на основе serviceId через сервисный центр.
  2. Укажите адрес реестра для использования функции обнаружения служб.
spring.cloud.consul.host=127.0.0.1
spring.cloud.consul.port=8500
# 设置不需要注册到 consul 中
spring.cloud.consul.discovery.register=false

Шаг 3: Создайте контейнер Consul

1. Официальный сайт зеркала:hub.docker.com/_/consul

2.вытащить изображение:

docker pull consul:1.6.0

3. Создайте контейнер (порт управления http по умолчанию: 8500)

docker run -p 8500:8500 consul:1.6.0

4. Посетите URL-адрес управления

http://localhost:8500/

Шаг 4: Запустите сервер

  1. Запустите проект:GitHub.com/Wipe2050/SPR…

Шаг 5. Убедитесь, что сервисный шлюз успешно выполняет переадресацию.

  1. Сервис /hello проекта spring_cloud_consul_producer1_demo:http://localhost:8501/hello,доступ:http://localhost:8506/service-producer/hello , обычно возвращает аналогичный текст: привет, указывая на то, что сервисный шлюз успешно переадресован.

Шаг 6: Использование фильтра: Используйте AddRequestParameter GatewayFilter, чтобы добавить указанные параметры в запрос.

  1. Измените src/main/resources/application.yml и добавьте раздел маршрутов.
  2. адресhttp://localhost:8501/fooСтраница возвращает что-то вроде:参数 foo 的值是:null, что указывает на то, что параметр foo не получен, для вызова этого сервиса через шлюз браузер обращается к адресуhttp://localhost:8506/fooСтраница возвращает что-то вроде:参数 foo 的值是:bar, указывающий, что полоса значений параметра foo успешно получена, что доказывает, что шлюз добавил заданные параметры и значения через фильтр в процессе переадресации.

Шаг 7. Маршрутизация и переадресация на основе служб

  1. Перезапустите сервер:GitHub.com/Wipe2050/SPR…
  2. Измените src/main/resources/application.yml наuri: http://localhost:8501изменился наuri: lb://service-producer, адрес доступа браузера http ://localhost:8506/foo страницы чередуются:参数 foo 的值是:bar,from port:8501а также参数 foo 的值是:bar,from port:8502, что доказывает, что запрос равномерно перенаправляется на серверную службу и что внутренняя служба получила значение параметра foo, добавленное фильтром.

Ссылаться на

использованная литература Примечание URL-адрес
springcloud (16): сервисный шлюз Сервис Spring Cloud GateWay и фильтр Для справки, в проекте используется реестр Eureka. Woohoo. У ИТ есть облако know.com/spring…

Репозиторий кода:GitHub.com/Wipe2050/SPR…