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

做网站基本语言宁波市城市建设档案馆网站

做网站基本语言,宁波市城市建设档案馆网站,网站建设需求文章,万网网站备案证书Zuul 网关 Zuul 是 Netfilx 开源的一个 API Gateway 服务器#xff0c;本质是一个 Web Servlet 应用。其在微服务架构体系中提供动态路由、监控、弹性、安全等边缘服务。 使用 Zuul 作为网关#xff0c;其主要原因有以下几点#xff1a; 1、Zuul、Ribbon 以及 Consul 客户端…Zuul 网关 Zuul 是 Netfilx 开源的一个 API Gateway 服务器本质是一个 Web Servlet 应用。其在微服务架构体系中提供动态路由、监控、弹性、安全等边缘服务。 使用 Zuul 作为网关其主要原因有以下几点 1、Zuul、Ribbon 以及 Consul 客户端结合使用能够轻松实现智能路由、负载均衡功能2、在网关层统一对外提供 API 接口保护了实际提供接口的微服务实现细节同时也方便测试人员对微服务接口进行测试3、在网关层能够统一添加身份认证、鉴权等功能防止对微服务 API 接口的非法调用4、在网关层可以方便地对访问请求进行记录实现监控相关功能5、在网关层实现流量监控在流量比较大时方便对服务实施降级。 Zuul 工作原理 Zuul 的核心是一系列的 Filters其作用可以类比 Servlet 框架的 Filter或者 AOP。Zuul 中定义了四种标准过滤器类型分别是 pre、post、routing 以及 error 过滤器。 1、pre 过滤器在请求路由到具体微服务之前执行其主要用于身份验证、鉴权等功能2、routing 过滤器其主要功能是将请求路由到具体的微服务实例3、post 过滤器在对具体微服务调用之后执行其主要用于收集统计信息、指标以及对请求响应数据进行处理等4、error 过滤器在以上三种过滤器执行出错时执行。 yang-gateway pom.xml parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.0.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.versionspring-cloud.versionGreenwich.M3/spring-cloud.version/propertiesdependencies!--Actuator--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency!--Consul--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-consul-discovery/artifactId/dependency!--Zuul--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-zuul/artifactId/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagement View Code bootstrap.yml server:port: 1003 spring:application:name: yang-gatewaycloud:consul:host: 127.0.0.1port: 8500discovery:register: truehealthCheckPath: /server/consul/healthhealthCheckInterval: 10sinstance-id: ${spring.application.name} zuul:routes:yang-service:path: /**serviceId: yang-diver Application.java SpringBootApplication EnableZuulProxy public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);} } 访问路径http://localhost:1003/user/list 此时Gateway访问到了yang-diver服务的内容了。 路由配置 传统的路由配置 在不依赖于服务发现机制的情况下通过在配置文件中具体指定每个路由表达式与服务实例的映射关系来实现API网关对外部请求的路由。 单实例配置 通过一组zuul.routes.route.path与zuul.routes.route.url参数对的方式配置。 server:port: 1003 spring:application:name: yang-gateway zuul:routes:yang-service:path: /yang-diver/**url: http://localhost:1002/ 凡是路径为http://localhost:1003/yang-diver/** 的请求都会转发请求到http://localhost:1002/** 地址 多实例配置 通过一组zuul.routes.route.path与zuul.routes.route.serviceId参数对的方式配置 zuul:routes:yang-service:path: /yang-diver/**serviceId: yang-diverribbon:eureka:enabled: false # 没有配置服务治理Eureka就需要关闭否则会找不到服务yang-service:ribbon:# 为serviceId去指定具体的服务实例地址listOfServers: http://localhost:1001/,http://localhost:1002/ 此时凡是路径为http://localhost:1003/yang-diver/** 的请求都会转发请求到http://localhost:1001/** 和http://localhost:1002/** 地址 服务路由配置 整合服务治理后只需要提供一组zuul.routes.route.path与zuul.routes.route.serviceId参数对的配置即可。 server:port: 1003 spring:application:name: yang-gatewaycloud:consul:host: 127.0.0.1port: 8500discovery:register: truehealthCheckPath: /server/consul/healthhealthCheckInterval: 10sinstance-id: ${spring.application.name} zuul:routes:yang-service:path: /**serviceId: yang-diver 还可以通过zuul.routes.serviceIdpath直接进行路由转。其中serviceId用来指定路由的具体服务名path用来配置匹配的请求表达式。 zuul:routes:yang-diver:path: /** # serviceId: yang-diver 实际上服务注册中心已经维护了serverId与实例地址的映射关系。当Gateway注册到服务注册中心后就能从注册中心获取所有服务以及它们的实例清单。 服务网关之过滤器 Spring Cloud Zuul的过滤器的作用。 以权限控制为例。每个系统并不会将所有的微服务接口都开放出去。为了实现对客户端请求的安全校验和权限控制有以下几点方案1、为每个微服务应用都实现一套用于校验签名和鉴别权限的过滤器或拦截器。【权限的实现方式大同小异开发繁琐、维护困难不推荐】2、实现鉴权服务直接在微服务应用中通过调用鉴权服务来实现校验。【分离不彻底】3、通过前置的网关服务来完成这些非业务性质的校验即通过在网关中完成校验和过滤。【推荐】 AccessFilter /*** 系统访问 Filter** Author YangXuyue* Date 2018/11/28 23:34*/ Component(accessFilter) public class AccessFilter extends ZuulFilter {private static final Logger LOGGER LoggerFactory.getLogger(AccessFilter.class);/*** 过滤器的类型它决定过滤器在请求的哪个生命周期中执行。* 这里定义为pre代表会在请求被路由之前执行** return* Author YangXuyue* Date 2018/11/28 23:39*/Overridepublic String filterType() {return pre;}/*** 过滤器的执行顺序。当请求在一个阶段中存在多个过滤器时需要根据该方法返回的值来依次执行** return* Author YangXuyue* Date 2018/11/28 23:39*/Overridepublic int filterOrder() {return 0;}/*** 判断该过滤器是否需要被执行** return* Author YangXuyue* Date 2018/11/28 23:39*/Overridepublic boolean shouldFilter() {return true;}/*** 过滤器的具体逻辑* 实现在请求被路由之前检查HttpServletRequest中是否有accessToken参数* 若有就进行路由若没有就拒绝访问返回401 Unauthorized错误。** return* throws ZuulException* Author YangXuyue* Date 2018/11/28 23:37*/Overridepublic Object run() throws ZuulException {RequestContext ctx RequestContext.getCurrentContext();HttpServletRequest request ctx.getRequest();LOGGER.info(send {} request to {}, request.getMethod(), request.getRequestURL().toString());Object accessToken request.getParameter(accessToken);if (accessToken null) {LOGGER.warn(access token is empty);ctx.setSendZuulResponse(false);// 未授权ctx.setResponseStatusCode(401);return null;}LOGGER.info(access token ok);return null;} } 此时访问http://localhost:1003/user/list出现401未授权的问题   如果访问http://localhost:1003/user/list?accessTokentrue请求就能成功被转发。  转载于:https://www.cnblogs.com/yang21/p/10030043.html
http://www.huolong8.cn/news/99686/

