GateWay网关访问服务出现503的问题解决
问题描述
在分布式服务中,使用GateWay网关进行服务请求路由的统一管理,它是系统对外的唯一入口。为了让网关能正常发送调用其他服务,我使用到了Nacos服务注册中心。
正是这样出现了,我通过服务端口,能正常访问接口返回数据,通过网关访问有时可以有时不行的情况(也就是出现503的状态码反馈)。
HTTP状态码503指的是web服务器不能处理HTTP请求。原因大致如下:
- 站点遭到攻击,在超过限制时报503错误,待攻击停止就可以恢复了
- 站点规模较大,并发请求过多,这种建议修改优化程序或需要升级更高类型主机
- 程序有错误,在短时间内产生多次工作进程崩溃,会因为IIS7的快速肚胀防护功能而关闭程序池
- 站点提供下载,当宽带超过限制时会报错,需要停止下载功能,后者升级主机解决
那么根据上面这四个原因我还是没有分析出为什么会出现这个问题。于是我开始一步步排查问题。
我首先认为是我GateWay网关,拦截配置的问题,可是我的情况是有时出现503,有时又能通过网关正常访问,所以暂时排除了这种情况。
是否本身的单体服务有问题,但是通过postman的测试,通过服务的端口访问接口,都能正常返回数据。所以也暂时排除这种情况。
Nacos注册中心的问题。
那基本能确定是Nacos注册中心的问题了,但也不完全是Nacos的锅。
再次分析:
F12查看Network,请求的发送情况,发现OPTIONS预检请求是正常发送的,但发送真正的请求的时候出现了503的错误。如下图:
我们可以通过错误提示很清晰的看到message的反馈,就是发现不了我的product服务。
和我们判断的没错是nacos的问题,于是我进入nacos查看服务是否注册成功。
这里就发现了一个很奇怪的现象,正常的我们刷新nacos的界面服务是不会掉的,但是我的product商品服务,一会有一会儿又没有,刚开始我发现了这个问题,但没有引起注意,也就导致这个问题之前一直没有得到解决。
解决
于是,我抱着再试一试的心态,将该服务的端口号从8001改为了8010,也就是改为了其他的数(或者修改一下服务名),这个服务就在nacos注册中心稳定了。(前提是确保你的服务Nacos配置没有问题)
这其实是一个很容易解决的bug,但是之前网上找过都没有得到好的解决。
让我想到了idea在使用过程中确实存在一些bug,常见的就是
创建继承maven项目数量多了之后,项目结构就会不一样,需要手动修改,或者更换项目名才能解决。
使用springboot的过程中有些端口无法使用,这种无法使用是由于idea和系统的问题,你能正常跑通你的项目,但是这个项目你无法通过客户端访问,只要访问就是500服务器错误。
同时这里强调,不是因为什么端口被占用的问题,端口如果被占用,连服务都是无法启动的,所以这就是一些简单又很坑人的地方。
如果您有幸看到了这篇文章,希望对您有帮助,解决到您的问题。
GateWay网关访问服务出现503的问题解决相关推荐
- gateway网关请求服务的400错误
gateway网关请求服务job-service时,前端的请求结果如下: Request URL: http://127.0.0.1:8080/job/task/xxx.do?pageindex=1& ...
- gateway网关_使用Sentinel实现gateway网关及服务接口限流
点击关注"阿甘正专",设为星标 奇迹每天都在发生,等你而来 1.Sentinel 简介 1.1 Sentinel是什么: 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.S ...
- SpringCloud + Consul服务注册中心 + gateway网关
1 启动Consul 2 创建springcloud-consul项目及三个子模块 2.1 数据模块consul-producer 2.2 数据消费模块consul-consumer 2.3 ga ...
- 【硬核】Spring Cloud Gateway(网关)
概念 Gateway是基于异步非阻塞模型上进行开发的,有springcloud团队开发.用来代替Zuul. 近几个月收集了收集了N份精校过的PDF版的Java八股文大全,涉及Java后端的方方面面,分 ...
- 解决SpringCloud的Gateway网关无法访问服务的静态资源
解决SpringCloud的Gateway网关无法访问服务的静态资源 在重构项目的时候,配置gateway网关后,利用网关地址访问服务,发现服务的静态资源报了404 报错如下: gateway网关配置 ...
- Getaway网关访问微服务:503,Service Unavailable
Getaway网关访问微服务:503,Service Unavailable.请求路径:localhost:1000/user/test,请求响应结果如下 {"timestamp" ...
- SpringCloud微服务架构之,Hystrix 熔断器,Gateway 网关
Hystrix 概述 Hystix 是 Netflix 开源的一个延迟和容错库,用于隔离访问远程服务.第三方库,防止出现级联失败(雪崩). pom依耐 <!-- hystrix -->&l ...
- spring cloud gateway 网关_微服务网关Spring Cloud Gateway全搞定
一.微服务网关Spring Cloud Gateway 1.1 导引 文中内容包含:微服务网关限流10万QPS.跨域.过滤器.令牌桶算法. 在构建微服务系统中,必不可少的技术就是网关了,从早期的Zuu ...
- SpringCloud Hoxton版微服务- Gateway网关
Gateway网关 一.Gateway概念 二.三大核心概念 1.Route (路由) 2.Predicate (断言) 3.Filter (过滤) 三.工作流程图 四.工程搭建 1.新建Gatewa ...
最新文章
- 关于ngOptions的键值对
- 笔记本卡顿不流畅是什么原因_电脑卡顿不流畅是什么原因
- 快钱支付与Sql Server的乐观锁和悲观锁
- 基于HLS流媒体协议的视频加密方案
- codeforces 808d
- 在wp中,使用NavigationService.Navigate导航页面出现错误
- php 强制返回,php – 我可以强制抽象类的方法返回一些东西吗?
- 复变函数系列(三 ) - 复变函数的积分
- 服务器设置客户端网页安装,网页服务器和客户端
- JAVA 读取txt文件内容
- 15年3月CCF真题2-数字排序
- Python100经典练习题,附答案
- Rdp报表 参数配置 (基于2.4.2版本 添加查询条件)
- Java内存模型(Java并发编程的艺术整理)
- OFDM-训练序列与导频
- 一文看懂STM32单片机和51单片机区别
- java清除浏览器缓存
- NOIP 模拟题 国际跳棋
- 美式期权损益图matlab,一看就懂,盈亏全在图上了,超实用的期权损益图绘制
- 爬虫爬取站长素材图片 (使用scrapy和imagespipeline)