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

那几家是做失物招领的网站免费友情链接平台

那几家是做失物招领的网站,免费友情链接平台,营销品牌策划公司,北京的it外包公司微服务架构组件之网关- Spring Cloud Gateway 引言 微服务架构已成为构建现代化应用程序的关键范式之一#xff0c;它将应用程序拆分成多个小型、可独立部署的服务。Spring Cloud Gateway是Spring Cloud生态系统中的一个关键组件#xff0c;用于构建和管理微服务架构中的网…微服务·架构组件之网关- Spring Cloud Gateway 引言 微服务架构已成为构建现代化应用程序的关键范式之一它将应用程序拆分成多个小型、可独立部署的服务。Spring Cloud Gateway是Spring Cloud生态系统中的一个关键组件用于构建和管理微服务架构中的网关。本报告旨在调查和介绍Spring Cloud Gateway的核心概念、架构、功能以及其在微服务架构中的作用。 概述 Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0Spring Boot 2.0 和 Project Reactor 等技术开发的网关旨在为微服务架构提供一种简单而有效的统一的 API 路由管理方式统一访问接口。Spring Cloud Gateway 作为 Spring Cloud 生态系中的网关目标是替代 Netflix ZUUL其不仅提供统一的路由方式并且基于 Filter 链的方式提供了网关基本的功能例如安全监控/埋点和限流等。它是基于Nttey的响应式开发模式。 核心概念 路由Route路由是网关最基础的部分路由信息由一个ID、一个目标的URL、一组断言工程和一组过滤器组成。如果断言为真则说明请求URL和配置的路由匹配。 断言PredicatesJava8中的断言函数Spring Cloud Gateway中的断言函数允许开发者去定义函数匹配来自Http Request中的任何信息比如请求头和参数等。 过滤器Filter一个标准的Spring webFilter 可以分为Gateway Filter和Global Filter。过滤器Filter可以对请求和响应进行处理。 示例 server:port: 8080 spring:application:name: api-gatewaycloud:gateway:routes:- id: product-serviceuri:http://127.0.0.1:9002predicates:- Path/product/**id自定义的路由Id保持唯一。uri目标服务地址predicates路由条件Predicate接受一个输入参数返回一个boolean结果。该接口包含多种默认方法来将Predicate组合成其他复杂的逻辑比如与、或、非filters过滤规则。 工作流程 客户端将请求发送到Spring Cloud Gateway上。Spring Cloud Gateway通过Gateway Handler Mapping找到与请求相匹配的路由并将其发送给Gateway Web Handler。Gateway Web Handler 通过指定的过滤器链Filter Chain将请求转发到实际的服务节点中执行业务逻辑返回响应结果。过滤器可能会在转发请求之前pre或之后post执行业务逻辑。过滤器可以在请求转发到服务端前对请求进行拦截和修改例如参数校验、权限校验、流量监控、日志输出以及协议转换等。过滤器可以在响应返回客户端之前对响应进行拦截和再处理例如修改响应内容或响应头、日志输出、流量监控等。 路由规则 动态路由 动态路由即自动从注册中心获取服务列表并访问。 现在以spring cloud gateway 集成nacos为例 添加依赖在项目的’pom.xml’文件中添加Spring cloud gateway和nacos的相关依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId /dependency dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependency配置文件在’application.properties’或’application.yml’中配置Nacos注册中心的地址以及网关的路由规则 spring:application:name: gateway-servicecloud:nacos:discovery:server-addr: localhost:8848 gateway:discovery:locator:enabled: true # 启用服务发现routes:- id: service-routeuri: lb://service-name # 后端服务名称predicates:- Path/service-path/** # 匹配的请求路径filters:- StripPrefix1 # 去掉前缀启动服务发现在Spring Boot应用程序的主类上使用’EnableDiscoveryClient’注解以启用服务发现功能。 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication EnableDiscoveryClient public class GatewayServiceApplication {public static void main(String[] args) {SpringApplication.run(GatewayServiceApplication.class, args);} }重写转发路径 在Spring Cloud gateway中路由转发是直接将匹配的路由path直接拼接到映射路径URL之后那么在微服务中开发往往没有那么便利这里可以通过RewritePath机制来进行路径重写。 spring:application:name: gateway-servicecloud:nacos:discovery:server-addr: localhost:8848 gateway:discovery:locator:enabled: true # 启用服务发现routes:- id: service-routeuri: lb://service-name # 后端服务名称predicates:- Path/service-path/** # 匹配的请求路径filters:- RewritePath/serive-path/(? segment.*), /$\{segment}过滤器 Spring Cloud Gateway的Filter从作用范围可分为两种GatewayFilter与GlobalFilter GatewayFilter应用到单个路由或者一个分组的路由上。GlobalFilter应用到所有的路由上。 局部过滤器GatewayFilter 局部过滤器是针对单个路由的过滤器可以对访问的URL过滤进行切面处理。常见的局部过滤器 AddRequestHeader为原始请求添加Header。Hystrix为路由引入Hystrix的断路器保护。FallbackHeaders为fallbackUri的请求头中添加具体的异常信息。RequestRateLiiter对于请求限流限流算法为令牌桶算法。 全局过滤器GlobalFilter 全局过滤器作用于所有路由Spring Cloud Gateway定义了GlobalFilter接口用户可以自定义实现自己的Global Filter。通过全局过滤器可以实现对权限的统一检验安全性验证等功能。 高级应用 鉴权 角色 客户端访问微服务资源网关负责转发、认证、鉴权OAuth2.0授权服务负责认证授权颁发令牌微服务集合提供资源 流程 客户端发送请求给网关获取令牌网关收到请求直接转发给授权服务授权服务验证用户名、密码等验证通过颁发令牌给客户端客户端携带令牌请求资源请求直接到网关层网关层对令牌及性能校验、鉴权和访问资源所需的权限进行比较。如果权限有交集则通过校验直接转发给微服务微服务处理逻辑 网关限流 常见的限流算法 计数器法 一般我们会限制一秒钟能够通过的请求数比如限流的qps为100算法的实现思路就从从第一请求进来开始在接下来的1s内每来一个请求就把计数加1如果累加的数字达到100那么或许的请求就会被全部拒绝。等到1s结束后计数器恢复成0重新开始计数。漏斗算法 匀速处理请求。不管调用方多么不稳定通过漏斗算法进行限流每10ms处理一次请求因为处理的速度是固定的请求进来的速度是未知的可能突然进来很多请求没来得及处理请求就先放到桶里。如果桶满了那么新进来的请求就丢弃。令牌桶算法 令牌桶算法是对漏斗算法的一个改进存在一个桶用来存放固定数量的令牌然后以一定的速率往桶中放令牌。每次请求进来的时候需要先获取令牌只有拿到令牌才有机会继续执行否则选择等待可用的令牌或者直接拒绝。Gateway令牌桶 Spring Cloud Gateway 官方提供了RequestRateLimiterGatewayFilterFactory类使用redis和lua脚本实现了令牌桶的方式。 实现步骤 引入依赖 !--基于Redis实现限流-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis-reactive/artifactIdversion2.2.10.RELEASE/version /dependency创建限流标示 限流通常要根据某个参数值作为参考依据来进行线路的例如每个IP只能只能访问2次创建根据IP限流的对象该对象需要实现KeyResolver接口 public class IpKeyResolver implements KeyResolver {/**** 根据IP限流* param exchange* return*/Overridepublic MonoString resolve(ServerWebExchange exchange) {return Mono.just(exchange.getRequest().getRemoteAddress().getAddress().getHostAddress());} }需要将IpKeyResolver的实例交给Spring容器管理。 Configuration public class GatewayRateLimitConfig {Bean(ipKeyResolver) public KeyResolver userIpKeyResolver(){return new IpKeyResolver(); } } 配置限流速率 spring:cloud:gateway:routes:#商品服务- id: goods_routeuri: lb://mall-goodspredicates:- Path/mall/brand/**filters:- StripPrefix1# 指定过滤器- name: RequestRateLimiterargs:# 指定限流标识key-resolver: #{ipKeyResolver}# 速率限流redis-rate-limiter.replenishRate: 1# 能容纳的并发流量总数redis-rate-limiter.burstCapacity: 2监控 监控每个请求的响应参数是否包含手机号码 首先您需要创建一个自定义过滤器类该类将检查响应参数中是否包含手机号码。这可以通过解析响应内容并搜索手机号码的正则表达式来完成。下面是一个示例 import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono;Component Order(1) // 设置过滤器顺序 public class PhoneNumberCheckFilter implements GlobalFilter {Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 检查响应内容是否包含手机号码的逻辑// 解析响应内容并搜索手机号码的正则表达式// 如果包含手机号码则可以进行相关处理例如记录日志或触发警报// 这里仅提供示例框架具体实现需要根据需求编写return chain.filter(exchange);} }然后配置过滤器 spring:cloud:gateway:routes:- id: route-nameuri: http://example.comfilters:- PhoneNumberCheck # 这里填写自定义过滤器的名字
http://www.yutouwan.com/news/148669/

