黑马学SpringCloud-Gateway

Posted dengfengling999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑马学SpringCloud-Gateway相关的知识,希望对你有一定的参考价值。


目录:

(1)网关的作用介绍

(2)网关快速入门

(3)路由断言工厂

(4)路由的过滤器

(5)全局过滤器

(6)过滤器链执行顺序

(8)网关的cors跨越配置


(1)网关的作用介绍

 并不是所有人可以访问我们的业务,需要去进行拦截,网关来做这件事,一切请求先到网关,再到微服务

 

(2)网关快速入门

 

新建一个Model:

在pom中引入依赖:

创建启动类启动网关:GetwayApplication:

 网关的功能有很多,我们先来做一个请求的路由:

 编写配置文件:application.yml

 启动服务:

访问:

(3)路由断言工厂

 

 

例如:

在来配置文件中添加配置:After指定时间点之后才能发起请求

 访问order请求不符合规则报404

 改为Before:指定访问在某个时间点之前才能访问:

再次访问可以访问:

(4)路由的过滤器配置

 

 在配置文件中添加过滤的请求头:AddRequestHeader

 修改user-service的请求方法:添加一个参数并打印

 重启服务:

成功的打印了信息:

 配置默认的过滤器对所有请求都生效

 配置全局过滤器注释局部过滤器:

重启网关 ,访问服务:

 

 访问:发现两个端口的的都生效了

 

(5)全局过滤器

 

写一个过滤器类:

加上注解有两种方式可以通过@Order(-1)还可以实现Orderd:指明过滤器的执行顺序

 -1 

 重启网关:访问访问失败

加上参数:成功访问

 参数写错:又不能访问了

 

(6)过滤器链执行顺序

 

 过滤器的执行顺序是根据order的值来执行

 (8)网关的cors跨越配置

我们的跨域请求不需要在每个每个微服务里都去配置,在网关处理就可以了

准备前端,发送请求:

端口不一致出现问题:

在网关添加配置:

 重启网关:在次刷新查询到接口

 

 

黑马学ElasticSearch

目录:

(1)RestClient-操作索引库-导入demo

(2)RestClient操作索引-hotel数据结构分析

(3)RestClient操作索引库-初始化RestClient

 (4)RestClient操作索引库-创建索引库

 (5)RestClient操作索引库-删除和判断索引库


(1)RestClient-操作索引库-导入demo

前面我们学习了通过DSL语句操作ES索引库,文档数据,要想通过java代码操作,必须使用ES官方提供的RestClient实现了

 最早的是Low Level Rest Client 后来是Hight Level REST Client,做了进一步封装

 

 

数据库: 

 

 

 导入项目:

 配置文件:

启动类:

 

这里用了MyBatis-plus:

service: 实现类:

 实体类:

(2)RestClient操作索引-hotel数据结构分析

 

 

 单个字段搜索效率高还是多个字段搜索效率高,显然是一个字段效率高,但是我的需求是用户输入名称、品牌、商圈能搜到,多个字段还要性能好怎么办?

它并不是把文档拷贝进去,而只是基于它创建倒排索引,将来查的时候看不到这个字段,好像不存在一样,但是搜能根据它搜 

 

 

 (3)RestClient操作索引库-初始化RestClient

SppringBoot项目中默认的ES版本是7.12.2需要自己覆盖它的版本:

 创建测试类:

@BeforeEach:单元测试里面的注解,提前完成对象的初始化

@AfterEach:销毁注解

以后写的所有的单元测试,都会先运行BeforeEach 最后运行@AfterEach

写一个方法测试一下:

 (4)RestClient操作索引库-创建索引库

 mapping映射:

创建一个静态常量,保存DSL语句: 

 

 

 在这个测试方法中,静态导入:

 

 

 运行这个测试类:

在浏览器查询一下:

 (5)RestClient操作索引库-删除和判断索引库

 client.indices()返回值是IndicesClient对象里面封装了操作索引库的API

 

在测试类HotelIndexTest.java中添加删除测试的方法:

判断索引库是否存在的方法:当上面删除索引库后,判断

以上是关于黑马学SpringCloud-Gateway的主要内容,如果未能解决你的问题,请参考以下文章

搭建SpringCloud微服务框架:SpringCloud-Gateway 服务网关处理

搭建SpringCloud微服务框架:SpringCloud-Gateway 服务网关处理

SpringCloud-Gateway

深入浅出SpringCloud原理及实战「SpringCloud-Gateway系列」微服务API网关服务的Gateway全流程开发实践指南(入门篇)

Gateway实战:SpringCloud-Gateway组件使用

springcloud-gateway 网关异常处理