spring cloud中基于gateway的路由调用
文章目录
一、简介
这里介绍spring cloud官方推荐的路由调用gateway的使用。
二、开发步骤
这里使用consul作为注册中心。
2.1 路由端
路由端开发很简单,只需要在application.yaml中添加相关路由配置即可,如:
spring:
cloud:
gateway:
routes:
- id: spring-cloud-provider-consul
uri: lb://spring-cloud-provider-consul #指定配置中心服务spring-cloud-provider-consul
predicates:
- Path=/api-provider-consul/** #路径匹配
filters:
- StripPrefix=1 #转发到真实服务时,去掉前面用于路径匹配的第一段
- id: spring-cloud-provider-consul-two
uri: lb://spring-cloud-provider-consul-two
predicates:
- Path=/api-provider-consul-two/**
filters:
- StripPrefix=1
consul:
host: localhost
port: 8500
三、示例
这里以consul注册中心、服务端spring_cloud_provider_consul(两个不同端口对应两实例)、路由端spring_cloud_gateway进行示例。
3.1 注册中心
注册中心很简单,安装启动即可,这里以mac中安装为例:
#安装
brew install consul
#启动
consul agent -dev
3.2 服务端
服务端项目为spring_cloud_provider_consul。
3.2.1 添加maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.dragon.study</groupId>
<artifactId>spring_cloud_provider_consul</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring_cloud_provider_consul</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>