欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springcloud实战之11路由网关(zuul)

程序员文章站 2022-06-21 14:24:30
...

微服务虽然可以将我们的开发单元拆分的更为细致,有效降低了开发难度,但是他所引出的各种问题如果处理不当会成为实施过程中的不稳定因素。甚至掩盖掉原本实施微服务带来的优势。所以再微服务的实施方案中,api网关服务的使用几乎成为了必要的选择。

下面着手搭建一个可用的api-gateway服务

构建springcloud-server-api-gateway服务

引入依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath />
</parent>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Edgware.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zuul</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

创建入口文件

@SpringCloudApplication
@EnableZuulProxy
public class SpringCloudServerApiGatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringCloudServerApiGatewayApplication.class,args);
    }
}

创建配置文件

server:
  port: 8004
spring:
  application:
    name: springcloud-server-api-gateway
eureka:
  client:
    service-url:
      defaultZone: http://peer1:8080/eureka/

zuul:
  routes:
    api-a:
      path: /api-a/**
      serviceId: springcloud-consumer-ribbon
    api-b:
      path: /api-b/**
      serviceId: springcloud-consumer-feign

启动项目

1.启动服务注册中心集群(springcloud-server-eureka)

2.启动服务提供者(springcloud-producer-rest)

3.启动服务消费者(springcloud-consumer-ribbon)

4.启动服务消费者(springcloud-consumer-feign)

5.启动网关服务(springcloud-server-api-gateway)

启动完服务之后的服务注册中心如下图

springcloud实战之11路由网关(zuul)

分别调用

http://localhost:8004/api-b/api/rest/getMessage?token=sss

http://localhost:8004/api-b/api/rest/getMessage?token=sss

服务,结果分别如下:

springcloud实战之11路由网关(zuul)

springcloud实战之11路由网关(zuul)

源码

springcloud-server-eureka

springcloud-producer-rest

springcloud-consumer-feign

springcloud-consumer-ribbon

springcloud-server-api-gateway

历史文章

springcloud实战之1 技术选型:dubbo还是springcloud

springcloud实战之2 服务注册与发现(eureka实现)

springcloud实战之3 高可用服务注册中心(eureka集群)

springcloud实战之5 服务消费者(ribbon)

springcloud实战之6 服务消费者(Feign)

springcloud实战之7 断路器(Hystrix)

springcloud实战之8 断路器-仪表盘-单例监控(Hystrix)

springcloud实战之9断路器-集群监控(turbine)

springcloud实战之10 分布式配置中心(config)