spring-cloud-Zuul学习(二)【基础篇】--典型配置【重新定义spring cloud实践】
-- 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实践】的更多相关文章
- mybatis 学习二 MyBatis简介与配置MyBatis+Spring+MySql
1.2.2建立MySql数据库 在C:\Program Files\MySQL\MySQL Server 5.7\bin下面: 首先连接MySQL: mysql -u root -p ...
- Vue.js 源码分析(二) 基础篇 全局配置
Vue.config是一个对象,包含Vue的全局配置,可以在启动应用之前修改下列属性,如下: ptionMergeStrategies ;自定义合并策略的选项silent ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(十二)阶段总结
不知不觉,已经到了基础篇的收尾阶段了,看着前面的十几篇文章,真的有点不敢相信,自己竟然真的坚持了下来,虽然过程中也有过懒散和焦虑,不过结果还是自己所希望的,克服了很多的问题,将自己的作品展现出来,也发 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇
基础篇 Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简介 Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试 Spring+S ...
- Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置
0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...
- 一步步学习javascript基础篇(0):开篇索引
索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...
- 一步步学习javascript基础篇(3):Object、Function等引用类型
我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...
- Python3学习(1)-基础篇
Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(六)maven整合SSM
写在前面的话 承接前文<Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven>,本篇所讲述的是如何使用maven与原ssm项目整合,使得一个普 ...
随机推荐
- [转载]在termux上安装Kali Linux
最近在手机上下了个Termux,然后想装个kali,就找到了这篇文章. 不过其中的命令有一处错误(在我进行配置的时候报错了): 命令应该是 ./atilo install kali
- day16——函数式编程和内置函数
编程的方法论 面向过程:找到问题的 函数式:不可变.不用变量保存状态.不修改变量 面向对象: 高阶函数: 满足俩个特性任意一个即为高阶函数 1.函数的传入参数是一个函数名 2.函数的返回值是一个函数名 ...
- Gitlab_ansible_jenkins三剑客⑤jenkins Pipeline-job的使用
Pipeline-job的使用 创建Pipeline任务 找到root用户的id 编写pipeline脚本 #!groovy pipeline{ agent {node {label 'master' ...
- butterknife-gradle-plugin插件
在android library项目里由于R类中变量不再是final类型而无法使用butterknife,为了解决此问题,Jakewharton大神引入了butterknife-gradle-plug ...
- Groovy Closure简介
什么是闭包(Closure) 在Groovy中,闭包是一段匿名的代码段,它可以有参数,返回值,并且能够赋值给一个变量.闭包中使用的变量可以是在闭包外部定义的,也可以是在闭包内部定义的.
- a标签锚点平滑跳转
一.创建锚点 <div class="header" id="top">//终点标签,添加一个id <a href="#top&qu ...
- OPPO A3在哪里打开usb调试模式的详细教程
当我们使用电脑通过数据线连接上安卓手机的时候,如果手机没有开启Usb开发者调试模式,电脑则无办法成功读到我们的手机,这时我们需要找方法将手机的Usb开发者调试模式打开,这里我们叙述OPPO A3如何开 ...
- gradle 编译kafka源码慢
我前提已经在环境变量中将GRADLE_HOME设置到了gradle的目录(在E盘),并且在环境变量里设置了本地仓库GRADLE_USER_HOME. 编译kafka源码时候,很慢很慢.百度了一下,有说 ...
- buaaoo_second_assignment
远瞧忽忽悠悠,近瞧飘飘摇摇,走近点留神看,原来是,电梯被测爆 (一)基于多线程的设计分析 (1)傻瓜电梯 第一次电梯本来想用多线程去写,但是当时对于线程的理解还不够充分(甚至把人当成了线程去找电梯,然 ...
- react-native自定义TextInput光标颜色
<TextInput defaultValue="Highlight Color is red" selectionColor={'red'} style={styles.s ...