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

网站新闻打不开装修行业门户网站模板

网站新闻打不开,装修行业门户网站模板,新手网站建设教程,优秀的门户网站1. 微服务为什么需要 API 网关#xff1f; 1.1. 在微服务架构中#xff0c;通常一个系统会被拆分为多个微服务#xff0c;面对多个微服务客户端应该如何去调用呢#xff1f; 如果根据每个微服务的地址发起调用#xff0c;存在如下问题#xff1a; 客户端多次请求不同的…1. 微服务为什么需要 API 网关 1.1. 在微服务架构中通常一个系统会被拆分为多个微服务面对多个微服务客户端应该如何去调用呢 如果根据每个微服务的地址发起调用存在如下问题 客户端多次请求不同的微服务会增加客户端代码和配置的复杂性维护成本比较高认证复杂每个微服务可能存在不同的认证方式客户端去调用要去适配不同的认证存在跨域的请求调用链有一定的相对复杂性防火墙、浏览器不友好的协议难以重构随着代码的迭代可能需要重新划分微服务。 1.2. 为了解决以上问题微服务引入了 API 网关的概念 API 网关为微服务架构的系统提供简单、有效且统一的 API 路由管理作为系统的统一入口提供内部服务的路由中转给客户端提供统一的服务可以实现一些和业务没有耦合的公共逻辑主要功能包括认证、鉴权、路由转发、安全策略、防刷、流量控制、监控日志等。 2. Spring Cloud Gateway 是什么 官方文档Spring Cloud Gateway :: Spring Cloud Gateway Spring Cloud Gateway 是 Sprinig Cloud 官方推出的第二代网关框架定位取代 Netflix Zuul。 Spring Cloud Gateway 旨在为微服务架构提供一种简单且有效的 API 路由的管理方式并基于 Filter 的方式提供网关的基本功能例如说安全认证、监控、限流等。 Spring Cloud Gateway 是有 WebFlux Netty Reactor 实现的响应式的 API 网关。它不能再传统的 Servlet 容器中工作也不能构建成 war 包。 3. 微服务快速接入 Spring Cloud Gateway 3.1. 构建网关服务 3.1.1. 创建一个新的 module 模块 icoolkj-mall-gateway pom.xml 文件中引入 Spring Cloud Gateway 网关依赖 dependencies!-- gateway网关 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependency!--nacos-discovery 注册中心依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency!-- loadbalancer 负载均衡器依赖--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-loadbalancer/artifactId/dependency/dependencies 3.2. 微服务快速接入网关服务 3.2.1. 以订单服务为例 在网关服务配置 application.yml 文件 server:port: 18888spring:application:name: icoolkj-mall-gatewaycloud:nacos:discovery:server-addr: icoolkj-mall-nacos-server:8848gateway:# 设置路由路由ID、路由到微服务的 uri、断言routes:- id: order_route # 路由ID全局唯一建议配置服务名uri: lb://icoolkj-mall-order # lb 整合负载均衡器 loadbalancerpredicates:- Path/api/order/** # 断言路径相匹配的进行路由 商品、库存、账户服务同上配置网关服务的完整的 application.yml 配置如下 server:port: 18888spring:application:name: icoolkj-mall-gatewaycloud:nacos:discovery:server-addr: icoolkj-mall-nacos-server:8848gateway:# 设置路由路由ID、路由到微服务的 uri、断言routes:- id: order_route # 路由ID全局唯一建议配置服务名uri: lb://icoolkj-mall-order # lb 整合负载均衡器 loadbalancerpredicates:- Path/api/order/** # 断言路径相匹配的进行路由- id: product_route # 路由ID全局唯一建议配置服务名uri: lb://icoolkj-mall-product # lb 整合负载均衡器 loadbalancerpredicates:- Path/api/product/** # 断言路径相匹配的进行路由- id: inventory_route # 路由ID全局唯一建议配置服务名uri: lb://icoolkj-mall-inventory # lb 整合负载均衡器 loadbalancerpredicates:- Path/api/inventory/** # 断言路径相匹配的进行路由- id: account_route # 路由ID全局唯一建议配置服务名uri: lb://icoolkj-mall-account # lb 整合负载均衡器 loadbalancerpredicates:- Path/api/account/** # 断言路径相匹配的进行路由 优化可以将 gateway 的配置移到 Nacos 配置中心 网关服务的 pom.xml 文件中引入 Nacos 配置中心依赖 !-- nacos-config 配置中心依赖 -- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependency Nacos 控制台创建 dataId 为 icoolkj-mall-gateway.yml配置内容如下 spring:cloud:gateway:# 设置路由路由ID、路由到微服务的 uri、断言routes:- id: order_route # 路由ID全局唯一建议配置服务名uri: lb://icoolkj-mall-order # lb 整合负载均衡器 loadbalancerpredicates:- Path/api/order/** # 断言路径相匹配的进行路由- id: product_route # 路由ID全局唯一建议配置服务名uri: lb://icoolkj-mall-product # lb 整合负载均衡器 loadbalancerpredicates:- Path/api/product/** # 断言路径相匹配的进行路由- id: inventory_route # 路由ID全局唯一建议配置服务名uri: lb://icoolkj-mall-inventory # lb 整合负载均衡器 loadbalancerpredicates:- Path/api/inventory/** # 断言路径相匹配的进行路由- id: account_route # 路由ID全局唯一建议配置服务名uri: lb://icoolkj-mall-account # lb 整合负载均衡器 loadbalancerpredicates:- Path/api/account/** # 断言路径相匹配的进行路由 网关服务的 application.yml 调整引入 icoolkj-mall-gateway.yml 配置 server:port: 18888spring:application:name: icoolkj-mall-gatewaycloud:nacos:config:server-addr: icoolkj-mall-nacos-server:8848file-extension: yml # 指定配置文件扩展名为ymlconfig:import:- optional:nacos:${spring.application.name}.yml- nacos:nacos-discovery.yml 3.3. 启动网关服务测试 postman 中通过网关服务的 18888 端口下单看看能否成功。 icoolkj-mall-forntend 前端服务 order.html 中访问后端服务地址都替换成 icoolkj-mall-gateway:18888测试下单是否成功。 4. Gateway 跨域资源共享配置 官方文档Spring Cloud Gateway 4.1. 通过 yml 配置的方式 spring:cloud:gateway:globalcors:cors-configurations:[/**]:allowedOrigins: *allowedMethods:- GET- POST- DELETE- PUT- OPTIONallowedHeaders: * 4.2. 通过 java 配置的方式 Configuration public class CorsConfig {Beanpublic CorsWebFilter corsFilter() {CorsConfiguration config new CorsConfiguration();// 允许的前端地址config.addAllowedOrigin(http://localhost:88); // 只允许特定的前端地址// 允许所有 HTTP 方法包括 GETconfig.addAllowedMethod(*);// 允许所有请求头config.addAllowedHeader(*);// 设置允许带有凭证如 Cookiesconfig.setAllowCredentials(true);UrlBasedCorsConfigurationSource source new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration(/**, config); // 全局匹配所有请求路径return new CorsWebFilter(source);} } 4.3. 发现问题 通过通过以上配置后台接口可以访问但是还是提示跨域。解决方案去除微服务内部的注解 CrossOrigin 全局 CORS 配置放在网关服务中这会确保跨域请求的集中管理避免每个微服务都进行重复配置。微服务内部的 CORS 配置一般不需要除非某些微服务的接口有特殊需求可以通过 CrossOrigin 注解进行单独配置。网关处理 CORS 后微服务只需专注于业务逻辑不必关注跨域问题简化了微服务的开发和维护。 5. 小结 gateway 就是整个微服务架构的统一入口。
http://www.hkea.cn/news/14516436/

