您的位置:首页 > 编程语言 > Java开发

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

2017-12-21 14:59 951 查看
微服务虽然可以将我们的开发单元拆分的更为细致,有效降低了开发难度,但是他所引出的各种问题如果处理不当会成为实施过程中的不稳定因素。甚至掩盖掉原本实施微服务带来的优势。所以再微服务的实施方案中,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)

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



分别调用

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

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

服务,结果分别如下:





源码

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring cloud gateway zuul