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

石狮住房和城乡建设局网站邯郸市网络建站

石狮住房和城乡建设局网站,邯郸市网络建站,wordpress谷歌字体优化,wordpress上传后设置目录 一、网关 1、网关概述 2、微服务网关的作用 3、网关作用的一些实现 1、使用 Spring Cloud Gateway 解决跨域 2、微服务网关过滤器 一、网关 1、网关概述 不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需…

目录

一、网关

1、网关概述

2、微服务网关的作用

3、网关作用的一些实现

1、使用 Spring Cloud Gateway 解决跨域

2、微服务网关过滤器


一、网关

1、网关概述

        不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:

  • 客户端会多次请求不同的微服务,增加了客户端的复杂性
  • 存在跨域请求,在一定场景下处理相对复杂
  • 认证复杂,每个服务都需要独立认证
  • 难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施

以上这些问题可以借助网关解决。

        网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过 网关这一层。也就是说,API 的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 网关来做,这样既提高业务灵活性又不缺安全性,典型的架构图如图所示:

2、微服务网关的作用

  • 请求路由
    API 网关会根据客户端的请求,将请求转发到适当的微服务。请求可以是基于 URL 路径、请求方法、请求头等规则来分配给不同的微服务。

  • 负载均衡
    网关可以实现负载均衡,将客户端的请求均匀分发到多个后端服务实例,防止某个实例过载。

  • 身份验证与授权
    网关通常会作为安全网关,负责对所有进来的请求进行身份验证(如 OAuth、JWT 等)。确保用户具有访问特定微服务的权限。

  • 请求聚合
    在微服务架构中,一个业务流程可能需要与多个微服务交互。API 网关可以将多个微服务的响应聚合成一个响应返回给客户端,减少客户端的请求次数。

  • 服务发现
    API 网关可以与服务注册与发现机制(如 Eureka、Consul 等)结合,动态地根据服务的可用性将请求路由到正确的微服务实例。

  • 限流与熔断
    网关可以在高流量情况下进行请求限流,防止后端服务过载。同时,网关还可以与熔断器结合,处理服务的故障,确保系统的稳定性。

  • 协议转换
    网关可以支持不同协议之间的转换。例如,将客户端的 HTTP 请求转发给后端的 gRPC 或 WebSocket 服务。

  • 缓存与性能优化
    API 网关能够缓存一些常见的请求和响应,减少对后端服务的访问,提高性能。

  • 监控与日志记录
    API 网关可以记录请求和响应日志,进行性能监控,帮助开发和运维人员快速排查问题。

3、网关作用的一些实现

1、使用 Spring Cloud Gateway 解决跨域

        Spring Cloud Gateway 是一个支持 CORS 配置的 API 网关,可以通过简单的配置解决跨域问题。你可以在 application.yml 或 Java 配置类中指定跨域的规则。

spring:cloud:gateway:routes:- id: user-serviceuri: lb://USER-SERVICEpredicates:- Path=/user/**filters:- name: CORSargs:allowedOrigins: "*"allowedMethods: "GET, POST, PUT, DELETE, OPTIONS"allowedHeaders: "*"allowCredentials: "true"

说明:

  • allowedOrigins:允许的来源,* 表示允许所有来源(可以配置为具体域名来限制来源)。
  • allowedMethods:允许的 HTTP 方法。
  • allowedHeaders:允许的请求头。
  • allowCredentials:是否允许携带 Cookies 等凭证。

2、微服务网关过滤器

        我们可以通过网关过滤器,实现一些逻辑的处理,比如ip黑白名单拦截、特定地址的拦截等。下面的代码中做了ip显示和url显示两个过滤器,并且设定的先后顺序。

ip:

@Component
public class IpFilter implements GlobalFilter, Ordered {
​@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
​System.out.println("经过第1个过滤器IpFilter");ServerHttpRequest request = exchange.getRequest();InetSocketAddress remoteAddress = request.getRemoteAddress();System.out.println("ip:"+remoteAddress.getHostName());return chain.filter(exchange);}
​@Overridepublic int getOrder() {return 1;}
}

url:

@Component
public class UrlFilter implements GlobalFilter, Ordered {
​@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {System.out.println("经过第2个过滤器UrlFilter");ServerHttpRequest request = exchange.getRequest();String url = request.getURI().getPath();System.out.println("url:"+url);return chain.filter(exchange);}
​@Overridepublic int getOrder() {return 2;}
}

        启动网关之后发送请求到网关观察控制台输出即可。

http://www.dtcms.com/a/480287.html

相关文章:

  • 公司app与网站建设方案网站建建设
  • 网站建设需要多少资金新余网站开发
  • 网站后台登陆不进去是怎么回事常州软件开发公司
  • wordpress 新年插件优化大师会员兑换码
  • 网站怎么查看访问量wordpress自建电商网站
  • 宣传网站开发兰州网络科技公司有哪些
  • 培训班该如何建站建设信用卡商城网站
  • 北京华夏工程建设监理公司网站杭州认证网站建设
  • 企业做外贸网站常用术语wordpress多语言版本
  • 网站建设时间在工商局网站如果做注销公告
  • 做网站汉中青岛vi设计公司
  • 做的丑的网站有哪些知乎深圳做网站(龙华信科)
  • 成都网站建设推广可以哪个网站可以做担保交易平台
  • 刷网站关怎么开通微信小程序卖东西
  • 信息化建设官方网站长沙 外贸网站建设公司
  • Web 开发 29
  • 长域名的优秀网站天津网站建设的公司
  • 【自记】MaxCompute 源表与外表、Hologres 源表与外表的系统对比和场景化解析
  • 医院网站建设进度及实施过程电商购物平台
  • 站酷网怎么样现货交易十大平台
  • 群辉可以做网站服务器吗建设网站注意实现
  • 网站开发 保证书网站查询域名访问
  • 雏光 网络推广 网站建设网站建设交流发言材料
  • 网站内容如何优化揭阳网站制作费用
  • 秦皇岛公司做网站优创智汇高端网站建设电话怎么样
  • 电商网站建设与管理 教案灵宝市建设局网站
  • 寿光网站建设公司网站开发必须要用js
  • 响应式网站开发昌吉州住房和城乡建设局网站
  • 主流门户网站有哪些西部数码网站管理助手破解版
  • 南通网站建设项目中国最大的外贸平台