相关文章:

  • windows7建设网站怎样在淘宝网做网站
  • 如何做企业网站开发wordpress 首页文章数
  • 网站建设8万属于资产吗长沙app制作
  • 北京人才招聘网站制作商城网站开发
  • 网站系统的建设与管理现在自己做网站卖东西行么
  • thinphp 做外贸网站wordpress 短网址
  • 网站建设域名所有权网站前后端的关系
  • 免费网站建站模块wordpress get style ui
  • 网站广告策划银川市住房建设局网站
  • 网站首页权重适合前端做项目的网站
  • 定制网站和模板网站及仿站的区别深圳外贸网站开发公司
  • 石家庄市市政建设工程公司网站南京中建乡旅建设投资有限公司网站
  • 徐州发布网站wordpress注册不发送邮件
  • 开锁公司网站建设百度快速排名优化技术
  • 淮南网站制作网页游戏源码交易平台
  • 网站怎么做万词lovefort表白网站制作
  • 网站空间服务器费用台州网站制作
  • 网站关键词突然没有排名了泰安建设局网站
  • git 网站开发应用网站修改 iis6应用程序池
  • 在线简历免费制作网站wordpress用户组插件
  • 网站建设记在哪个科目建设用地规划证查询网站
  • 天津怎样做网站推广兰州做网站哪家好
  • 昆山住房与城乡建设局网站做网站l价格
  • 上海网站建站建设ss免费服务器
  • 千阳县住房和城乡建设局网站杭州专业网站建设公司哪家好
  • 网站用不用备案手机如何开发软件程序
  • 宁波网站建设哪家快湖北响应式网页建设企业
  • 教育网站建设规划书如何查询网站备案时间查询
  • 如何用网站做淘宝联盟产品设计考研学校
  • 个人现在可以做哪些网站利用云服务器做网站