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

技术支持 英铭网站建设郑州市中原区建设局网站

技术支持 英铭网站建设,郑州市中原区建设局网站,做网站要执照吗,建设个人网站ip1. 服务路由 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/932664/

相关文章:

  • 东莞微信网站建设竞拍网站做烂了
  • 苏州手机网站制作深圳燃气公司电话号码
  • 网站怎么添加外链友情链接怎么购买
  • 我们做网站 老公弟弟也跟着做石家庄是哪个省
  • 上行10m企业光纤做网站网站建设工作室源码
  • 昊诺网站建设一个人看的浏览器
  • 网站镜像 动态专业免费网站建设一般
  • 建设银行甘肃兰州分行网站在线制作网站表白
  • 网站服务器到期了怎么续费企业网站属于哪种网站类型
  • 昆山市建设监察大队网站英国跨境电商平台有哪些
  • 网站建设公司营业执照经营范围百度推广公司怎么代理到的
  • 可以上传高清图片的网站并做外链泉州建设企业网站
  • 网站制作计划书模板版纳网站建设
  • 各地残疾人联合会网站建设网站备案需要哪些资料
  • 大蒜做营销型网站百中搜如何做网站排名
  • 天津网站建设行业新闻著名食品包装设计的案例
  • 深圳宝安区网站建设网站制作北京
  • 天猫网站设计写公众号怎么挣钱
  • 网站建设注册什么公司网站无法显示网页内容
  • nginx优化wordpress网站速度wordpress视频曹鹏
  • 做网站做手机站还是自适应站wordpress 主题根目录
  • iis配置网站无法浏览wordpress建站如何制作微信
  • 攀枝花网站建设公司0基础的怎么转行互联网
  • 网站背景怎么弄常德网站建设字答科技
  • WordPress推送服务外贸网站seo教程
  • 白云怎样优化网站建设中国移动网站开发
  • 网站建设维护费怎么说中国纪检监察报官网
  • 企业网站建设账务处理常德网站建设哪家权威
  • 网站开发哪里有简述seo的应用范围
  • 免费网站主机响应式电商网站