Java应用开发(中、高级)课件 任务4.5 构建Gateway网关路由服务_第1页
Java应用开发(中、高级)课件 任务4.5 构建Gateway网关路由服务_第2页
Java应用开发(中、高级)课件 任务4.5 构建Gateway网关路由服务_第3页
Java应用开发(中、高级)课件 任务4.5 构建Gateway网关路由服务_第4页
Java应用开发(中、高级)课件 任务4.5 构建Gateway网关路由服务_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务5.构建Gateway网关路由服务任务描述本任务就是使用SpringCloudGateway框架构建网关服务,接收并转发所有的客户端调用。知识准备1)网关服务通常在项目中为了简化前端的调用逻辑,同时也简化内部服务之间互相调用的复杂度,具体作用就是转发服务,接收并转发所有内外部的客户端调用,网关其他常见的功能还有权限认证,限流控制,日志输出等等。2)SpringCloudGateway是SpringCloud的一个全新项目,该项目是基于Spring5.0,SpringBoot2.0和ProjectReactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。SpringCloudGateway不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。3)SpringCloudGateway的核心概念路由(Route):路由是网关最基础的部分,路由信息由ID、目标URI、一组断言和一组过滤器组成。如果断言路由为真,则说明请求的URI和配置匹配。断言(Predicate):Java8中的断言函数。SpringCloudGateway中的断言函数输入类型是Spring5.0框架中的ServerWebExchange。SpringCloudGateway中的断言函数允许开发者去定义匹配来自于HttpRequest中的任何信息,比如请求头和参数等。过滤器(Filter):一个标准的SpringWebFilter。SpringCloudGateway中的Filter分为两种类型,分别是GatewayFilter和GlobalFilter。过滤器将会对请求和响应进行处理。任务实施步骤1:创建网关服务1)参考任务2创建项目“ordersys_gateway”,选择该项目的依赖“SpringCloudDiscovery->EurekaDiscoveryClient”和“SpringCloudRouting->Gateway”,创建项目,如图5-13所示:图5-13创建网关服务2)在启动类上添加@EnableEurekaClient,使该项目作为服务提供者。@EnableEurekaClient@SpringBootApplicationpublicclassOrdersysGatewayApplication{ publicstaticvoidmain(String[]args){ SpringApplication.run(OrdersysGatewayApplication.class,args); }}3)修改并配置“application.yml”文件,设置服务端口8762以及向注册中心注册。server:port:8762#指向注册中心地址eureka:client:serviceUrl:defaultZone:http://localhost:8761/eureka/#服务名称,建议驼峰命名spring:application:name:gateway步骤2:自定义配置路由规则1)修改“application.yml”文件,增加“cloud:gateway:routes”配置,字段配置作用如下:id:设置自定义的路由ID,保持唯一,名字为“dishservice-route”;uri:设置跳转到目标服务地址,此处设置为“lb://dishservice”,对应格式为“lb://服务注册名字”,意为使用的协议为“lb”,服务注册名字为“dishservice”,Gateway将使用LoadBalancerClient通过eureka解析为实际的主机和端口,并进行负载均衡访问。predicates:设置路由跳转条件,Predicate接受一个输入参数,返回一个布尔值结果,设置“Path=/api/dishservice/**”,意为当访问路径包含“/api/dishservice/”时,跳转到uri配置的“dishservice”服务。filters:设置过滤器规则,StripPrefix参数表示在将请求发送到下游服务之前从请求中剥离的路径个数,设置StripPrefix=2,意为当通过Gateway网关向“/api/dishservice/admin/dishes/toprecommend”发出请求时,转发到服务的实际请求为“/admin/dishes/toprecommend”。详细代码如下:#服务名称,建议驼峰命名spring:application:name:gatewaycloud:gateway:routes:-id:dishservice-routeuri:lb://dishservicepredicates:-Path=/api/dishservice/**filters:-StripPrefix=22)按顺序分别运行注册中心、菜品服务、订单服务和网关服务,打开Postman,在地址栏中输入“http://localhost:8762/api/dishservice/admin/dishes/toprecommend”,可以看到访问网关服务后跳转到菜品服务,结果如图5-14所示:图5-14验证网关路由功能步骤3:自动配置路由规则步骤2中实现了手动配置路由转发规则,实现转发到菜品服务的功能,微服务架构中服务较多,可以使用自动配置的方式代替手动配置的方式实现全部服务的转发功能。1)修改“application.yml”文件,增加“cloud:gateway:routes:discovery:locator”配置,字段配置作用如下:enabled:设置为true,表明gateway开启服务注册和发现的功能,并且springcloudgateway自动根据服务发现为每一个服务创建了一个路由router,这个router将以服务名开头的请求路径转发到对应的服务。lowerCaseServiceId:设置为true,表明将请求路径上的服务名配置为小写,注册中心注册时将服务名默认是大写。详细代码如下:#服务名称,建议驼峰命名spring:application:name:gatewaycloud:gateway:discovery:locator:enabled:truelowerCaseServiceId:true2)按顺序分别运行注册中心、菜品服务、订单服务和网关服务,打开Postman,在地址栏中输入“http://localhost:8762/dishservice/admin/dishes/toprecommend”,可以看到访问网关服务后根据服务名跳转到菜品服务,结果如图5-15所示:图5-15验证网关路由功能知识小结【对应证书技能】使用SpringCloudGateway构建网关服务,提供核心的路由功能,为微服务架构提供统一的API路由管理方式,通过配置路由信息ID、目标URI、断言Predicate和过滤器Filter实现路由根据匹配规则转发请求。本任务知识技能点与等级证书技能的对应关系见表5-8。任务2知识技能点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论