一 你们的分布式系统是如何进行链路监控的?都监控什么?

什么是分布式链路追踪
链路监控目的就是为了监控链路性能,方便故障排查。 甩锅方便
下订单之后,直到返回,需要几秒钟
追踪了有什么用,调用链路,链路性能监控,链路故障排查
Google的Dapper,阿里的鹰眼,大众点评的CAT,Twitter的Zipkin,LINE的pinpoint,国产的skywalking,很多,国内一般用CAT和zipkin比较多
其实核心架构就是做一个框架,然后每一次服务调用都要经过这个框架,框架采集调用链路的数据存储起来,然后有可视化界面展示出来每个调用链路,性能,故障,这些东西
订单服务收到这个请求是12:00:00,商品服务收到这个请求是12:00:01,库存服务收到这个请求是12:00:10

二 对分布式系统进行核心链路追踪的时候,链路id是怎么管理的?

traceId 每次请求的入口
spanId 每次服务的调用
parentId 上游服务
timeStamp 调用时间
received_timeStamp 接受时间
send_timeStamp 发送时间

客户端框架生成 追踪记录,每次发请求 都带上,然后再处理。

三 聊聊HTTP协议的工作原理!

http:主要是分为head+body。 http1.0:每次请求都需要单独建立连接,在获取响应后关闭连接。效率低,不利于复杂网页的加载。 http1.1:支持TCP长连接,在请求头里面加了一行keep-alive。从而提高效率。 http2.0:有一些新特性,例如多路复用,首部压缩,服务器推送等等。主要是为了进一步提高性能。

四 聊聊http的长连接的工作原理到底是啥?

http的长短连接,本质上是TCP的socket连接在一次交互完成后是否进行关闭。