微服务从零到一服务网关(Gateway基础篇)

服务网关(Gateway)

搭建网关服务

本案例中使用spring boot的版本为2.0.3.RELEASE,spring cloud版本为Finchley.RELEASE。在中涉及到了三个工程, 分别为注册中心eureka-server、服务提供者service-hi、 服务网关service-gateway,如下:

工程名 端口 作用 eureka-server 1001 注册中心eureka server feign-provider 1003 服务提供者 eurka client gateway 1007 路由网关 eureka client 这三个工程中,其中feign-provider、gateway向注册中心eureka-server注册。用户的请求首先经过service-gateway,根据路径由gateway的predict 去断言进到哪一个 router, router经过各种过滤器处理后,最后路由到具体的业务服务,比如 feign-provider。如图:

    新建gateway工程,新增pom依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
    在工程的配置文件application.yml中 ,指定程序的启动端口为1007,注册地址、gateway的配置等信息,配置信息如下:
server:
  port: 1007

spring:
  application:
    name: gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
          lowerCaseServiceId: true
          
eureka:
  client:
    service-url:
      defaultZone: http://localhost:1001/eureka/
    在浏览器上请求输入,网页获取以下的响应:211111 spring: application: name: gateway cloud: gateway: discovery: locator: enabled: false lowerCaseServiceId: true routes: - id: feign-provider uri: lb://feign-provider predicates: - Path=/user/** filters: - StripPrefix=1 在浏览器上请求,浏览器返回以下的响应: 返回的结果跟我们预想的一样。
经验分享 程序员 微信小程序 职场和发展