202301-31 解决SpringCloud Gateway配置自定义路由404的坑 目录问题背景问题现象解决过程1检查网关配置2跟源码,查找可能的原因3异常原因分析解决方法心得问题背景将原有项目中的websocket模块迁移到基于SpringCloudAlibaba的微服务系统中,其中网关部分使用的是gateway。问题现象迁移后,我们在使用客户端连接websocket时报错:io.netty.handler.codec.http.websocketx.WebSocketHandshakeException:Invalidsubprotocol.Actual:null.Expectedoneof:protocol...同时,我们还有... 继续阅读 >
202301-31 spring cloud gateway转发服务报错的解决 目录springcloudgateway转发服务报错错误如下解决方案使用gateWay做为网关遇到的404问题GateWay有几个重要的配置,也是最重要的东西我在项目中访问gateWay服务的时候springcloudgateway转发服务报错错误如下javax.net.ssl.SSLHandshakeException:error:1000009c:SSLroutines:OPENSSL_internal:HTTP_REQUEST在springcloudgateway项目中,使用了SSL验证后,为了增加系统性能,引入了netty-tcnative-boringssl-static依赖来增加... 继续阅读 >
202203-16 初探Spring Cloud Gateway实战 目录关于SpringCloudGateway版本信息经典配置中的核心概念启动nacos-2.0.3源码下载《SpringCloudGateway实战》系列的父工程创建名为common的子工程,存放共用的常量和数据结构创建web应用,作为服务提供方开发一个简单的demo,完成spring-cloud-gateway的初体验总结关于SpringCloudGateway这是一个基于Spring技术栈构建的API网关,涉及到:Spring5、SpringBoot2、Reactor等,目标是为项目提供简单高效的API路由,以及... 继续阅读 >
202202-21 nginx服务器异常502 bad gateway原因排查 服务器进行公众号粉丝数据同步以及批量推送报错502根据错误信息可以判定是后端的问题,502错误的原因有很多种,但总的来说就是服务器处理不过来了1.首先查看服务器日志1)先查nginx日志,不熟悉的可以从nginx.conf中获取error_log的路径,找到错误如下:发现nginx进程处理的连接数不够用,单个进程处理的连接数超过了nginx.conf配置的worker_connections值通常worker_connections的值可以参考单个进程打开的最大连接数,命令为:ul... 继续阅读 >
202202-12 Java之Springcloud Gateway内置路由案例讲解 SpringCloudGateway路由匹配是SpringWebFlux基础功能的一部分,在SpringCloudGateway中内置了很多路由断言工厂类。不同的断言工厂类针对HTTP请求的不同属性。多个断言工厂类可以使用逻辑“and”进行组合使用。4.1AfterRoutePredicateFactory 这个Predicate工厂的实现类是AfterRoutePredicateFactory,使用一个时间参数,如果当前请求的时间在配置的赶时间之后,此断言才会返回t... 继续阅读 >
202202-10 Nginx+SpringCloud Gateway搭建项目访问环境 目录安装Nginx准备SpringBoot应用添加网关现如今的项目开发基本都是微服务方式,导致一个系统中会有很多的服务,每个模块都对应着不同的端口,为了方便访问,通常会让某个服务绑定一个域名,比如商品服务:product.xxx.com;订单服务:order.xxx.com,此时可以使用Nginx来搭建一个域名访问环境,基于前后端分离开发的项目经常会遇到跨域问题,使用Nginx也能轻松解决。安装Nginx首先拉取nginx的镜像:dockerpullnginx:1.10然后随... 继续阅读 >
202201-06 Docker安装Kong API Gateway并使用的详细教程 1简介Kong不是一个简单的产品,本文讲的Kong主要指的是KongAPIGateway,即API网关。这次主要是简单体验一把,通过Docker安装,然后使用它的Route功能。2安装创建Docker的Network:#创建$dockernetworkcreatekong-net#检查$dockernetworklistKong可以使用无数据库模式,为了窥探一下它的配置,我们还是使用数据库,启动如下:$dockerrun-itd--network=kong-net\--namekong-database\-ePOSTGRES_DB=kon... 继续阅读 >
202110-29 SpringCloud gateway request的body验证或修改方式 SpringCloudgatewayrequest的body验证或修改后续版本新增了以下过滤器org.springframework.cloud.gateway.filter.headers.RemoveHopByHopHeadersFilter默认会把以下头部移除(暂不了解这做法的目的)-connection-keep-alive-te-transfer-encoding-trailer-proxy-authorization-proxy-authenticate-x-application-context-upgrade从而导致下面我们重写getHeaders方法时添加的transfer-encoding头部移除,导致无法解析bod... 继续阅读 >
202110-29 Spring Cloud Gateway Hystrix fallback获取异常信息的处理 GatewayHystrixfallback获取异常信息gatewayfallback后,需要知道请求的是哪个接口以及具体的异常信息,根据不同的请求以及异常进行不同的处理。一开始根据网上一篇博客上的做法:pom.xml:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-st... 继续阅读 >
202110-28 spring cloud gateway全局过滤器实现向request header中放数据 gateway全局过滤器向requestheader放数据exchange.getRequest().getHeaders().set();是不能向headers中放文件的这时配置一个gateway全局过滤器filter中做了向header放数据@ComponentpublicclassAuthSignatureFilterimplementsGlobalFilter,Ordered{staticLoggerlogger=LoggerFactory.getLogger(AuthSignatureFilter.class);/***全局过滤器核心方法*@paramexchange*@paramchain... 继续阅读 >
202110-28 spring cloud gateway中如何读取请求参数 springcloudgateway读取请求参数1.我的版本:spring-cloud:Hoxton.RELEASEspring-boot:2.2.2.RELEASEspring-cloud-starter-gateway2.请求日志importlombok.extern.slf4j.Slf4j;importorg.springframework.cloud.gateway.filter.GatewayFilterChain;importorg.springframework.cloud.gateway.filter.GlobalFilter;importorg.springframework.core.io.buffer.DataBuffer;importorg.springframework.core.io.b... 继续阅读 >
202110-28 Spring Cloud Gateway去掉url前缀 SpringCloudGateway去掉url前缀主要是增加一个route,其他配置不变routes:-id:service_customeruri:lb://CONSUMERorder:0predicates:-Path=/customer/**filters:-StripPrefix=1-AddResponseHeader=X-Response-Default-Foo,Default-Bar新增的StripPrefix可以接受一个非负整数,对应的具体实现是StripPrefixGatewayFilterFactory,从名字就可以看出它的作用是去掉前缀的,那个整数即... 继续阅读 >
202110-15 SpringCloud Gateway 路由配置定位原理分析 环境:springcloudHoxton.SR11本节主要了解系统中的谓词与配置的路由信息是如何进行初始化关联生成路由对象的。每个谓词工厂中的Config对象又是如何被解析配置的。所有的谓词工厂中的Config中属性值是如何被配置的。在SpringCloudGateway中的所有谓词工厂如下:命名规则:XxxRoutePredicateFactory。所有的这些谓词工厂都是如下的继承关系publicclassMethodRoutePredicateFactoryextendsAbstractRoutePredicateFactory<Met... 继续阅读 >
202110-12 springcloud gateway如何实现路由和负载均衡 简介:gateway主要是做路由负载,过滤主要是替代zuul1.x性能比zuul好zuul是基于Servlet,gateway是基于spring-webflux用的netty+reactoryml文件实现路由负载的配置亲自测试spring:application:name:xgyx_gatewaycloud:discovery:locator:enabled:truegateway:routes:-id:a#随便定义不重复就好uri:lb://xgyx-welfareservice-x#服务名称predicate... 继续阅读 >
202109-24 详解SpringCloud新一代网关Gateway 目录一、概述简介1.1、简介1.2、作用二、三大核心概念2.1、Route路由2.2、Predicate断言2.3、Filter过滤2.4、总体三、Getway工作流程四、入门配置4.1、pom4.2、路由配置五、通过微服务名实现动态路由六、Predicate的使用七、Filter的使用7.1、作用7.2、SpringCloudGateway的Filter7.3、自定义过滤器一、概述简介1.1、简介SpringCloudGateway作为SpringCloud生态系统中的网关,目标是替代Zuul,在SpringCloud2.0以上版本中,... 继续阅读 >
202109-20 spring cloud gateway 如何修改请求路径Path 一、背景项目升级改造,老项目使用请求url中特定参数进行服务路由,现使用gateway网关进行路由服务信息二、根据参数信息修改请求路径Path@ComponentpublicclassRequestFilterimplementsGlobalFilter,Ordered{@OverridepublicMono<Void>filter(ServerWebExchangeexchange,GatewayFilterChainchain){ServerHttpRequeststr=exchange.getRequest();if(str.getQueryParams().containsKey("dem... 继续阅读 >