我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Spring Cloud中的API网关服务Zuul怎么配置

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Spring Cloud中的API网关服务Zuul怎么配置

这篇文章主要讲解了“Spring Cloud中的API网关服务Zuul怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud中的API网关服务Zuul怎么配置”吧!

构建网关

网关的构建我们通过下面三个步骤来实现。

1.创建Spring Boot工程并添加依赖

首先我们创建一个普通的Spring Boot工程名为api-gateway,然后添加相关依赖,这里我们主要添加两个依赖spring-cloud-starter-zuul和spring-cloud-starter-eureka,spring-cloud-starter-zuul依赖中则包含了ribbon、hystrix、actuator等,如下:

<parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>1.5.7.RELEASE</version>    <relativePath/> <!-- lookup parent from repository --></parent><properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>    <java.version>1.8</java.version>    <spring-cloud.version>Dalston.SR3</spring-cloud.version></properties><dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter</artifactId>    </dependency>    <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></dependencies><dependencyManagement>    <dependencies>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-dependencies</artifactId>            <version>${spring-cloud.version}</version>            <type>pom</type>            <scope>import</scope>        </dependency>    </dependencies></dependencyManagement>

2.添加注解

然后在入口类上添加@EnableZuulProxy注解表示开启Zuul的API网关服务功能,如下:

@SpringBootApplication@EnableZuulProxypublic class ApiGatewayApplication {    public static void main(String[] args) {        SpringApplication.run(ApiGatewayApplication.class, args);    }}

3.配置路由规则

application.properties文件中的配置可以分为两部分,一部分是Zuul应用的基础信息,还有一部分则是路由规则,如下:

# 基础信息配置spring.application.name=api-gatewayserver.port=2006# 路由规则配置zuul.routes.api-a.path=/api-a/**zuul.routes.api-a.serviceId=feign-consumer# API网关也将作为一个服务注册到eureka-server上eureka.client.service-url.defaultZone=http://localhost:1111/eureka/

