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

从零开始学建设网站济南网站建设模板

从零开始学建设网站,济南网站建设模板,泉州工作室网站建设,中企动力建设网站怎么样一、先搭建好springcloudnacos项目地址:https://javazhong.blog.csdn.net/article/details/128899999二、spring cloud gateway简述Spring Cloud Gateway 是Spring Cloud家族中的一款API网关。Gateway 建立在 Spring Webflux上#xff0c;目标是提供一个简洁、高效的API网关nacos项目地址:https://javazhong.blog.csdn.net/article/details/128899999二、spring cloud gateway简述Spring Cloud Gateway 是Spring Cloud家族中的一款API网关。Gateway 建立在 Spring Webflux上目标是提供一个简洁、高效的API网关同时也可以快速的拼装上Spring Cloud全家桶的API网关。Spring Cloud Gateway的通信框架使用的是Netty。2.1 spring cloud gateway特征基于Spring Framework 5, Project Reactor, Spring Boot 2.0构建能够自由设置任何请求属性的路由路由可以自由设置断言Predicates和过滤器Filter可集成熔断器流量限速路径重写rewrite三、spring cloud gateway网关作用3.1 访问示意图3.2 解释增加了API网关以后(gateway)在API网关层可以把后端的多个服务进行整合然后提供一个唯一的业务接口客户端只需要调用这个接口就可以完成数据的获取和展示。而且官网不只是做请求转发和服务整合。有了统一的网关入口以后它还可以提供统一鉴权、限流、日志、熔断以及统一错误码处理针对后端多种不同协议还可以进行协议转化。四、spring cloud流程介绍4.1 spring cloud流程图4.2 流程介绍客户端发送请求给gateway请求首先被HttpWebHandlerAdapter进行提取组装成网关上下文然后网关的上下文会传递到DispatcherHandler进行请求处理(DispatcherHandler是所有请求的处理分发器)DispatcherHandler负责将所有的请求分发给对应的处理器比如分发给RoutePredicateHandlerMapping(路由断言处理映射器)路由断言映射器主要作用是进行路由查找以及找到路由以后返回给对应的FilterWebHandlerFilterWebHandler主要负责组装Filter链并调用Filter执行一系列的Filter操作然后再把请求转到后端对应的代理服务处理处理完毕之后将Response返回到Gateway客户端4.3 核心介绍4.3.1 Filter过滤器使用过滤器可以在请求被路由之前或者之后对请求进行修改过滤器按照请求和响应可以分为两种Pre类型和Post类型Pre类型:在请求转发到微服务之前对请求进行拦截和修改例如参数校验、权限校验、流量监控、日志输出、协议转换等操作Post类型:微服务处理完请求后返回响应给网关网关可以再次进行处理例如可以修改响应内容、响应头、日志输出、流量监控等按照过滤器Filter作用范围划分GlobaFilter:全局过滤器应用在所有路由上的过滤器GatewayFilter:局部过滤器应用在单个路由或一组路由上的过滤器4.3.2 Route(路由)构建网关的基础模块由ID目标URL过滤器等组成4.3.3 Predicate(断言)开发人员可以匹配HTTP请求中的内容(请求头和请求参数)如果请求断言则进行路由4.4 核心思想路由转发执行过滤器链当用户发送请求达到Gateway之后会通过一些匹配条件定位到真正的服务节点并且在这个过程的转发前后进行一些细粒度控制其中Predicate(断言)是我们的匹配条件Filter是一个拦截器有了这两点再加上URL就可以实现一个具体的路由。五、源码实现按照上一篇springcloudnacos项目创建一个gateway模块https://javazhong.blog.csdn.net/article/details/1288999995.1 pom代码?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentartifactIdobwt-cloud/artifactIdgroupIdcom.obwt/groupIdversion0.0.1-SNAPSHOT/version/parentgroupIdcom.gateway/groupIdartifactIdgateway-cloud/artifactIdversion0.0.1-SNAPSHOT/versionnamegateway-cloud/namedescriptiongateway-cloud/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactId/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactId/dependency!--mysql-connector-java--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency!--jdbc--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!--nacos--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency!--bootstrap 启动器--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependency!-- mybatis-plus --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactId/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-core/artifactId/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-extension/artifactId/dependencydependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactId/dependency!--openfeign--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency!-- SpringCloud Loadbalancer --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependency!--gateway--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependency!-- SpringCloud Alibaba Sentinel Gateway -- !-- dependency-- !-- groupIdcom.alibaba.cloud/groupId-- !-- artifactIdspring-cloud-alibaba-sentinel-gateway/artifactId-- !-- /dependency--/dependenciesbuild/build/project 5.2 bootstrap代码server:port: 8005 spring:main:web-application-type: reactive #用于显示请求特定类型的Web应用程序标志如果未设置就会根据路径自行检测application:name: gateway-cloud-serviceprofiles:active: devcloud:nacos:discovery:server-addr: 192.168.139.128:8848group: LOCAL_GROUPservice: ${spring.application.name}config:file-extension: yamlgroup: LOCAL_GROUPserver-addr: 192.168.139.128:8848#网关配置gateway:routes:- id: baiduuri: http://www.baidu.compredicates: #当请求的路径包含urlbaidu的时候指向http://www.baidu.com- Queryurl,baidu - id: userInfo #这个id只要保证唯一就好uri: lb://bms-cloud-service #负载均衡 lb 是负载均衡的缩写在注册中心找叫做bms-cloud-service服务predicates: #设置路由断言- Path/user/** #设置路由断言当请求包含了/user开头的接口时进行转发,比如/user/Info的时候这条路由会生效会去找bms-cloud-service服务上的/user/info接口- id: copeInfo #这个id只要保证唯一就好uri: http://localhost:8001 #这种方式是直接定死的静态路由当请求localhost:8005/test的时候会转发给localhost:8001/testpredicates:- Path/test- id: testBms #这个id只要保证唯一就好uri: lb://bms-cloud-servicepredicates:- Path/api/test/**filters:#将跳转路径中包含的api替换成空,在请求的时候必须带上api但是在对应的服务(bms-cloud-service)转接口的时候不需要有api- RewritePath/api/(?segment.*),/$\{segment}- id: bms #这个id只要保证唯一就好uri: lb://bms-cloud-servicepredicates:- Path/bms/**5.3 controller测试代码bms-cloud-service服务上对应的controller层测试代码测试的时候要启动gateway-cloud-service模块和bms-cloud-service模块但是入口就是gateway模块RestController public class TestController {GetMapping(/api/test)public String test() {return bms的api的test;}GetMapping(/api/test/22)public String test22() {return bms的api的test22;}GetMapping(/test)public String test1() {return bms的test1;}GetMapping(/test/test2)public String testTest() {return bms的test2;}GetMapping(/userInfo)public String userInfo() {return bms的userInfo;}GetMapping(/userInfo/user)public String userInfoUser() {return bms的userInfo2;}GetMapping(/user/userInfo)public String user() {return bms的userInfo3;}GetMapping(/user/userInfo2)public String user2() {return bms的userInfo4;} }六、配置拓展 - id: bms #这个id只要保证唯一就好uri: lb://bms-cloud-service断言实例说明Path- Path/api/bms/**请求路径于/api/bms/**匹配时该请求才能转发到bms-cloud-service服务上比如localhost:8005/api/bms/user,那么会自动去寻找bms-cloud-service服务上的/api/bms/user接口Before- Before2023-01-01T08:29:59.10008:00[Asia/Shanghai]在2023年01月01日08是29分59.100秒之前请求才会转发到bms-cloud-service服务上After- After2023-01-01T08:29:59.10008:00[Asia/Shanghai]在2023年01月01日08是29分59.100秒之后请求才会转发到bms-cloud-service服务上Between- Between2023-01-01T08:29:59.10008:00[Asia/Shanghai],2023-02-01T08:29:59.10008:00[Asia/Shanghai]在2023年01月01日08是29分59.100秒至在2023年02月01日08是29分59.100秒之间请求才会转发到bms-cloud-service服务上Cookie- Cookiename,bmsservice.cc携带Cookie且Cookie内容为namebmsservice.cc的请求才会转发到bms-cloud-service服务上Header- HeaderX-Request-ld,\d请求头上携带属性X-request-ld,且属性值为整数的请求才会转发到bms-cloud-service服务上Method- MethodGET只有GET请求才会被转发到bms-cloud-service服务上
http://www.w-s-a.com/news/725727/

