springCloud(14):使用Zuul构建微服务网关-路由端点与路由配置详解

一、Zuul的路由端点

当@EnableZuulProxy与SpringBoot Actuator配合使用时,Zuul会暴露一个路由管理端点/routes。借助这个端点,可以方便、直观地查看以及管理Zuul的路由。

/routes端点的使用非常简单,使用GET方法访问该端点,即可返回Zuul当前映射的路由列表;使用POST方法访问该端点就会强制刷新Zuul当前映射的路由列表(尽管路由会自动刷新,Spring Cloud依然提供了强制立即刷新的方式)。

由于spring-cloud-starter-zuul已经包含了spring-boot-starter-actuator,因此之前编写的microservice-gateway-zuul已具备路由管理的能力。

测试:

1、依次启动eureka-server(4010)、eureka-server-2(5010)、provide-user(4011)、hystrix-consumer-movie(5012)、microservice-gateway-zuul(5016)

2、访问http://localhost:5016/routes,结果报401

解决:配置management.security.enabled=false

从中可以直观地看出路径到微服务的映射。

二、路由配置详解

前面已经编写了一个简单的Zuul网关,并让该网关代理了所有注册到Eureka Server的微服务。但在现实中可能只想让Zuul代理部分微服务,又或者需要对URL进行更加精确的控制。

2.1、自定义指定微服务的访问路径

配置zuul.routes.指定微服务的serverId = 指定路径即可。例如:

zuul:
  routes:
    hystrix-consumer-movie: /movie/**

效果:

2.2、忽略指定微服务

使用zuul.ignored-services配置需要忽略的服务,多个用逗号分隔,例如:

zuul:
  ignored-services: provide-user

效果:

2.3、忽略所有微服务,只路由指定微服务

将zuul.ignored-services设为‘*‘,routes配置指定的微服务,例如:

zuul:
  ignored-services: ‘*‘
  routes:
    hystrix-consumer-movie: /movie/**

效果:

2.4、同时指定微服务的serviceId和对应的路径

zuul:
  routes:
    user-route: # user-route只是给路由一个名称,可以随便命名
     service-id: hystrix-consumer-movie
     path: /movie/**  # service-id对应的路径

效果与2.1一样。

2.5、同时指定path和URL

zuul:
  routes:
    user-route: # user-route只是给路由一个名称,可以随便命名
     url: http://localhost:5200/ #指定URL
     path: /movie/**  # URL对应的路径

说明:当访问http://localhost:5016/movie/user/1时,则会转发至http://localhost:5200/user/1

效果:

注意:使用这种方式配置的路由不会作为HystrixCommand执行,同时也不能使用Ribbon来负载均衡多个URL

2.6、同时指定path和URL,并且不破坏Hystrix、Ribbon特性

未完,待续..

时间: 2024-12-25 07:04:11

springCloud(14):使用Zuul构建微服务网关-路由端点与路由配置详解的相关文章

springCloud(13):使用Zuul构建微服务网关-简介

一.为什么要使用微服务网关 不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求.如:一个电影购票的手机APP,可能会调用多个微服务,才能完成一次购票的业务流程.如果让客户端直接与各个微服务通信,会有以下的问题: 1.客户端会多次请求不同的微服务,增加了客户端的复杂性: 2.存在跨域请求,在一定场景下处理相对复杂: 3.认证复杂,每个服务都需要独立认证: 4.难以重构,随着项目的迭代,可能需要重新划分微服务,如果客户端直接与微服务通信,那么重构将会很难实

springCloud(16):使用Zuul构建微服务网关-容错回退与高可用

一.容错与回退 1.1.容错 在Spring Cloud中,Zuul默认已经整合了Hystrix. 测试: a.依次启动eureka-server(4010).provide-user(4011).hystrix-consumer-movie(5012).microservice-gateway-zuul(5016).hystrix-dashboard(5013) b.访问http://localhost:5016/hystrix-consumer-movie/user/1,可正常获取结果 c.

构建微服务架构Spring Cloud:分布式配置中心

Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分.其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息.加密/解密信息等访问接口:而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息.Spring Cloud Conf

Spring Cloud构建微服务架构(四)分布式配置中心

Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持.配置服务器为各应用的所有环境提供了一个中心化的外部配置.它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在任何其他语言运行的应用程序中使用.作为一个应用可以通过部署管道来进行测试或者投入生产,我们可以分别为这些环境创建配置,并且在需要迁移环境的时候获取对应环境的配置来运行. 配置服务器默认采用git来存储

spring cloud 微服务的版本介绍与内部组件详解

原文地址:https://blog.51cto.com/14185725/2370375

centos 6.5环境利用iscsi搭建SAN网络存储服务及服务端target和客户端initiator配置详解

一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备.主机和客户机等之间的相互连接,并创建存储区域网

pring Cloud构建微服务架构

SpringCloud-Learning 本项目内容为Spring Cloud教程的程序样例. 作者博客:http://blog.didispace.com Spring Cloud系列博文:http://blog.didispace.com/categories/Spring-Cloud/ Spring Cloud中文社区:http://bbs.springcloud.com.cn/ GitHub:https://github.com/dyc87112/SpringCloud-Learning

Linux vsftpd服务配置详解

[背景] 近日,一朋友domino服务器要进行升级.迁移,搭建了linux测试系统,也开启vsftpd服务,可是配置的ftp账号,程序无法正常下载附件. [问题跟踪] 通过ftp客户端连接工具登录,发现未跳转到ftp账号指定的目录下面. cat /etc/vsftpd.config发现开启了: local_root=/home/test 将此注释重启ftp服务正常. 附录(vsftpd配置详解): vsftpd服务器配置文件"/etc/vsftpd/vsftpd.conf",以此为例.

Spring Boot + Spring Cloud 构建微服务系统(七):API服务网关(Zuul)

技术背景 前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡,那我们的各种微服务又要如何提供给外部应用调用呢. 当然,因为是REST API接口,外部客户端直接调用各个微服务是没有问题的,但出于种种原因,这并不是一个好的选择. 让客户端直接与各个微服务通讯,会有以下几个问题: 客户端会多次请求不同的微服务,增加了客户端的复杂性. 存在跨域请求,在一定场景下处理会变得相对比较复杂. 实现认证复杂,每个微服务都需要独立认证. 难以重构,项目迭代可能导致微服务重新划分.如果客户端直接