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

ps做网站图片水印页面设计培训学校

ps做网站图片水印,页面设计培训学校,北京seo排名服务,wordpress调用当前页面链接本文介绍如何再 SpringCloud 项目中引入 Gateway 网关并完成网关服务的调用。Gateway 网关是一个在微服务架构中起到入口和路由控制的关键组件。它负责处理客户端请求#xff0c;进行路由决策#xff0c;并将请求转发到相应的微服务。Gateway 网关还可以实现负载均衡、安全认…本文介绍如何再 SpringCloud 项目中引入 Gateway 网关并完成网关服务的调用。Gateway 网关是一个在微服务架构中起到入口和路由控制的关键组件。它负责处理客户端请求进行路由决策并将请求转发到相应的微服务。Gateway 网关还可以实现负载均衡、安全认证、日志记录等功能集中管理服务间的通信提升整体系统的可维护性和安全性。通过 Gateway 网关可以实现统一的访问点简化客户端与后端微服务之间的交互同时也能够更灵活地进行流量控制和监控。 一、Gateway网关介绍 Gateway 网关是一个基于 Spring Cloud 的 API 网关服务它提供了路由、过滤、监控、日志等功能用于统一管理和转发微服务的请求流量。作为微服务架构中的入口点Gateway 网关可以实现负载均衡、安全认证、请求转发等功能提高了系统的安全性、可用性和可维护性。 网关的作用 对用户请求做身份认证、权限校验将用户请求路由到微服务并实现负载均衡对用户请求做限流 含 Gateway 网关项目结构示意图 二、搭建Gateway网关 搭建Gateway网关需要以下步骤 1、创建Gateway模块 我们需要的开发环境中创建一个新的Spring Boot项目。 不会创建的可以参考我之前的文章SpringCloud-创建多模块项目 在SpringCloud项目上我们创建Gateway模块我命名为 springcloud-gateway。 2、引入SpringCloud-Gateway依赖 在 springcloud-gateway 项目的 pom.xml 文件中引入 Spring Cloud Gateway 的依赖。 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId /dependency 3、配置路由规则 编辑 applicatin.yml配置 Gateway 网关的路由规则包括定义路由路径、目标服务等信息。 server:port: 8090 spring:application:name: springcloud-gatewaycloud:nacos:server-addr: localhost:8848gateway:discovery:locator:enabled: true # 开启自动路由routes: # 网关路由配置- id: gateway-service # 路由id自定义唯一uri: lb://target # 路由的目标地址lb表示负载均衡predicates: # 路由断言判断请求是否符合路由规则- Path/gateway/** # 要求请求路径以/user/开头否则404filters:- StripPrefix1 # 转发请求时uri过滤掉/gateway 我们添加了动态路由这里的动态路由属性可以自动让网关的转发请求负载均衡。 这里我们用到了一个 Path 断言要求请求路径以 /user/ 开头否则请求会返回404 (未找到服务) 。这里我们还用到了一个过滤器让网关转发请求时去掉前缀 /gateway。断言工厂和过滤器的概念我们在下文进行详细讲解。 4、添加断言 在Spring Cloud Gateway中断言Predicate用于定义请求匹配的条件从而决定是否应用某个过滤器链。以下是一些常见的Gateway断言种类和相应的示例 断言种类匹配规则示例Path根据请求的路径进行匹配。- Path/api/** 匹配路径为 /api/** 的请求。Method根据请求的HTTP方法进行匹配。- MethodGET 匹配GET请求。Header根据请求的头部信息进行匹配。- HeaderAuthorization, \d 匹配包含 Authorization 头部的请求。Host根据请求的主机名进行匹配。- Hostexample.com 匹配主机名为 example.com 的请求。Query根据请求的查询参数进行匹配。- Querycategory, \w 匹配包含 category 参数的请求。Cookie根据请求的Cookie进行匹配。- CookiesessionId, \d 匹配包含名为 sessionId 的Cookie的请求。Combining将多个断言组合成一个逻辑条件 实现更复杂的匹配。- Path/api/** AND MethodGET 同时匹配路径为 /api/** 且是GET请求的请求。 下面来举个例子 server:port: 8090 spring:application:name: springcloud-gatewaycloud:nacos:server-addr: localhost:8848gateway:discovery:locator:enabled: true # 开启自动路由routes:- id: gateway-serviceuri: lb://targetpredicates:- HeaderAuthorization, Bearer 831B175-D251501-31A3F301-711636-9CAE 这里用到的最常用的 Header 断言中的鉴权断言要求访问网关的请求必须在请求头里带有 Authorization, Bearer 831B175-D251501-31A3F301-711636-9CAE 的鉴权码如果没有鉴权码或者鉴权码不匹配则返回 404。 5、添加过滤器 Spring Cloud Gateway提供了丰富的过滤器种类这些过滤器用于在请求进入网关或响应离开网关时执行各种操作。以下是一些常见的Gateway过滤器种类 过滤器种类过滤器作用Pre Filters (前置过滤器)AddRequestHeader: 添加请求头。AddRequestParameter: 添加请求参数。ModifyRequestBody: 修改请求体。Route Filters (路由过滤器)AddResponseHeader: 添加响应头。AddResponseParameter: 添加响应参数。Hystrix: 集成Hystrix断路器提供服务容错能力。Post Filters (后置过滤器)SetStatus: 设置响应状态码。ModifyResponseBody: 修改响应体。Error Filters (错误过滤器)SendError: 处理请求发生错误时的操作。ExceptionHandler: 自定义异常处理。Global Filters (全局过滤器)GlobalFilter: 全局过滤器适用于所有路由。Ordered: 为过滤器设置顺序。Custom Filters (自定义过滤器)自定义实现GatewayFilter接口: 开发者可以通过实现该接口创建自定义的过滤器。 这些过滤器可以按照需求进行组合和配置使得开发者可以在Gateway中实现各种复杂的请求和响应处理逻辑。通过合理配置过滤器可以实现日志记录、认证授权、请求重试、熔断器等功能提高网关的灵活性和可扩展性。 下面我们来举个例子 server:port: 8090 spring:application:name: springcloud-gatewaycloud:nacos:server-addr: localhost:8848gateway:discovery:locator:enabled: true # 开启自动路由routes:- id: gateway-serviceuri: lb://targetpredicates:- Path/gateway/**filters:- StripPrefix1- AddRequestHeadertest_header, damon0806 这里可以看到我们在 routes网关路由下配置了 filters过滤器。 StripPrefix1表示从请求的URI中去除前缀的数量。在这里1 表示去除两级路径的前缀。例如如果原始请求是 /path1/rest-of-the-uri使用此配置后转发到后端的请求 URI 将是 /rest-of-the-uri。AddRequestHeadertest_header, damon0806表示在请求头中添加一个自定义的头部。具体来说它添加了一个名为 test_header 的头部其值为 damon0806。这可以用于在请求发送到后端服务时传递额外的信息或标识。 6、启动网关服务 编写 springcloud-gateway 的启动类启动 Gateway 网关服务使其开始监听和转发请求。 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class SpringcloudGatewayApplication {public static void main(String[] args) {SpringApplication.run(SpringcloudGatewayApplication.class, args);} }7、测试路由 可以使用 Postman 等接口测试工具发送请求测试 Gateway 网关是否能够正确转发请求到相应的微服务以及断言工厂或者过滤器是否实现。 三、Gatway网关的作用 Gateway 网关作为微服务架构中的入口点扮演着关键的角色。 其作用主要体现在以下几个方面 作用点详细描述路由 (Routing)Gateway能够根据请求的路径将请求路由到相应的微服务实例上。简化了服务调用的过程使得客户端无需直接关注每个微服务的位置和细节。负载均衡 (Load Balancing)Gateway支持负载均衡可将请求均匀地分发到多个微服务实例提高系统的可用性和性能。有效避免了单一服务实例的过载提高了整体系统的稳定性。过滤 (Filtering)Gateway可以通过过滤器实现对请求和响应进行处理如添加、修改请求头、记录日志、认证、鉴权等操作。统一处理与安全、日志、性能等相关的逻辑使得系统更加易于维护和管理。熔断器 (Circuit Breaker)Gateway支持熔断器机制当某个微服务出现故障或超时时能够自动切换到备用服务防止故障向下游传递。提高了系统的容错性减少了因单一服务故障而导致整个系统不稳定的风险。统一异常处理 (Exception Handling)Gateway可以统一处理微服务中的异常提供友好的错误提示防止细节泄露给客户端。提高了系统的安全性和用户体验降低了对异常的不良影响。协议转换 (Protocol Transformation)Gateway支持协议的转换可以将外部请求转换成内部微服务所需的协议。降低了微服务之间的耦合度允许使用不同的协议进行通信。 Gateway网关在微服务架构中承担了集中处理、管理和保护服务的责任通过提供统一的入口和处理机制使得微服务系统更加稳定、灵活和易于维护。 四、Gateway网关服务的调用 下面是前端 Ajax 调用网关服务的实例 前端 JavaScript 代码 $.ajax({type: POST,url: http://localhost:8090/gateway/getUserList,data: {},dataType: json }); 网关配置如下 server:port: 8090 spring:application:name: springcloud-gatewaycloud:nacos:server-addr: localhost:8848gateway:discovery:locator:enabled: true # 开启自动路由routes:- id: gateway-serviceuri: lb://targetpredicates:- Path/gateway/**filters:- StripPrefix1- AddRequestHeadertest_header, damon0806 当我们执行上述 Ajax 请求时请求会被网关转发到 lb://target/getUserList 上。 五、Gateway网关总结 Gateway网关作为微服务架构中的关键组件承担着诸多重要任务为整个系统提供了一种高效、可靠的服务入口。以下是对Gateway网关的总结 要点要点详细内容统一入口Gateway网关为微服务提供了一个统一的入口客户端通过与网关交互无需直接访问每个微服务简化了服务调用的复杂性。路由与负载均衡Gateway能够根据路由规则将请求动态转发到不同的微服务实例同时支持负载均衡提高了系统的可用性和性能。过滤器与拦截通过过滤器Gateway网关能够在请求进入网关或响应离开网关时执行一系列操作如鉴权、认证、日志记录等增强了系统的安全性和可维护性。熔断与异常处理Gateway网关支持熔断器机制能够处理微服务的异常情况避免故障的扩散。统一的异常处理机制提高了系统的稳定性和用户体验。协议转换与透明性Gateway网关允许协议的转换为微服务提供了透明的通信机制。这使得微服务之间可以使用不同的通信协议提高了系统的灵活性。集中式管理Gateway网关提供了集中管理微服务的能力可以在一个地方配置和管理所有微服务的路由规则和过滤器降低了系统的维护成本。性能监控与日志记录Gateway网关可以通过集成性能监控工具和记录详细日志帮助开发人员更好地了解系统的运行状况方便进行性能优化和故障排查。 综上所述Gateway网关在微服务架构中扮演了不可或缺的角色通过集中化管理、智能路由和强大的过滤器机制为构建高效、可扩展的微服务系统提供了有力支持。其优势在于简化了开发、提高了系统的可维护性并在面对复杂的微服务架构时提供了一种优雅的解决方案。
http://www.zqtcl.cn/news/243362/