相关文章:

  • 如何创建一个网站卖东西郑州 网站建设公司
  • 石景山郑州阳网站建设南京网站搜索引擎优化
  • 一个网站需要哪些备案书店网站建设策划书总结
  • 网站建设的重点是什么注册网站空间
  • 网站公司企业宗旨我的网站 dedecms
  • 沧州网站优化做详情图的网站
  • 中国建设银行公积金网站wordpress表单 post
  • 找权重高的网站方法wordpress视频网站上传视频
  • 营销型网站架构师迁移wordpress500错误
  • 做网站还是博客由()承担
  • wordpress 导购站模板中国最新军事新闻直播83军
  • 公众号h5网站开发wordpress文章主图
  • ps怎么艺术字字体设计网站我想自己做网站
  • 北京做机柜空调的网站模板网站和插件
  • 手机购物网站模板wordpress添加分类文档
  • 网站开发知识网上怎么申请个人营业执照
  • 音乐网站建设费用营销策略都有哪些4p
  • 深圳制作网站怎么样wordpress 学习视频
  • 新公司注册网站传奇手游大型网站
  • 无极网站网站涉案多少人被抓网站的按钮怎么做
  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本
  • 哪些网站的简历做的比较好政务服务 网站 建设方案
  • 如何建设个人网站凡科怎么样vps安装wordpress后怎样登录