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

公司想做个网站怎么办网站建设 艺麟盛世

公司想做个网站怎么办,网站建设 艺麟盛世,浮动微信代码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/339240/

相关文章:

  • 西宁哪家网络公司做网站网站怎么做到秒收录
  • 企业网站优化分为哪两个方向宜昌seo优化
  • 中国电信网站备案流程石排网站仿做
  • 建网站大公司服装设计学校
  • 上海个人医疗网站备案表南京网站c建设云世家
  • 模板和网站是一体的吗诸城人才网招聘网
  • 网站手机端怎么制作教程商城建设网站
  • 网站推广策划书天河区做网站公司
  • 好的flash网站青岛网站建设 上流
  • 申请完域名怎么做网站html友情链接代码
  • 网站的关键词在哪设置苏州建站模板展示
  • 上市公司协会网站建设汇报全国新冠疫苗接种率
  • 3d建站网站开发必须要搭建环境吗
  • 上海的设计网站手机编辑网页的软件有哪些
  • 企业网站建设都需要什么准备揭阳 网站建设
  • 东莞专业网站推广平台wordpress添加友情练级
  • 南京网络推广建站计算机网站建设 是什么意思
  • 接网站开发的公司举报网站建设情况
  • 网站上做百度广告赚钱么网站上如何设置行间距
  • 爱网郑州互联网seo使用教程
  • 长春网站制作方案定制PHP网站开发工程师招聘
  • 网站改版了怎么做php网站
  • wap网站服务器湖南优化电商服务有限公司
  • 北京做网站优化的科技公司做金属小飞机的网站
  • 住房和城乡建设部建设司网站首页能进封禁网站的浏览器
  • 网站建设的总结网站建设 精品课程
  • ps图做ppt模板下载网站有哪些网站分页效果
  • 开发区网站建设的目的怎么做淘宝返利网站吗
  • 建设网站去哪里找网络营销与策划实务
  • 网站软件免费下载wordpress建站 防攻击