相关文章:

  • 免费行情软件app网站mnu公主岭市住房和城乡建设局网站
  • 廊坊建站模板系统wordpress 归档页面
  • php仿百度网站源码网业截屏怎么截
  • 硬盘做网站空间图书网页设计网站
  • 阿里云网站域名查询青海省建设局网站首页
  • 棋牌网站建设专业做网站平台
  • 天津网站建设开发维护计算机做网站难吗
  • 网站做内嵌深圳网站
  • 做网站更赚钱吗做网站被抓
  • 做婚恋交友类网站59一起做网站
  • 台州快速建站公司国内有多少家做网站的企业
  • 什么网站做招聘收录好网站后台管理系统模板下载
  • 网站数据库是什么意思网站粘性
  • 环保网站设计规划书宜春建设网站
  • 巢湖城市建设投资有限公司网站泗洪有做网站
  • xampp wordpress 建站教程最新联播新闻
  • 捷克注册公司网站网站建设图片教程
  • 佛山优化网站关键词建筑兼职网站
  • 石家庄市园林局招标济南做网站优化哪家好
  • 制作网站需要的服务器竞价外包运营
  • 手机可做兼职的网站霸州做网站
  • 深圳建设交易信息网站wordpress文档插件
  • 成都哪里可以做网站成都建设诚信网站
  • 响应式网站价格怎么做五合一网站
  • vps做网站如何在工商局网站上做网登
  • 淄博网站制作公司服务中国有几大电商平台
  • 石家庄做网站wsjz摄影网站开发的背景
  • 咸宁住房和城乡规划建设局网站交互式网站设计怎么做
  • 网站运行费用隆回网站建设制作
  • 沈阳工务轨道建设网站建网页还是网站好