服务网关zuul
zuul:
1、概念和功能:
1.1、所有的负载均衡方向代理的到zuul网关上面,网关既可以限流,又可以做各个权限的验证,做一些权限的处理,可以对一些的地址进行一些禁用,让其不能访问。
1.2、网关的作用是做路由的,路由的作用其实就是让你不去知道真实的服务地址给它进行路由而已。又可以集中式的去管理这些分发出来的API/路径,所有的调用都是从网关开始走。并不是直接进行服务之间的通信的。直接通信感觉是很乱的,所有的地址无法进行统一的管理和限流。
1.3、这个网关路由的话,先启动cloud-config和cloud-provider的服务。
2、引入相关的依赖如下:org.springframework.cloud,spring.cloud-starter-netflix-zuul:
2.1、按照官网cloud的例子:
每一个项目都会提供 application.yml和bootstrap.yml.
application.yml:主要放的是端口,一些实例的注册,相关git一些的配置。
bootstrap.yml:加密,服务名称。
zuul的配置代码如下,因为网关需要去探知,所以也需要注册到zookeeper上。
2.2、然后再启动zuul之前需要加上@EnableZuulProxy。
2.3、启动下zuul:
2.4、然后去访问下路由的地址:
2.5、去测试下真实访问配置中心客户端的地址:
2.6、然后通过路由的地址去访问:一样可以路由到
以后我们所有访问的API地址都是通过/actuator/routes给路由出来,这就安全了。config:是路由名称
3、但是在开发中很多人都知道这个路由的规则:所以说不能用默认的监控的路由的。路由的端口就是路由器的端口号,监控地址也会重新定义的。
比如:路由管理监控的端口:12345,这就是安全,不可能暴漏自己的端口。
3.1、重启下:zuul,9000:服务器的端口号和12345:指定的端口号
这时路由9000地址是访问不了了。所以说监控的地址一样不能暴漏出去的
用12345端口去访问才是可以的,为了安全。
4、在开发项目的时候我是一个服务一个路由。configserver的值自己随便写的,为了辨别区分的。
代码如下:
再次访问这时多了一个路由:
4.1、把默认的路由去掉:
4.2、也可以定义多个路由并且也可以忽略部分的集合的路由:**可以写具体的地址。serviceId: config对应的是config的服务,ignored-patterns:传的是set集合,代码如下:
4.3、敏感信息头:比如做token方面的验证,啥都不写的是允许所有的敏感信息头。这些是Cookie,Set-Cookie, Authorization
总结:上面是对网关zuul做了基本的介绍,以及简单的一些配置。但是项目中zuul是和fegin框架一起使用的,后面会继续写如何和fegin框架一起使用。
var first_sceen__time = (+new Date()); if ("" == 1 && document.getElementById('js_content')) { document.getElementById('js_content').addEventListener("selectstart",function(e){ e.preventDefault(); }); }
阅读 86