Gateway的使用案例

    技术2022-07-10  136

    所有微服务的调用需要先经过网管微服务,然后间接链接到真正提供服务的微服务,这样就不用暴露真正的服务器地址

    pom依赖

    注意 不要引入web模块和actuator

    <!-- spring-cloud-starter-gateway --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>

    方式一:配置

    yml配置文件

    server: port: 9527 spring: application: name: cloud-gateway cloud: gateway: routes: - id: payment_routh #路由id,没有固定规则,但要求唯一,建议配合服务名 uri: http://localhost:8001 #匹配后提供服务的路由地址 predicates: - Path=/payment/get/** #断言,路径相匹配的则进行路由 - id: payment_routh2 #路由id,没有固定规则,但要求唯一,建议配合服务名 uri: http://localhost:8001 #匹配后提供服务的路由地址 predicates: - Path=/payment/lb/** #断言,路径相匹配的则进行路由

    方式二:编码

    配置访问路由端口/guonei链接到http://news.baidu.com/guonei的示例代码

    import org.springframework.cloud.gateway.route.RouteLocator; import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class GatewayConfigration { @Bean public RouteLocator myRouteLocator(RouteLocatorBuilder builder){ RouteLocatorBuilder.Builder routes=builder.routes(); routes.route("my_path_routh",r->r.path("/guonei").uri("http://news.baidu.com/guonei")); return routes.build(); } }
    Processed: 0.014, SQL: 9