我们在这里配置了路由规则所有符合/api-a/**的请求都将被转发到feign-consumer服务上,至于feign-consumer服务的地址到底是什么则由eureka-server去分析,我们这里只需要写上服务名即可。以上面的配置为例,如果我请求http://localhost:2006/api-a/hello1接口则相当于请求http://localhost:2005/hello1(我这里feign-consumer的地址为http://localhost:2005),我们在路由规则中配置的api-a是路由的名字,可以任意定义,但是一组path和serviceId映射关系的路由名要相同。

OK,做好这些之后,我们依次启动我们的eureka-server、provider和feign-consumer,然后访问如下地址http://localhost:2006/api-a/hello1

看到这个效果说明我们的API网关服务已经构建成功了,我们发送的符合路由规则的请求自动被转发到相应的服务上去处理了。

请求过滤

构建好了网关,接下来我们就来看看如何利用网关来实现一个简单的权限验证。这里就涉及到了Spring Cloud Zuul中的另外一个核心功能:请求过滤。请求过滤有点类似于Java中Filter过滤器,先将所有的请求拦截下来,然后根据现场情况做出不同的处理,这里我们就来看看Zuul中的过滤器要如何使用。很简单,两个步骤:

1.定义过滤器

首先我们定义一个过滤器继承自ZuulFilter,如下:

public class PermisFilter extends ZuulFilter {    @Override    public String filterType() {        return "pre";    }    @Override    public int filterOrder() {        return 0;    }    @Override    public boolean shouldFilter() {        return true;    }    @Override    public Object run() {        RequestContext ctx = RequestContext.getCurrentContext();        HttpServletRequest request = ctx.getRequest();        String login = request.getParameter("login");        if (login == null) {            ctx.setSendZuulResponse(false);            ctx.setResponseStatusCode(401);            ctx.addZuulResponseHeader("content-type","text/html;charset=utf-8");            ctx.setResponseBody("非法访问");        }        return null;    }}

关于这个类我说如下几点:

filterType方法的返回值为过滤器的类型,过滤器的类型决定了过滤器在哪个生命周期执行,pre表示在路由之前执行过滤器,其他可选值还有post、error、route和static,当然也可以自定义。
2.filterOrder方法表示过滤器的执行顺序,当过滤器很多时,这个方法会有意义。
3.shouldFilter方法用来判断过滤器是否执行,true表示执行,false表示不执行,在实际开发中,我们可以根据当前请求地址来决定要不要对该地址进行过滤,这里我直接返回true。
4.run方法则表示过滤的具体逻辑,假设请求地址中携带了login参数的话,则认为是合法请求,否则就是非法请求,如果是非法请求的话,首先设置ctx.setSendZuulResponse(false);表示不对该请求进行路由,然后设置响应码和响应值。这个run方法的返回值在当前版本(Dalston.SR3)中暂时没有任何意义,可以返回任意值。

2.配置过滤器Bean

然后在入口类中配置相关的Bean即可,如下:

@BeanPermisFilter permisFilter() {    return new PermisFilter();}

感谢各位的阅读,以上就是“Spring Cloud中的API网关服务Zuul怎么配置”的内容了,经过本文的学习后,相信大家对Spring Cloud中的API网关服务Zuul怎么配置这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Spring Cloud中的API网关服务Zuul怎么配置

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Spring Cloud中的API网关服务Zuul怎么配置

这篇文章主要讲解了“Spring Cloud中的API网关服务Zuul怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud中的API网关服务Zuul怎么配置”吧!构
2023-06-19

Spring Cloud中API网关服务Zuul的示例分析

这篇文章主要为大家展示了“Spring Cloud中API网关服务Zuul的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring Cloud中API网关服务Zuul的示例分析”这篇
2023-05-30

Spring Cloud中服务网关Zuul的示例分析

这篇文章主要介绍Spring Cloud中服务网关Zuul的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在微服务架构中,需要几个关键的组件,服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,
2023-06-19

服务网关Spring Cloud Zuul的示例分析

这篇文章主要为大家展示了“服务网关Spring Cloud Zuul的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“服务网关Spring Cloud Zuul的示例分析”这篇文章吧。一、
2023-06-29

Spring Cloud Zuul服务网关的示例分析

这篇文章将为大家详细讲解有关Spring Cloud Zuul服务网关的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。有了Eureka服务注册发现、Hystrix断路器、Ribbon服务调用负载均
2023-05-30

Spring cloud网关gateway进行websocket路由转发规则怎么配置

这篇“Spring cloud网关gateway进行websocket路由转发规则怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起
2023-07-05

Spring Cloud Config服务端配置的方法是什么

这篇文章主要讲解了“Spring Cloud Config服务端配置的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud Config服务端配置的方法是什么”吧
2023-06-19

Spring Cloud怎么实现高可用的配置中心

这篇文章主要为大家展示了“Spring Cloud怎么实现高可用的配置中心”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring Cloud怎么实现高可用的配置中心”这篇文章吧。配置中心如何
2023-06-19

怎么用Spring Cloud Bus实现通知微服务架构的配置文件的更改

本篇内容主要讲解“怎么用Spring Cloud Bus实现通知微服务架构的配置文件的更改”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Spring Cloud Bus实现通知微服务架构的
2023-06-19

云服务器怎么配置虚拟网卡的网络设置

虚拟网卡的网络设置是一个比较复杂的问题,以下是一些常见的虚拟网卡配置方式以及需要注意的事项:虚拟网卡的类型及设置方法:虚拟网卡可以是不同类型的,例如MicrosoftVirtualPC、Samba、Linux或OpenWRT等,具体设置可以参考相应的官方文档或论坛讨论区。以下是虚拟网卡的一些常见类型及设置方法:(1)MicrosoftVirtualPC:这种虚拟网卡是最常见的,也是最常用的虚拟网卡之一。它可以创建虚拟私人网络,允许用户共享网络数据。...
2023-10-27

云服务器怎么配置虚拟网卡的网络

虚拟网卡的网络配置可以基于您的云服务器提供商的网络配置工具或者第三方虚拟网卡管理软件来进行。以下是一些可能需要考虑的基本信息:虚拟网卡类型:虚拟网卡有多种不同的类型,如NFS网卡、WebCards等等。您需要确定您使用的虚拟网卡是哪种类型,以及它可以支持哪些功能。网络类型:虚拟网卡需要支持不同的网络类型,例如IPv4或IPv6。您需要确保您的虚拟网卡支持以及适合您的网络。网络带宽要求:虚
2023-10-26

云服务器配置网络环境怎么设置的

一、网络环境的设置在云服务器的配置网络环境时,需要考虑以下几个方面:选择合适的网络拓扑在选择网络拓扑时,需要考虑多种网络拓扑,如VLAN、HA等。在VLAN中,可以实现网络隔离和数据保护;在HA中,可以提高服务器的可用性和可扩展性。在实际使用中,可以根据实际需求选择合适的网络拓扑。网络设备的配置网络设备是网络环境的基础
云服务器配置网络环境怎么设置的
2023-10-28

阿里云的服务器怎么配置网络

简介阿里云是中国领先的云计算服务提供商,提供了丰富的云产品和解决方案。对于在阿里云上部署的服务器,网络配置是非常重要的一步。本文将介绍如何在阿里云上配置网络,以便实现服务器与外部网络的连接。详细说明步骤一:创建弹性公网IP在阿里云控制台上,首先需要创建一个弹性公网IP(ElasticIPAddress,简称EIP)。E
阿里云的服务器怎么配置网络
2024-01-17

云服务器怎么配置虚拟网卡的

虚拟网卡(VirtualRealNetworkCard)是一种虚拟化技术,可以使用计算机上的硬件设备实现虚拟网络连接和网络拓扑的改变。以下是配置虚拟网卡的基本步骤:选择虚拟网卡设备:首先需要选择一种适合您的工作负载的虚拟网卡设备。通常,您需要选择带有以太网接口、无线功能或集成无线功能的设备。配置VirtualRealNetworkCard:在选择的虚拟网卡上,您可以配置以太网端口、无线功
2023-10-26

云服务器配置环境怎么设置好的网络

云服务器的核心优势之一就是可以为用户提供高可靠的云服务。由于云服务器是通过互联网提供服务的,所以它可以提供高度稳定可靠的服务。通过云服务器,用户可以在不同的设备之间迁移数据,同时不会对应用程序和系统产生任何影响。此外,云服务器还可以提供高度的容错能力,在发生故障或宕机的情况下,可以自动切换到备用服务器,保证业务的持续运
云服务器配置环境怎么设置好的网络
2023-10-28

云服务器怎么配置虚拟网卡的网络连接设置

选择虚拟网卡首先,在云服务器中选择虚拟网卡。可以在官网或者第三方平台上搜索适合的虚拟网卡,然后选择相应的配置选项。一般情况下,可以选择一个公有云平台上提供的虚拟网卡,也可以选择一个云服务商提供的虚拟网卡。配置虚拟网卡的网络连接在选择好虚拟网卡后,需要在云服务器中配置虚拟网卡的网络连接。具体步骤如下:登录云服务器管理界面
云服务器怎么配置虚拟网卡的网络连接设置
2023-10-28

阿里云服务器ipv6怎么配置的网络

阿里云服务器IPv6是需要进行配置的,以下是一些常见的配置方法:服务器配置:首先,需要确定服务器使用的IP地址和路由方式。常规IP地址是192.168.1.1,使用MAC地址则需要填写192.168.1.2或者192.168.1.3,路由方式默认是使用DHCP动态分配的IP地址。客户端配置:接下来,需要配置客户端使用的IP地址、路由方式和DNS。客户端可以使用阿里云提供的客户端程序进行配置
2023-10-26

云服务器怎么配置ip地址的网络

云服务器的配置需要考虑IP地址的分配、路由和安全性等方面。以下是一些建议:IP地址的分配:首先要确定服务器的IP地址是什么,例如:您的服务器在国内还是国外。您需要根据您的IP地址确定您的网络地址,以便能够访问服务器的网络和其他资源。路由和安全性:根据您的IP地址以及您的域名地址来配置云服务器的路由和安全性。路由可以帮助您将您的服务器连接到其他服务提供商或提供商,并确保它们可以访问您所在的网
2023-10-26

云服务器怎么配置虚拟网卡的ip

虚拟网卡的IP可以使用网卡自带的IP地址来配置,也可以使用第三方的IP地址来创建虚拟网卡的IP地址,具体需要根据您所使用的操作系统和计算机的型号进行选择。以下是一个示例的配置:在网卡的操作系统中选择一个支持虚拟网卡的操作系统在网络连接中设置虚拟网卡的IP地址例如,您可以使用Windows操作系统的IP地址:windows:ip=8.8.8.1-330.255.255.255您
2023-10-26

云服务器怎么配置全网络供应商的服务

要配置全网络供应商的服务,需要确定您需要哪些功能和服务,以及您的组织和网络的规模如何。以下是一些建议:配置服务的IP地址(例如,您希望将您的IP地址分配给某个供应商服务):如果您的组织在一个较小的城市,您可能不需要分配IP地址,这通常是因为供应商提供的服务可以通过互联网访问。如果您希望将IP地址分配给多个供应商,您需要确保您的组织有足够的带宽和网络连接以支持这些服务。如果您正在使用多
2023-10-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录