前 言

Spring Cloud 中有zuul和gateway两种技术。

zuul是较早出现的一种技术,是基于servlet实现的。Gateway则是较晚出现,使用spring的WebFlux技术实现的。相较于zuul的阻塞式编程的实现方式,gateway是以响应式编程实现的,有更好的应用性。

Gateway网关应用

Gateway网关是spring cloud中的一门技术,所以要想使用Gateway网关,就要需要创建一个应用模块,这一点相较于其他技术需要下载安装包而言有所不同。并且Gateway网关在一定程度上需要依赖nacos。

1. 在spring cloud中创建工程

2. 导入Maven依赖

zuul和gateway_zuul和gateway_zuul和gateway

3. 配置路由及nacos的地址

zuul和gateway_zuul和gateway_zuul和gateway

图 1 nacos的配置信息

nacos配置参数说明:

zuul和gateway_zuul和gateway_zuul和gateway

图 2 Gateway网关信息

nacos配置参数说明:

4. 开启nacos

使用命令开启nacos,这里使用单节点启动。

打开nacos客户端并查看各个服务是否已经成功注册到了服务中心。

zuul和gateway_zuul和gateway_zuul和gateway

5. 测是功能是否正常

zuul和gateway_zuul和gateway_zuul和gateway

注意:这里的请求url中的端口并不是某个微服务的端口,而是gateway网关的端口,可见这次请求是先通过gateway,然后由网关根据配置文件中的路由规则进行匹配,根据匹配到的规则寻找目标微服务(依赖nacos),然后发送返回结果。

断言工厂

像上述中的spring.cloud.gateway.routes[0].predicates[0]=Path=/user/**这一配置中的Path就是断言工厂中的一个类,类似这样的predicate还有十个。

比如在对order进行访问的时候,把请求方式设置为仅Post请求访问,那么原先的Get请求就访问不了服务了。

下面进行简单的测试:

zuul和gateway_zuul和gateway_zuul和gateway

zuul和gateway_zuul和gateway_zuul和gateway

可见不符合断言规则的请求都会被拒绝访问并报错。

zuul和gateway_zuul和gateway_zuul和gateway

END

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注