相关文章:

  • 餐饮加盟网站建设字体怎么安装wordpress
  • 网站建设与维护培训凡科和有赞哪个好用
  • 景区网站的作用长春新冠最新情况
  • 个人网站上传有啥要求wordpress 浏览记录
  • appcan 手机网站开发wordpress首页音乐
  • 杭州响应式网站案例建筑工程网站建站方案
  • 网站访客抓取国内网站搭建
  • 凡科网站做的好不好太原网页
  • 十堰商城网站建设国外效果图网站
  • 怎么登陆建设工程网站泉州网红
  • 哈尔滨队网站网页美工跨境电商是什么意思
  • 网站规划与建设课程推广型网站建设软件
  • 山东网站建设系统网站设计哪家更好
  • 网络推广有哪些网站网络推广公司联系昔年下拉
  • 长沙专业外贸建站公司百度提交网站入口网站
  • 西安网站搭建建设定制市场营销推广策略
  • 用户等待网站速度公司网站怎么做站外链接
  • 设计新闻发布网站模板wonder audio wordpress
  • 教育与培训网站建设wordpress侧栏文章
  • 四川做网站的公司哪家好信誉好的赣州网站建设
  • seo外包网站网站的备案流程图
  • 学网站建设好么免费网页制作有哪些
  • 宁波公司网站开发招聘最便宜的视频网站建设
  • 找人做网站大概多少钱永州企业网站建设
  • 免费备案网站空间网站怎么做组织图
  • 四川省和城乡建设厅网站怎么做网站淘宝转换工具
  • 网站单页支付宝支付怎么做的排名优化公司口碑哪家好
  • 淄博网站制作服务推广做网站服务器配置
  • ppt做的好的有哪些网站有哪些广州品牌型网站建设
  • 怎么学做一件完整衣服网站网站 相对路径