-- 2019-04-15 20:22:34

  • 引言

上一节是一个最基本的zuul网关实例,它是整个spring-cloud生态里面“路由-服务”的一个缩影,后续也就是锦上添花。这节主要讲述zuul的一些基本典型配置,包括路由与一些增强配置。


  • 路由配置

zuul作为微服务的“路由器”,有很多的路由功能:

  • 路由配置简化与规则

前面单实例serviceId映射:

zuul:
routes:
client-a:
path: /client/**
serviceId: client-a

是从/client/**到client-a服务的映射规则,其实还有其他的方式配置:

zuul:
routes:
client-a: /client/**

还有:

 zuul:
routes:
client-a:

这种情况会默认添加规则/client-a/**,相当于:

 zuul:
routes:
client-a:
path: /client-a/**
serviceId: client-a
  • 单实例url映射

除了写服务名,还可以写物理地址,将serviceId替换成url即可:

 zuul:
routes:
client-a:
path: /client/**
url: http:localhost:7070 #client-a的地址
  • 多实例路由

在默认情况下,Zuul会使用Eureka中集成的基本负载均衡功能(策略好像是随机),如果想要使用Ribbon的负载均衡功能,就需要指定一个serviceId,而且需要禁用Ribbon使用Eureka,在E版之后新增了负载均衡策略的配置:

 spring:
application:
name: zuul-server
server:
port: 5555 #---------其他路由写法
zuul:
routes:
client-a: /client/** client-a:
ribbon:
NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
listOfServers: http://localhost:7070,http://localhost:7071 #ribbon脱离eureka的使用,这里指定源服务列表
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #声明策略模式为随机
eager-load:
clients:
enabled: #使用配置的方式对特定的源服务进行策略约束【规则:clientName.ribbon.*】
ribbon:
eureka:
enabled: false #禁用eureka

  • 路由通配符规则
规则 释义 示例
/** 匹配任意数量的路径与字符

client/add,/client/student/add,

/client/a/b

/* 匹配任意数量的字符 /client/add,/client/mul
/? 匹配单个字符 /client/a,/client/b

spring-cloud-Zuul学习(二)【基础篇】--典型配置【重新定义spring cloud实践】的更多相关文章

  1. mybatis 学习二 MyBatis简介与配置MyBatis+Spring+MySql

    1.2.2建立MySql数据库 在C:\Program Files\MySQL\MySQL Server 5.7\bin下面: 首先连接MySQL:        mysql  -u root -p ...

  2. Vue.js 源码分析(二) 基础篇 全局配置

    Vue.config是一个对象,包含Vue的全局配置,可以在启动应用之前修改下列属性,如下: ptionMergeStrategies        ;自定义合并策略的选项silent         ...

  3. Spring+SpringMVC+MyBatis+easyUI整合基础篇(十二)阶段总结

    不知不觉,已经到了基础篇的收尾阶段了,看着前面的十几篇文章,真的有点不敢相信,自己竟然真的坚持了下来,虽然过程中也有过懒散和焦虑,不过结果还是自己所希望的,克服了很多的问题,将自己的作品展现出来,也发 ...

  4. Spring+SpringMVC+MyBatis+easyUI整合基础篇

    基础篇 Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简介 Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试 Spring+S ...

  5. Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置

    0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...

  6. 一步步学习javascript基础篇(0):开篇索引

    索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...

  7. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

  8. Python3学习(1)-基础篇

    Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...

  9. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  10. Spring+SpringMVC+MyBatis+easyUI整合基础篇(六)maven整合SSM

    写在前面的话   承接前文<Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven>,本篇所讲述的是如何使用maven与原ssm项目整合,使得一个普 ...

随机推荐

  1. python笔记01-05

    作者:Vamei 出处:http://www.cnblogs.com/vamei https://blog.csdn.net/flyfrommath/article/details/77447587 ...

  2. node命令行工具—cf-cli

    音乐分享: 钢心 - <龙王> 初喜<冠军>后喜<龙王> (PS:听一次钢心乐队的演出后采访才知道 “龙王”隐喻的是一起喝酒的老铁....) ——————————— ...

  3. 帆软报表(finereport)使用row_number ()进行组内排序

    ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号.在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也 ...

  4. 在线激活win10、win8/8.1和office2019、2016、2013等的kms激活工具

    在线激活win10.win8/8.1和office2019.2016.2013等的kms激活工具 MicroKMS神龙版能激活win10.win8/8.1.win7以及server2008/2012/ ...

  5. django-auth组件

    auth组件 一.auth模块简介 auth模块是django自带的用户认证模块,包含了身份验证和权限管理两部分. 身份验证用于核实某个用户是否合法,权限管理用于决定一个合法用户有哪些权限 默认情况下 ...

  6. Spring中@Component注解,@Controller注解详解

    在使用Spring的过程中,为了避免大量使用Bean注入的Xml配置文件,我们会采用Spring提供的自动扫描注入的方式,只需要添加几行自动注入的的配置,便可以完成 Service层,Controll ...

  7. Django—视图

    索引 一.URLconf 二.视图 三.HttpReqeust对象 3.1 QueryDict对象 3.2 GET和POST属性 四.HttpResponse对象 4.1 子类JsonResponse ...

  8. iOS开发之常用路径及文件操作方法

    一.常用的路径方法 1.获取AppName.app 目录路径: NSString *path = [[NSBundle mainBundle] bundlePath]; 2.获取Documents目录 ...

  9. Linux基础-命令

    命令格式:command  [-options] [paramter] command: 命令名,相应功能英文单词或缩写 options: 选项,对命进行控制,也可省略 paramter:传送给命令的 ...

  10. 2018-2019-2 网络对抗技术 20165328 Exp1 PC平台逆向破解

    实验目的: 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getSh ...