Spring Cloud学习--服务网关(Zuul)

本文目录:

一. Zuul简介

在之前学习的知识中,我们可以利用Eureka实现服务注册与发现,利用Ribbon实现客户端的负载均衡,利用Hystrix实现容错机制,利用Feign进行声明式调用。而Spring Cloud Zuul可以和以上组件配合使用。作为微服务网关,介于客户端和服务器端之间的中间层,所有的外部请求都会先经过微服务网关。架构图如下:

这里写图片描述

二. 使用Zuul作为微服务网关

1.新建一个基于Spring Boot 的Maven工程,pom文件中添加如下依赖:

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

2.在启动类上添加注解@EnableZuulProxy,表示该类是一个Zuul代理类。

/**
 * @EnableZuulProxy 这个注解使用Ribbon来定位注册到Eureka中的所有微服务,
 * 整合了Hystrix,所有经过Zuul的请求都会经过Hystrix命令中执行。
 */
@SpringBootApplication
@EnableZuulProxy
public class SpringCloudZuulApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudZuulApplication.class, args);
    }
}

3.编写配置文件:

spring.application.name=zuul-service
##端口号
server.port=8666
eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/
eureka.client.instance.prefer-ip-address=true

4.启动Eureka注册中心,(可参考:服务注册与发现 http://blog.csdn.net/u012482647/article/details/78017903)启动Eureka client 。(可参考:负载均衡 http://blog.csdn.net/u012482647/article/details/78018985

5.在浏览器访问 http://localhost:8666/string-service/hi,出现如下界面,通过上述步骤,成功编写了一个微服务网关,并将zuul注册到了Eureka。

这里写图片描述

三、 路由配置

3.1、我们只需要通过一组zuul.routes..path与zuul.routes..serviceId参数对的方式配置即可指定微服务的serviceId和对应路径,其中route只是给路由的一个名字,可以起任意名字:

zuul.routes.string-service.path=/string-service/**
zuul.routes.string-service.serviceId=string-service
##实现了对符合/string-service/**规则的请求路径转发到名为string-service的服务实例上去的路由规则。

3.2、同时指定path和URL。

zuul.routes.string-service.url=http://localhost:8000/
zuul.routes.string-service.path=/string-service/**

3.3、自定义指定微服务的访问路径 (效果同2.1一致)。

zuul.routes.string-service=/string-service/**

3.4、忽略指定的微服务。

zuul.ignored-services=pay-service

3.5、忽略所有的微服务,只路由指定的微服务。

zuul.ignored-services='*'
zuul.routes.string-service=/string-service/**

综上所示,一个简单的Zuul示例就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值