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

昆明做网站的公司哪家好wordpress添加开场

昆明做网站的公司哪家好,wordpress添加开场,wordpress关闭会员,上海门户网站制文章目录 什么是gateway如何导入gateway依赖路由配置gateway配置断路器导包配置 什么是gateway 在微服务架构中,gateway网关是一个服务,它作为系统的唯一入口点,处理所有的客户端请求,然后将这些请求路由到适当的服务。提供了几个…

文章目录

  • 什么是gateway
  • 如何导入gateway依赖
  • 路由配置
  • gateway配置断路器
    • 导包
    • 配置

什么是gateway

在微服务架构中,gateway网关是一个服务,它作为系统的唯一入口点,处理所有的客户端请求,然后将这些请求路由到适当的服务。提供了几个关键功能:
1.请求路由:根据请求的URL路径和其他参数,将请求路由到正确的后端服务。
2.负载均衡:在多个服务实例之间分配流量,以提高可用性和可扩展性。
3.认证和授权:检查用户是否有权访问特定的服务。
4.限流:控制访问后端服务的请求速率,以防止过载。
5.监控:收集关于API使用情况的统计数据,用于分析和计费。
6.日志记录:记录所有通过网关的请求和响应,以便进行问题排查和性能监控。
7.缓存:提高响应速度和减少后端负载,通过缓存常见的响应。
8.过滤:检验当前的请求是否符合请求的规则。

在这里插入图片描述
客户端向 Spring Cloud Gateway 发出请求。如果 Gateway Handler Mapping 确定请求与路由匹配,则将其发送到 Gateway Web Handler。此处理程序通过特定于该请求的过滤器链运行该请求。过滤器被虚线分开的原因是过滤器可以在发送代理请求之前和之后运行逻辑。所有“前”过滤器逻辑都​​会执行。然后发出代理请求。发出代理请求后,运行“后”过滤器逻辑。

如何导入gateway依赖

1.导包

<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>>2021.0.5</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2021.0.6.1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>

2.配置yaml文件

spring:cloud:gateway:discovery:locator:lower-case-service-id: trueenabled: truedefault-filters:- name: CircuitBreakerargs:name: myCircuitBreakerfallbackUri: forward:/fallback //默认的兜底策略routes:- id: fee-serviceuri: lb://fee-service //指定的服务predicates:- Path=/query  //断言

路由配置

1.配置路由谓词工厂和网关过滤器工厂
配置谓词和过滤器有两种方式:快捷方式和完全展开参数。
名称和参数名称将列code在每个部分的第一句或第二句中。参数通常按快捷方式配置所需的顺序列出。
快捷方式配置由过滤器名称识别,后跟等号(=),后跟用逗号分隔的参数值(,)。
配置文件实现:

spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- Cookie=mycookie,mycookievalue

java代码实现过滤方式:

@Configuration
public class GateConfig {@Beanpublic RouteLocator routeLocator(RouteLocatorBuilder builder) {return builder.routes().route(r -> r.path("/check").filters(f -> f.filter(new IpWhitelistFilter()))  // 注册过滤器.uri("lb://fee-service")).build();}
}
package com.umpay.config;import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.http.HttpStatus;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;/*** @author zq* data 2024-12-18*/
@Configuration
@Slf4j
public class IpWhitelistFilter implements GatewayFilter, Ordered {private static final String ALLOWED_IPS = "allowedIps";private static final String DENIED_IPS = "deniedIps";@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {String clientIp=exchange.getRequest().getRemoteAddress().getAddress().getHostAddress();log.info("获取到的ip:============:{}",clientIp);String responseBody = "{\"error\": \"Custom error message\"}";if(!"1111111".equals(clientIp)){exchange.getResponse().setStatusCode(HttpStatus.BAD_REQUEST);exchange.getResponse().getHeaders().add("Content-Type", "application/json");return exchange.getResponse().writeWith(Mono.just(exchange.getResponse().bufferFactory().wrap(responseBody.getBytes())));}return chain.filter(exchange);}@Overridepublic int getOrder() {return 0;}
}

gateway配置断路器

导包

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId></dependency><dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-feign</artifactId></dependency><dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-reactor</artifactId></dependency>

配置

spring:cloud: gateway:discovery:locator:lower-case-service-id: trueenabled: truedefault-filters:- name: CircuitBreakerargs:name: myCircuitBreakerfallbackUri: forward:/fallbackroutes:- id: fee-serviceuri: lb://fee-servicepredicates:- Path=/queryfilters:- name: CircuitBreakerargs:name: myCircuitBreakerfallbackUri: forward:/fallback//断路器配置resilience4j:circuitbreaker:instances:myCircuitBreaker:slidingWindowSize: 10failureRateThreshold: 50minimumNumberOfCalls: 5waitDurationInOpenState: 10s

兜底接口

@RestController
@Slf4j
public class GateController {@Autowiredprivate FeginClients feginClients;@GetMapping("/fallback")public Wrapper query(){log.info("test:================");return WrapperMapper.error();}
}
http://www.yayakq.cn/news/947593/

相关文章:

  • 北京城市建设档案馆网站五屏网站建设怎样
  • 北京网站关键词dedecms本地可以更换网站模板出现网站模板不存在
  • 模板网站和插件有哪些有什么知名网站是用织梦做的
  • 新手学做网站要学什么知识图文教程外贸英语学习网站
  • 泰安集团网站建设费用广州制作外贸网站公司简介
  • 开发龙岗网站建设网站先做前台还是后台
  • 兰州网站制作要多少钱南昌做网站kaiu
  • 做网站赚取广告费开发公司和物业公司签协议
  • 技术支持 深圳网站建设贝尔利为什么语音转文字里面没有海南的
  • 网站空间有哪几种类型免费的网站推广平台
  • 安徽省质量提升工程建设网站体育新闻
  • 沈阳网站建设设计报价河北网站建设价格
  • 有哪些比较好的做ppt好的网站saas平台
  • 如何注册公司网站域名wordpress posts表
  • 做网站能创业吗免费建立网站
  • 西宁网络公司网站建设专业简章
  • 明年做那个网站致富网站编辑器
  • 用c 做的网站怎么打开上海seo优化服务公司
  • 如何用word做网站网站在哪里备案
  • 网站排名seo培训建设网站公司中
  • 网站开发中为什么有两个控制层潮州网站搭建找谁
  • 学院网站建设新闻简报网站开发工作方向
  • 城乡建设举报网站百度搜索首页
  • 深圳快速网站制作哪家公司好湖南响应式网站建设费用
  • 广州响应式网站开发网站智能建设有那些优势
  • 网站建设吉金手指排名15汕头站扩建效果图
  • 莱芜建设局网站酒店网站建设背景分析
  • wordpress 百度平台蚌埠seo外包
  • 网站seoapp模版营销型网站怎么做
  • 校园网站建设的意义网络搭建及应用技能大赛 试题与答案