Spring Cloud Gateway的动态路由怎样做? Интеграция реализации Nacos проста

Spring Cloud
Spring Cloud Gateway的动态路由怎样做? Интеграция реализации Nacos проста

file

1. Описание

Основной концепцией шлюза является конфигурация маршрутизации и правила маршрутизации.В качестве точки входа для всего трафика запросов, чтобы обеспечить высокую надежность и высокую доступность в реальной производственной среде, необходимо максимально избегать перезапуска, поэтому очень необходимо для реализации динамической маршрутизации; эта статья в основном знакомитSpring Cloud Gatewayидея реализации, иNacosОбъясните источник данных

PSSpring Cloud ZuulО динамической маршрутизации см. в статье "Как сделать динамическую маршрутизацию Spring Cloud Zuul? Интеграция реализации Nacos проста

 

2. Основные моменты реализации

Для реализации динамической маршрутизации нужно лишь обратить внимание на следующие 4 пункта

  1. Когда шлюз запустится,动态路由как загрузить данные
  2. 静态路由и动态路由Что бы ни превалировало, ps:静态路由Относится к конфигурации маршрута, записанной в файле конфигурации.
  3. монитор动态路由изменения источника данных
  4. Что происходит при изменении данных通知gatewayобновить маршрут

 

В-третьих, конкретная реализация

Spring Cloud GatewayИнформация о маршрутизации, загруженная из Китая, отвечает за следующие классы соответственно.

  1. PropertiesRouteDefinitionLocator: прочитать информацию о маршрутизации (например, YML, свойства и т. д.) из файла конфигурации.
  2. RouteDefinitionRepository: чтение информации о маршрутизации из хранилища (например, из памяти, центра конфигурации, Redis, MySQL и т. д.).
  3. DiscoveryClientRouteDefinitionLocator: чтение информации о маршрутизации из реестра (например, Nacos, Eurka, Zookeeper и т. д.).

  Мы можем настроитьRouteDefinitionRepositoryКласс реализации для достижения цели динамической маршрутизации

 

3.1 Реализация загрузки данных для динамической маршрутизации

СоздаватьNacosизRouteDefinitionRepositoryКласс реализации

Класс NacosRouteDefinitionRepositoryМожет просматривать:NacosRouteDefinitionRepository.java

file

переписатьgetRouteDefinitionsМетод реализует чтение маршрутной информации

  Настройка прослушивателя NACOS прослушивает настройку маршрутизации

file

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

 

3.2. Создайте класс конфигурации

Класс DynamicRouteConfigМожет просматривать:DynamicRouteConfig.java

file

 

3.3. ДобавитьNacosконфигурация маршрутизации

file
Новые элементы конфигурации:

  • Идентификатор данных: scg-routes
  • Группа: SCG_GATEWAY
  • Содержание конфигурации:
[
	{
		"id": "csdn",
		"predicates": [{
			"name": "Path",
			"args": {
					"pattern": "/csdn/**"
			}
		}],
		"uri": "https://www.csdn.net/",
		"filters": []
	},
	{
		"id": "github",
		"predicates": [{
			"name": "Path",
			"args": {
					"pattern": "/github/**"
			}
		}],
		"uri": "http://github.com/",
		"filters": []
	}
]

Добавьте два маршрутных данных

 

4. Тест

Запустите шлюз через/actuator/gateway/routesКонечные точки просматривают текущую информацию о маршрутизации

file

можно увидетьNacosДве сведения о маршрутизации, настроенные в

 

См. полный код Spring Cloud Gateway.

git ee.com/ Эти два дня по 2000/м…

 

Рекомендуемое чтение

  Отсканируйте код, чтобы следовать за сюрпризом!

file