当前位置: 首页 > news >正文

嘉定个人网站建设免费建站推广

嘉定个人网站建设,免费建站推广,兰州中川国际机场图片,电脑培训网上免费课程1. 服务路由 1.1. Zuul 接收请求: 在routes路由规则中,根据path去匹配,如果匹配中,就使用对应的路由规则进行请求转发如果无法从routes中匹配,则根据path用“/”去截取第一段作为服务名进行请求转发,转发…

1. 服务路由

1.1. Zuul 接收请求:

  1. 在routes路由规则中,根据path去匹配,如果匹配中,就使用对应的路由规则进行请求转发
  2. 如果无法从routes中匹配,则根据path用“/”去截取第一段作为服务名进行请求转发,转发时,默认将第一段截取调
  3. 如果截取的服务名不在注册中心中存在服务,则报错404

1.2. Gateway 接收请求:

  1. 在routes路由规则中,根据断言(predicates)来匹配路由规则,最常用的是Path;在 zuul 中,会提供默认的 url 截取,在 Gateway 这里,需要我们主动使用 StripPrefix 过滤器来完成
  2. 如果从routes路由中,经过断言也无法匹配,则直接返回404

所以这里需要注意,如果在zuul网关有服务使用了路由转发但是没有配置,在gateway这里一定要手动配置上。

2. 过滤器

在使用 Zuul 网关中,常使用 javax.servlet.Filtercom.netflix.zuul.ZuulFilter来完成过滤器的作用。

如果改造为 Spring cloud Gateway,可使用 org.springframework.web.server.WebFilterorg.springframework.cloud.gateway.filter.GlobalFilter来完成替换。

其中 WebFilter 对应 Filter,是对路由转发+web接口调用进行过滤;而网关组件提供的过滤器,如 ZuulFilter 和 GlobaFilter,只针对路由转发进行过滤。

业务逻辑全链路异步非阻塞:
在 Spring cloud Gateway 中使用 WebFilter 和 GlobaFilter 进行过滤,所有业务逻辑和方法调用,都不能是同步阻塞的,一定得保证整个调用链路都是异步非阻塞的,否则执行会报错,因为高版本 WebFlux 中,会检测链路是否为异步非阻塞。

3. 异步非阻塞的中间件

3.1. 服务调用

因为在 Zuul 网关中,微服务的调用一般使用 Spring Cloud Openfeign 完成的,而这个组件底层是使用 HttpClient、OkHttp等 HTTP 组件来完成接口调用,是同步阻塞的;因此,我们需要改造为异步非阻塞,这里我们将使用 Webflux 提供的 WebClient 来完成。将每个微服务的 Openfeign 调用重新封装为对应的 WebClient 客户端,用于支撑异步非阻塞的 HTTP 接口调用。

3.2. 数据库

Zuul 网关,主要使用的数据库中间件有:MySQL、MongoDB 和 Redis。

3.2.1. 异步非阻塞MySQL

MySQL 我们可以使用 Spring Boot 提供的 spring-boot-starter-data-r2dbc

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>

调用 MySQL 使用上述组件提供的ReactiveCrudRepository即可。

3.2.2. 异步非阻塞MongoDB

MondoDB 我们可以使用 Spring Boot 提供的 spring-boot-starter-data-mongodb-reactive

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
</dependency>

调用 MongoDB 使用上述组件提供的ReactiveMongoTemplateMongoClient即可

3.2.3. 异步非阻塞Redis

Redis 我们可以使用 Spring Boot 提供的 spring-boot-starter-data-redis-reactive

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>

调用 Redis 使用上述组件提供的ReactiveRedisTemplate即可。

http://www.yayakq.cn/news/324572/

相关文章:

  • 建设网站企业邮箱网站建设服务页面设计需求
  • 在线解压rar网站智联企业登录入口
  • 建设银行手机登陆网站wordpress网站测速
  • 建设通网站不良信用信息撤销沈阳男科医院排名10强名单公布
  • 网站标题怎么设置外包开发app需要多少钱
  • 网站后台代码如何做您的网站未备案 或者原备案号被取消
  • 网站做好了该怎么做建设银行 企业
  • 电商网站开发用什么语言表达北京网下载
  • 深圳低价网站建设南通专业家纺网站建设
  • phpcms 网站网站建设行业如何
  • 江门网站建设策划天猫商城的商品来源
  • 门户网站建设注意问题简述网站内容如何优化
  • wordpress安装百度站长资源平台wordpress 静态化 插件
  • 丽水市建设局网站电工证浙江省建设厅官网证件查询
  • 网站开发后台数据怎么来注册域名之后怎么做网站
  • 优良的定制网站建设提供商企业网站开发制作合同
  • 广州网站开发培训学校热门国际新闻
  • 使用中文域名的网站广州网站优化费用
  • 网站流量统计主要指标包括青山网站建设
  • 做化学题的网站静态网页模板简约
  • 宜昌百度网站建设大连本站运营公司
  • 瑞安公司做网站wordpress萧涵主题
  • 课题组网站怎么做wordpress 链接 插件
  • 四川专业网站建设公司网站建设收费标准报价
  • 安阳百度优化外包顾问
  • 全球网站流量排名100php网站开发占比
  • 域名网站建设方案如何申请微信公众号平台
  • 可视化前端开发工具成都seo外包
  • 网站开发及app开发都需要多少钱seo具体是什么
  • 建筑网站大全玻璃现在做电商什么最赚钱