Шлюз Шлюз зарегистрирован в сервисном центре Консул
Spring Cloud Gateway предоставляет возможность переадресации по умолчанию.Пока Spring Cloud Gateway зарегистрирован в сервисном центре, Spring Cloud Gateway по умолчанию будет проксировать все службы в сервисном центре.
Шаг 1: Создайте проект
- Выберите Шлюз и Консул
Шаг 2. Настройте файл src/main/resources/application.yml.
-
spring.cloud.gateway.discovery.locator.enabled: сочетается ли он с компонентами регистрации и обнаружения службы и перенаправляется ли он в определенные экземпляры службы через serviceId. По умолчанию установлено значение false, установите значение true, чтобы включить функцию автоматического создания маршрутов на основе serviceId через сервисный центр. - Укажите адрес реестра для использования функции обнаружения служб.
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: Запустите сервер
- Запустите проект:GitHub.com/Wipe2050/SPR…
Шаг 5. Убедитесь, что сервисный шлюз успешно выполняет переадресацию.
- Сервис /hello проекта spring_cloud_consul_producer1_demo:http://localhost:8501/hello,доступ:http://localhost:8506/service-producer/hello , обычно возвращает аналогичный текст: привет, указывая на то, что сервисный шлюз успешно переадресован.
Шаг 6: Использование фильтра: Используйте AddRequestParameter GatewayFilter, чтобы добавить указанные параметры в запрос.
- Измените src/main/resources/application.yml и добавьте раздел маршрутов.
- адресhttp://localhost:8501/fooСтраница возвращает что-то вроде:
参数 foo 的值是:null, что указывает на то, что параметр foo не получен, для вызова этого сервиса через шлюз браузер обращается к адресуhttp://localhost:8506/fooСтраница возвращает что-то вроде:参数 foo 的值是:bar, указывающий, что полоса значений параметра foo успешно получена, что доказывает, что шлюз добавил заданные параметры и значения через фильтр в процессе переадресации.
Шаг 7. Маршрутизация и переадресация на основе служб
- Перезапустите сервер:GitHub.com/Wipe2050/SPR…
- Измените 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…