返回顶部
首页 > 资讯 > 后端开发 > Python >Zuul 实现网关转发的五种方式小结
  • 200
分享到

Zuul 实现网关转发的五种方式小结

2024-04-02 19:04:59 200人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

上图为一个微服务框架的简单示例,当有一个Http请求发送到服务器的时候,其实是先经过了Nginx的,再经过了网关,这里的网关就担任了拦截过滤的作用,既然拦截和过滤了,肯定就涉及到了

上图为一个微服务框架的简单示例,当有一个Http请求发送到服务器的时候,其实是先经过了Nginx的,再经过了网关,这里的网关就担任了拦截过滤的作用,既然拦截和过滤了,肯定就涉及到了请求的转发

转发我大致例了以下五种转发方式:

方式一:path+serviceId 方式

spring_cloud的配置文件application.yml 文件中加入以下配置:


server:
    port: 8888 #服务端口
spring:
    application:
        name: app-zuul-gateway #指定服务名
eureka:
  client:
    service-url:
           defaultZone: http://127.0.0.1:8100/eureka/  #注册到eureka中的地址
    reGISter-with-eureka: true  
    fetch-registry: true

instance:
      prefer-ip-address: true #将自己的ip地址注册到Eureka服务中
      ip-address: 127.0.0.1   #ip地址