相关文章:

  • 网站的建设主机费用定制营销型网站
  • 建设工程质量管理条例网站数据库做网站
  • 网站怎么收录到百度电子商务网站建设参考文献
  • 如何让搜索引擎收录你的网站广西网络网站建设
  • 建筑设计案例网站推荐南昌建站方案
  • 怎么找网站开发公司天猫购买
  • 建设网站的经验诚一网站推广
  • 宜飞思工业设计网站seo入门培训学校
  • 中英文外贸网站模板 生成静态html重庆公司社保最低档每月多少钱
  • 谷歌seo网站推广上海专业网站建设哪家好
  • 美橙互联网站建设好不好二七网站建设
  • 有没有免费注册域名的网站php7 wordpress 无法安装
  • 南昌seo网站管理如何建立网站视频
  • 电商网站运维怎么做wordpress自助友链
  • 响应式网站pad尺寸wordpress 评论小工具
  • 初学网站建设选择做华为网站的目的和意义
  • 外文网站建站网上有做logo的网站吗
  • 简述电子商务网站的内容设计与开发做网络销售哪些网站比较好
  • 国外app界面设计网站网站到期可以续费
  • 网站开发发帖语言大连新图闻科技
  • 网站建设考核指标宿迁市建设局投诉网站
  • 网站建设服务yisinuo苏州app推广团队
  • 广州网站设计公司从事网站开发需要的证书
  • 用狗做头像的网站最新的网站开发技术
  • 给别人做网站去掉版权wordpress页面显示
  • 网站内容建设包括公司管理体系包括哪四个体系
  • 宁波网站建设优化诊断怎样建手机网站
  • 网站建设管理情况现在做个企业网站一般多少钱
  • 网站的软文 怎么做推广低价网站制作顺德
  • 免费网站入口在哪网站举报查询进度