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

精品建站公司网络网站制作技巧

精品建站公司,网络网站制作技巧,服务器安全模式怎么进,wordpress播放swf插件文章目录 1.基本介绍官方文档#xff1a;https://springdoc.cn/spring-cloud-gateway/#gateway-starter1.引出网关2.使用网关服务架构图3.Gateway网络拓扑图#xff08;背下来#xff09;4.Gateway特性5.Gateway核心组件1.基本介绍2.断言3.过滤 6.Gateway工作机制 2.搭建Gat… 文章目录 1.基本介绍官方文档https://springdoc.cn/spring-cloud-gateway/#gateway-starter1.引出网关2.使用网关服务架构图3.Gateway网络拓扑图背下来4.Gateway特性5.Gateway核心组件1.基本介绍2.断言3.过滤 6.Gateway工作机制 2.搭建Gateway微服务1.引入Gateway架构2.环境搭建1.参考member-service-consumer-81 创建 e-commerce-gateway-20000 子模块2.检查父子的pom.xml1.父pom.xml2.子pom.xml 3.pom.xml引入依赖4.application.yml 配置gateway这里的eureka还没有用到只是先配置一下5.编写启动类6.依次启动90012000010001模块进行测试1.9001报错连接不上90022.20000Gateway正常启动3.10001报错连接9002被拒绝4.输入http://eureka9001.com:9001/查看注册中心状态成功注册20000, 100015.postman测试 7.修改application.yml增加Gateway路由访问到/member/save8.postman测试 3.配置类注入Gateway了解1.com/sun/springcloud/config/GatewayRoutesConfig.java2.postman测试 4.动态路由1.需求分析2.动态路由配置3.启动服务4.postman测试1.第一次2.第二次可以看出负载均衡算法默认是轮询 5.配置负载均衡算法1.com/sun/springcloud/config/RibbonRule.java 配置类直接注入负载均衡算法的对象即可2.重启服务进行测试1.查看注册中心2.postman向gateway发送几次请求1.第一次2.第二次可以发现两次一样不再是轮询算法3.恢复轮询算法注销掉刚才的配置类 6.Gateway 细节说明1.关于predicates: - Path/member/save中的/2.关于uri: lb://member-service-provider服务发现的内容3.Gateway执行流程1.断言2.服务发现3.路径拼接4.远程调用 6.Predicate断言1.基本介绍2.After Route Predicate 某个时间之后发送请求1.需求分析2.代码获取Gateway格式的时间3.Gateway格式的时间4.或者直接从官网获取这个Gateway格式的时间5.应用实例6.启动服务发送请求 3.Before Route Predicate 某个时间之前发送请求1.需求分析2.应用实例3.postman发送请求 4.Between Route Predicate 两个时间之间发送请求1.需求分析2.应用实例3.postman发送请求 5.Cookie Route Predicate 携带某个Cookie的请求1.需求分析2.应用实例3.postman发送请求并设置cookie1.携带cookie2.不携带cookie 6.Header Route Predicate 携带某个Header属性的请求1.需求分析2.应用实例3.postman请求Header携带参数 7.Host Route Predicate 指定主机发送的请求1.需求分析2.应用实例3.postman请求修改host 8.Method Route Predicate 指定请求方式的请求1.应用实例2.postman测试 9.Path Route Predicate 指定路径的请求应用实例 10.Query Route Predicate 参数满足指定条件的请求1.需求分析2.应用实例3.postman测试 11.RemoteAddr Route Predicate 指定范围的ip客户端发送的请求1.需求分析2.应用实例3.postman测试 12.weight Route Predicate 根据权重进行断言 7.过滤器1.基本介绍1.功能2.工作流程 2.自定义过滤器1.需求分析2.代码实现 com/sun/springcloud/filter/CustomerGateWayFilter.java3.postman测试 1.基本介绍 官方文档https://springdoc.cn/spring-cloud-gateway/#gateway-starter 1.引出网关 2.使用网关服务架构图 3.Gateway网络拓扑图背下来 4.Gateway特性 5.Gateway核心组件 1.基本介绍 2.断言 3.过滤 6.Gateway工作机制 2.搭建Gateway微服务 1.引入Gateway架构 2.环境搭建 1.参考member-service-consumer-81 创建 e-commerce-gateway-20000 子模块 2.检查父子的pom.xml 1.父pom.xml 2.子pom.xml 3.pom.xml引入依赖 dependencies!--gateway不需要web-starter--!--lt;!ndash; springboot web starter 用来监听端口ndash;gt;--!--dependency--!-- groupIdorg.springframework.boot/groupId--!-- artifactIdspring-boot-starter-web/artifactId--!-- lt;!ndash; 如果在子工程/模块指定了 version则以指定为准 ndash;gt;--!--/dependency--!--dependency--!-- groupIdorg.springframework.boot/groupId--!-- artifactIdspring-boot-starter-actuator/artifactId--!--/dependency--!-- 引入 cloud gateway --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependency!-- 引入eureka的客户端场景启动器 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId!-- 使用版本仲裁 --/dependency!-- lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- test --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- 公共模块的jar包 --dependencygroupIdorg.example/groupIdartifactIde_commerce_center-common-api/artifactIdversion1.0-SNAPSHOT/version/dependency/dependencies4.application.yml 配置gateway这里的eureka还没有用到只是先配置一下 server:port: 20000 spring:application:name: e-commerce-gatewaycloud:gateway:routes: # 配置路由 ListRouteDefinition routes是集合类型- id: member_route01 # 路由id唯一即可uri: http://localhost:10001 # 断言匹配成功后将这个与/member/get/**拼接predicates:- Path/member/get/** # 断言匹配成功后的完整路径是http://localhost:10001/member/get/** # 配置eureka作为客户端有服务注册和服务发现功能 eureka:instance:hostname: e-commerce-serviceclient:register-with-eureka: true # 将自己注册到eureka服务fetch-registry: true # 发现服务功能如果是集群必须要能发现服务才能配合ribben进行负载均衡service-url:defaultZone: http://eureka9001.com:9001/eureka/ 5.编写启动类 package com.sun.springcloud;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient;/*** author 孙显圣* version 1.0*/ SpringBootApplication EnableEurekaClient public class GateWayApplication20000 {public static void main(String[] args) {SpringApplication.run(GateWayApplication20000.class, args);} } 6.依次启动90012000010001模块进行测试 1.9001报错连接不上9002 9002是eureka的一个server与这个9001互相注册而9002并没有开启所以连接不上是正常的 2.20000Gateway正常启动 3.10001报错连接9002被拒绝 10001是微服务集群中的一个服务它注册到了9001和9002的server9002没开所以连接被拒绝没问题 4.输入http://eureka9001.com:9001/查看注册中心状态成功注册20000, 10001 5.postman测试 路径匹配的情况 路径不匹配的情况Gateway直接返回404 7.修改application.yml增加Gateway路由访问到/member/save server:port: 20000 spring:application:name: e-commerce-gatewaycloud:gateway:routes: # 配置路由 ListRouteDefinition routes是集合类型- id: member_route01 # 路由id唯一即可uri: http://localhost:10001 # 断言匹配成功后将这个与/member/get/**拼接predicates:- Path/member/get/** # 断言匹配成功后的完整路径是http://localhost:10001/member/get/**- id: member_route02 # 路由id唯一即可uri: http://localhost:10001 # 断言匹配成功后将这个与/member/save拼接predicates:- Path/member/save # 断言匹配成功后的完整路径是http://localhost:10001//member/save# 配置eureka作为客户端有服务注册和服务发现功能 eureka:instance:hostname: e-commerce-serviceclient:register-with-eureka: true # 将自己注册到eureka服务fetch-registry: true # 发现服务功能如果是集群必须要能发现服务才能配合ribben进行负载均衡service-url:defaultZone: http://eureka9001.com:9001/eureka/ 8.postman测试 3.配置类注入Gateway了解 1.com/sun/springcloud/config/GatewayRoutesConfig.java package com.sun.springcloud.config;import org.springframework.cloud.gateway.route.RouteLocator; import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** Description:** Author sun* Create 2024/3/26 11:36* Version 1.0*/ Configuration public class GatewayRoutesConfig {Beanpublic RouteLocator routeLocator(RouteLocatorBuilder routeLocatorBuilder) {RouteLocatorBuilder.Builder routes routeLocatorBuilder.routes();// 这里使用了Lambda表达式理解为规定写法即可return routes.route(member_route04,r - r.path(/member/get/**).uri(http://localhost:10001)).build();} } 2.postman测试 4.动态路由 1.需求分析 2.动态路由配置 server:port: 20000 spring:application:name: e-commerce-gatewaycloud:gateway:routes: # 配置路由 ListRouteDefinition routes是集合类型- id: member_route01 # 路由id唯一即可uri: lb://member-service-provider # 断言匹配成功后将这个与/member/get/**拼接这里的lb是负载均衡的协议服务名需要小写predicates:- Path/member/get/** # 断言匹配成功后的完整路径是http://localhost:10001/member/get/**- id: member_route02 # 路由id唯一即可uri: lb://member-service-provider # 断言匹配成功后将这个与/member/save拼接这里的lb是负载均衡的协议服务名需要小写predicates:- Path/member/save # 断言匹配成功后的完整路径是http://localhost:10001//member/savediscovery:locator:enabled: true # 启用服务发现不配置可能也不影响# 配置eureka作为客户端有服务注册和服务发现功能 eureka: # instance: # hostname: e-commerce-serviceclient:register-with-eureka: true # 将自己注册到eureka服务fetch-registry: true # 发现服务功能如果是集群必须要能发现服务才能配合ribben进行负载均衡service-url:defaultZone: http://eureka9001.com:9001/eureka/ 3.启动服务 4.postman测试 1.第一次 2.第二次可以看出负载均衡算法默认是轮询 5.配置负载均衡算法 1.com/sun/springcloud/config/RibbonRule.java 配置类直接注入负载均衡算法的对象即可 package com.sun.springcloud.config;import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.RandomRule; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** Description: 配置自己的负载均衡算法这里使用的随机算法** Author sun* Create 2024/3/26 14:31* Version 1.0*/ Configuration public class RibbonRule {Beanpublic IRule myRibbonRule() {return new RandomRule();} } 2.重启服务进行测试 1.查看注册中心 2.postman向gateway发送几次请求 1.第一次 2.第二次可以发现两次一样不再是轮询算法 3.恢复轮询算法注销掉刚才的配置类 6.Gateway 细节说明 1.关于predicates: - Path/member/save中的/ 这里的/指的是http://ip 端口/上下文路径/ 2.关于uri: lb://member-service-provider服务发现的内容 这里通过注册中心发现的是微服务集群中对应服务的http://ip端口/上下文路径如果配置了的话 3.Gateway执行流程 1.断言 对请求url进行断言 2.服务发现 如果通过断言则从注册中心进行服务发现并通过负载均衡算法得到指定服务的http://ip端口/上下文路径如果配置了的话 3.路径拼接 将得到的http://ip端口/上下文路径如果配置了的话与进行断言的路径拼接 4.远程调用 通过拼接后的路径完成远程调用 6.Predicate断言 1.基本介绍 2.After Route Predicate 某个时间之后发送请求 1.需求分析 2.代码获取Gateway格式的时间 package com.sun.springcloud; import java.time.ZonedDateTime;/*** Description:** Author sun* Create 2024/3/26 15:10* Version 1.0*/ public class T2 {public static void main(String[] args) {ZonedDateTime now ZonedDateTime.now();System.out.println(now);} } 3.Gateway格式的时间 2024-03-26T15:12:23.37108:00[Asia/Shanghai]4.或者直接从官网获取这个Gateway格式的时间 5.应用实例 predicates:- Path/member/get/**- After2025-01-20T17:42:47.78908:00[Asia/Shanghai] # 断言条件在2025年1月20日下午5点42之后发送的请求6.启动服务发送请求 3.Before Route Predicate 某个时间之前发送请求 1.需求分析 2.应用实例 predicates:- Path/member/get/** - Before2025-01-20T17:42:47.789-07:00[America/Denver] # 断言条件2025年1月20日之前这里是美国时间3.postman发送请求 4.Between Route Predicate 两个时间之间发送请求 1.需求分析 2.应用实例 predicates:- Path/member/get/**- Between2017-01-20T17:42:47.789-07:00[America/Denver], 2025-01-21T17:42:47.789-07:00[America/Denver] # 断言条件在2017年1月20日到2025年1月21日之间3.postman发送请求 5.Cookie Route Predicate 携带某个Cookie的请求 1.需求分析 2.应用实例 predicates:- Path/member/get/** - Cookieuser, sun # 断言条件有cookie名为user值为sun3.postman发送请求并设置cookie 1.携带cookie 2.不携带cookie 6.Header Route Predicate 携带某个Header属性的请求 1.需求分析 2.应用实例 predicates:- Path/member/get/**- HeaderX-Request-Id, hello # 断言条件Header中有X-Request-Id属性值为hello3.postman请求Header携带参数 7.Host Route Predicate 指定主机发送的请求 1.需求分析 2.应用实例 predicates:- Path/member/get/**- Host**.sunxiansheng.com,**.anotherhost.org # 断言条件任意前缀的sunxiansheng.com和anotherhost.org的host3.postman请求修改host 8.Method Route Predicate 指定请求方式的请求 1.应用实例 predicates:- Path/member/get/**- MethodGET,POST # 断言条件请求方式为GET和POST2.postman测试 9.Path Route Predicate 指定路径的请求 应用实例 predicates:- Path/member/get/**, /member/get/save # 断言条件路径为/member/get/**或者/member/get/save其中的/是本服务的http://ip端口/上下文路径/10.Query Route Predicate 参数满足指定条件的请求 1.需求分析 2.应用实例 predicates:- Path/member/get/**- Queryemail, [\w-]([a-zA-Z]\.)[a-zA-Z] # 断言条件请求携带参数为email值要满足邮箱的格式3.postman测试 11.RemoteAddr Route Predicate 指定范围的ip客户端发送的请求 1.需求分析 2.应用实例 predicates:- Path/member/get/**- RemoteAddr127.0.0.1 # 断言条件客户端的ip只能是本机3.postman测试 12.weight Route Predicate 根据权重进行断言 7.过滤器 1.基本介绍 1.功能 2.工作流程 简单来说就是在远程调用之前和远程调用之后可以进行过滤过滤器链跟javaweb的过滤器一样原生的过滤器使用的并不多更多的是使用自定义的过滤器 2.自定义过滤器 1.需求分析 2.代码实现 com/sun/springcloud/filter/CustomerGateWayFilter.java package com.sun.springcloud.filter;import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono;/*** Description: 编写全局过滤器** Author sun* Create 2024/3/26 18:50* Version 1.0*/ Component public class CustomerGateWayFilter implements GlobalFilter, Ordered {/*** 在远程调用之前判断请求的参数user是否等于sunpwd是否等于666** param exchange the current server exchange* param chain provides a way to delegate to the next filter* return*/Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {System.out.println(CustomerGateWayFilter被执行);// 获取请求的参数由于使用get方法返回的是一个list所以需要get0String user exchange.getRequest().getQueryParams().get(user).get(0);// 使用getFirst相当于获取了请求参数名为pwd的第一个元素String pwd exchange.getRequest().getQueryParams().getFirst(pwd);// 不满足要求就设置状态码之后直接返回if (!(sun.equals(user) 666.equals(pwd))) {System.out.println(非法用户);// 设置响应的状态码exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE);// 返回return exchange.getResponse().setComplete();}System.out.println(放行);// 满足要求就放行return chain.filter(exchange);}/*** 根据返回的值来决定过滤器调用的顺序数字越小则优先级越高** return*/Overridepublic int getOrder() {return 0;} } 3.postman测试 2
http://www.w-s-a.com/news/760155/