zuul:
#  方式一:path+serviceId
    routes: #定义服务转发规则
        abcs:   #abcs这个名字任意取的
	        path: /order/**   #配置请求URL的请求规则
	        serviceid: app-order  #eureka中服务的id

跳转示例 :

http://localhost:8888/order/order2/201810300001

http://localhost:8888/order就相当于指定了eureka中id为app-order的微服务,后面在接上他本身的参数,就可以正常使用了

方式二:指定服务id 方式


zuul:
 routes: #定义服务转发规则
         app-order: /order/**

跳转示例 :

http://localhost:8888/order/order2/201810300001

和方法一一样,http://localhost:8888/order就相当于指定了eureka中id为app-order的微服务,后面在接上他本身的参数,就可以正常使用了

方式三:同时配置path和url 方式


zuul:
 routes: #定义服务转发规则
  abcs:
     path: /order/**
     url: http://127.0.0.1:8091 #真正的微服务地址,path匹配的请求都转发到这里

跳转示例 :

http://localhost:8888/order/order2/201810300001

上面的和方法一样,http://localhost:8888/order就相当于指定了eureka中id为app-order的微服务,后面在接上他本身的参数,就可以正常使用了

方式四:路由前缀 方式


zuul:
 prefix: /order2
 strip-prefix: false
 routes:
      app-order: /order/**

跳转示例 :

http://localhost:8888/order2/app-order/201810300001

访问Zuul的/order2/app-order/201810300001路径,请求将会被转发到app-order 的order2/201810300001

方式五:路由前缀2 方式


zuul:
 routes:
     app-order:
        path: /order2/**
        strip-prefix: false

跳转示例 :

http://localhost:8888/order2/201810300001

访问Zuul的/order2/201810300001路径,请求将会被转发到app-order 的order2/201810300001

今天的分享就到此结束啦,以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Zuul 实现网关转发的五种方式小结

本文链接: https://lsjlt.com/news/129822.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Zuul 实现网关转发的五种方式小结
    上图为一个微服务框架的简单示例,当有一个HTTP请求发送到服务器的时候,其实是先经过了Nginx的,再经过了网关,这里的网关就担任了拦截过滤的作用,既然拦截和过滤了,肯定就涉及到了...
    99+
    2024-04-02
  • Zuul如何实现网关转发
    这篇文章主要为大家展示了“Zuul如何实现网关转发”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Zuul如何实现网关转发”这篇文章吧。上图为一个微服务框架的简单示例,当有一个HTTP请求发送到服...
    99+
    2023-06-20
  • Java 实现并发的几种方式小结
    Java实现并发的几种方法 Java程序默认以单线程方式运行。 synchronized Java 用过synchronized 关键字来保证一次只有一个线程在执行代码块。 pu...
    99+
    2024-04-02
  • Android响应事件onClick方法的五种实现方式小结
    在Android的开发中,对于点击事件的OnClickListener有下面四种实现方式,可以根据实际场景的需要选择合适的用法。下面以Button按钮来举例说明。方法一:适合场景:任何场景都通用,但对于一个Activity中要是有多个控件要...
    99+
    2023-05-31
    android onclick roi
  • JavaScript实现树结构转换的五种方法总结
    目录方法一:使用递归方法二:使用循环方法三:使用 reduce方法四:使用哈希表方法五:使用深度优先搜索总结在 JavaScript 编程中,将数组转换为树结构是一个常见的需求。本篇...
    99+
    2023-03-15
    JavaScript树结构转换 JavaScript树结构
  • Python判断Nan值的五种方式小结
    目录Python判断Nan值方式小结numpy判断Math判断Pandas判断判断是否等于自身Nan不属于任何取值区间python的nan处理定义nan的方法常见的计算结果为nan的...
    99+
    2024-04-02
  • C#实体类转换的两种方式小结
    目录C#实体类转换方式以下提供两种方式实现功能开发环境实现代码C#实体类转为JSON字符串总结C#实体类转换方式 将一个实体类的数据赋值到另一个实体类中(亦或者实现深拷贝)。 以下提...
    99+
    2023-01-28
    C#实体类 C#实体类转换 C#转换实体类
  • SpringbootMaven打包跳过测试的五种方式小结
    目录Maven跳过单元测试五种方法1、命令行方式跳过测试2、pom.xml中配置跳过测试3、idea直接配置4、添加Maven配置参数5、通过更改设置使用Maven打包的时候,可能会...
    99+
    2023-05-18
    Springboot Maven打包跳过测试 Springboot Maven 跳过测试
  • Java 异步实现的几种方式小结
    Java 异步实现的几种方式 1. jdk1.8之前的Future jdk并发包里的Future代表了未来的某个结果,当我们向线程池中提交任务的时候会返回该对象,可以通过future...
    99+
    2024-04-02
  • C#多态的三种实现方式(小结)
    C#实现多态主要有3种方法,虚方法,抽象类,接口 1 虚方法 在父类的方法前面加关键字virtual, 子类重写该方法时在方法名前面加上override关键字,例如下面的Perso...
    99+
    2024-04-02
  • Java 数组转List的四种方式小结
    目录第一种方式(未必最佳):使用ArrayList.asList(strArray)第二种方法(支持增删查改):第三种方式(通过集合工具类Collections.addAll()方法...
    99+
    2024-04-02
  • Vue路由跳转的4种方式小结
    目录1、 标签路由 router-link2、编程式路由 this.$router.push()3、this.$router.replace()(与this.$router.push...
    99+
    2024-04-02
  • Java单例模式的五种实现方式
    目录前言饿汉单例懒汉单例非线程安全的懒汉单例加同步锁的懒汉单例双重检验懒汉单例静态内部类静态内部类为什么是线程安全总结前言 单例模式(Singleton Pattern)是 Java...
    99+
    2024-04-02
  • vue深拷贝的3种实现方式小结
    目录1、通过递归方式实现深拷贝2、JSON.parse(JSON.stringify(obj))3、jQuery的extend方法实现深拷贝拓展阅读vue深拷贝的其他实现方式总结vu...
    99+
    2023-02-21
    vue深拷贝的三种实现方式 vue实现深拷贝 vue 深拷贝
  • go语言中五种字符串的拼接方式(小结)
    目录+拼接方式sprintf函数Join函数buffer.Builderbuffer.WriteString函数buffer.Builder函数ps:直接使用运算符主要结论+拼...
    99+
    2022-06-07
    小结 GO 字符串 go语言 字符
  • JMeter参数化4种实现方式(小结)
    目录1 参数化释义2 参数化实现2.1 CSV Data Set ConfigCSV简介CSV实例注意事项2.2 User Parameters2.3 用户定义的变量2.4 Rand...
    99+
    2024-04-02
  • python实现简易五子棋小游戏(三种方式)
    tkinter库:Python的标准Tk GUI工具包的接口 示例: from tkinter import *root = Tk()#你的ui代码Label(root,text = 'hello world!').pack()root.m...
    99+
    2023-09-07
    python numpy 开发语言 pygame visual studio
  • redis实现延时队列的两种方式(小结)
    背景 项目中的流程监控,有几种节点,需要监控每一个节点是否超时。按传统的做法,肯定是通过定时任务,去扫描然后判断,但是定时任务有缺点:1,数据量大会慢;2,时间不好控制,太短,怕一...
    99+
    2024-04-02
  • feign实现传递参数的三种方式小结
    需要注意的一点是,feign好像是无法传递list集合类型的,但是你可以通过传递对象类型,然后在接收方再次将对象装在集合中达到集合传递的效果 传递方式一:传递的都是基本数据类型 re...
    99+
    2024-04-02
  • java实现/创建线程的几种方式小结
    进程与线程 进程可以简单理解成一个可执行程序例如.exe,在Windows中的任务管理器中可以查看每一个进程,进程是一次程序的执行,是程序在数据集合上运行的过程,是系统资源调度的一...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作