IT袋

当前位置:主页 > 经验教程 > 建站编程 >

502错误是什么、应该怎么排查

502错误是什么、应该怎么排查?

时间:2024-03-20 15:00:39 来源:IT袋 作者:马勇
导读:502错误是什么、应该怎么排查,全面的为大家介绍502错误是什么、应该怎么排查方面的介绍,一起来看看吧! 刚工作那会,有一次,上游调用我服务的老哥说,你的服务报502错误了,快去看看是为什么

502错误是什么、应该怎么排查

全面的为大家介绍502错误是什么、应该怎么排查方面的介绍,一起来看看吧!

刚工作那会,有一次,上游调用我服务的老哥说,你的服务报”502错误了,快去看看是为什么吧”。

当时那个服务里正好有个调用日志,平时会记录各种200,4xx状态码的信息。于是我跑到服务日志里去搜索了一下502这个数字,毫无发现。于是跟老哥说,”服务日志里并没有502的记录,你是不是搞错啦?”

现在想来,多少有些不好意思。

不知道有多少老哥是跟当时的我是一样的,这篇文章,就来聊聊502错误是什么?

我们从状态码是什么开始聊起。

HTTP状态码

我们平时在浏览器里逛的某宝和某度,其实都是一个个前端网页。

一般来说,前端并不存储太多数据,大部分时候都需要从后端服务器那获取数据。

于是前后端之间需要通过TCP协议去建立连接,然后在TCP的基础上传输数据。

而TCP是基于数据流的协议,传输数据时,并不会为每个消息加入数据边界,直接使用裸的TCP进行数据传输会有”粘包”问题。

因此需要用特地的协议格式去对数据进行解析,于是在此基础上设计了HTTP协议。

比如,我想要看某个商品的具体信息,其实就是前端发的HTTP请求中传入商品的id,后端返回的HTTP响应中返回商品的价格,商店名,发货地址的信息等。

502错误是什么、应该怎么排查

通过id获取商品详情

这样,表面上,我们是在刷着各种网页,实际上背后正有多次HTTP消息在不断进行收发。

502错误是什么、应该怎么排查

用户在网上浏览商品

但问题就来了,上面提到的都是正常情况,如果有异常情况呢,比如前端发的数据,根本就不是个商品id,而是一张图片,这对于后端服务端来说是不可能给出正常响应的,于是就需要设计一套HTTP状态码,用来标识这次HTTP请求响应流程是否正常。通过这个可以影响浏览器的行为。

比方说一切正常,那服务端返回个200状态码,前端收到后,可以放心使用响应的数据。但如果服务端发现客户端发的东西异常,就响应个4xx状态码,意思是这是个客户端的错误,4xx里头的xx可以根据错误的类型,再细分成各种码,比如401是客户端没权限,404是客户端请求了一个根本不存在的网页。反过来,如果是服务器有问题,就返回5xx状态码。

502错误是什么、应该怎么排查

4xx和5xx的区别

但问题就来了。

服务端都有问题了,搞严重点,服务器可能直接就崩溃了,那它还怎么给你返回状态码?

是的,这种情况,服务端是不可能给客户端返回状态码的。所以说,一般情况下5xx的状态码其实并不是服务器返回给客户端的

它们是由网关返回的,常见的网关,比如nginx

nginx的作用

回到前后端交互数据的话题上,如果前端用户少,那后端处理起请求来,游刃有余。

但随着用户越来越多,后端服务器受资源限制,cpu或者内存都可能会严重不足,这时候解决方案也很简单,多搞几台一样的服务器,这样就能将这些前端请求均摊给几个服务器,从而提升处理能力。

但要实现这样的效果,前端就得知道后端具体有哪些个服务器,并一一跟他们建立TCP连接。

相关阅读

  • kafka是什么 主要特点有哪些?

    kafka是什么 主要特点有哪些?

    IT袋网网为你介绍kafka是什么的IT知识,一定能解决您的问题的,一起来了解吧! Kafka 是一个开源的分布式流式平台,它可以处理大量的实时数据,并提供高吞吐量,低延迟,高可靠性和高可扩

  • access数据库入门教程 数据库零基础入门教学

    access数据库入门教程 数据库零基础入门教学

    今天小编详解access数据库入门教程和数据库零基础入门教学的相关介绍,继续往下看吧! Access数据库除了选择查询,还有操作查询,它们有: 更新查询 生成表查询 追加查询 删除查询 来看看

  • c语言怎么输出语句 C#中怎样快速输出{get;set;}

    c语言怎么输出语句 C#中怎样快速输出{get;set;}

    对于c#初学者来说,可能是受教程的影响,看到老师在Visual Studio中瞬间就可以快速敲出{get;set;},但是自己却不知道怎么敲?老师也不告诉,其实老师这样做是有目的的,让你自己多动手去熟悉

  • 使用双异步后 如何保证数据一致性?

    使用双异步后 如何保证数据一致性?

    小编为大家说一说使用双异步后的相关知识,下面小编为您详细解答 很简单,通过对比Excel文件行数和入库数量是否相等即可。 那么,如何获取异步线程的返回值呢? 一、通过Future获取异步返