相关文章:

  • 游戏网站后台建设郑州定制网站
  • 商务公司网站建设网站建设如何自学
  • 现在建网站可以拖拉式的吗中国国内最新新闻
  • phpstorm网站开发产品logo设计
  • 电子商务网站建设与运营什么是单页面网站
  • 西安优化网站公司南阳微信网站
  • 购物网站线下推广方案佛山快速建站哪家服务专业
  • 临沂网站排名外贸网站推广方法之一
  • 手机网站百度关键词排名查询吕梁网站制作吕梁安全
  • 做网站媒体wordpress管理员账号数据库添加
  • php如何自己做网站wordpress怎么修改编辑代码
  • 网站建网站建设公司WordPress互联
  • 泊头市网站建设价格wordpress导航菜单位置
  • 怎么设立网站赚广告费网页制作素材模板图片
  • 做班级网站的目的网站设计制作公司需要什么资质
  • 济南做网站哪家好财政网站平台建设不足
  • php网站建设招聘网站开发与设计论文
  • 上海 网站建设平台 补贴网站开发招标文件范本
  • 延安网站建设公司电话手机上那个网站做农产品推广比较好
  • 增城哪家网站建设好如何做网站实名认证
  • 常州地区做网站个人购物网站需要备案吗
  • 网站建设公司 跨界鱼科技专业做服务器的网站都有哪些
  • 欧洲网站服务器网站建设费用计入什么科目
  • 网站的色调苏州策划网站模板建站公司
  • 怎么看网站用的什么后台公路建设项目可行性研究报告编制办法哪个网站查最新版
  • 可以看的网站的浏览器有哪些专业APP客户端做网站
  • 如何做网站推广自己的产品推荐个网站好吗
  • 网站经营范围wordpress注入点
  • 学校网站开发协议夫妻网络网站建设
  • 福州网站seo推广优化微信商家小程序怎么弄