【网络排查】用于接口不通,mysql,kafka等数据库介质连不上的排查 & TCP的特点

这篇文章记录生产实践中遇到的网络不通的例子


前言

接口调用不同了了怎么办? 就找接口服务提供方,肯定是提供方的问题的,跟调用方有啥关系~
kafka,mysql等数据库介质或者消息中间件连不上了怎么办?找运维啊,网络问题我一开发能怎办~
这种回答对不对呢,也对也不对,说他对这样做能扯皮,说它不对,实际不利于开发工程师的成长。


那么问题来了,为啥你们的通信是不通的?
备注:接口不通,mysql,kafka等数据库介质连不上 都说通信协议的故障,那么我们都知道通信协议有7层,4层或者5层(自行百度下,他们这样划分的区别)~ 把图也贴出来:
在这里插入图片描述

1. 网络协议

每一层都有什么手段来查询,都有哪些排查工具呢?

1.1 应用层

应用层的排查工具就太多了,谈谈 HTTP 应用的排查工具。
Chrome,它本身就内置了一个开发者工具。在 Chrome界面里按下 F12

找到有问题的服务端 IP

用户报告访问不了网站,这个网站的域名对应了很多 IP 地址,如何确定用户连的是哪个 IP 呢?

让客户(或者远程控制)启用开发者工具,在 Network 页找到主页对象,在它的 Headers部分,就能看到 Remote address,这里的 IP 就是当前连接的 IP
在这里插入图片描述
DNS 解析的关系,下次重连就不是这个 IP了,所以每次都应该重新确认一下这个信息。

在排查公网的访问问题有用。要知道,现在流量的网站都已经上了 CDN,在全国乃至全球有数十个或者数百个 CDN 终端节点,在给访问者提供就近的服务。如果有人某个站点了,让他用开发者工具,找到他连的远程 IP,然后你再根据这个信息展开排查工作。

辅助排查网页慢的问题

访问页面感觉很慢,用开发者工具的时间统计功能,找到耗时较高的 HTTP 资
源对象,再针对性排查。到 Network 页查看这些 HTTP 对象的加载时间。
在这里插入图片描述
这个办法排查到是哪个资源对象耗时长,更进一步的排查,“为什
么这个对象的加载时间比别的对象长",开发者工具就难以回答了。需要抓包分析,根本性地排查这类问题

1.2 TCP的特点

1.面向连接
通信双方必须先建立好连接才能进行数据的传输,并且双方会为此连接分配必要资源用来记录连接的状态和信息.当数据传输完成后,双方必须断开此连接,以释放系统资源.
2.可靠性传输
TCP采用发送应答机制:
通过TCP这种方式发送的每个报文段都必须得到接收方的答应才认为这个TCP报文段传送成功
超时重传:
发送端发送一个报文之后就会重启定时器,如果指定时间内没有得到应答就会重新发送这个报文
错误校验:
TCP用一个校验和函数来校验数据是否错误,在发送和接收是都要进行计算校验和.
流量控制和阻塞管理:
流量控制用来避免发送端发送过快而使得接收方来不及接收

网络传输必须是以二进制的形式 进行传输.
python的数据编码减缓, encode, 编码 将字符串转成为字节码
decode 解码 将字节码转化为字符串

# encode 和 decode函数可以接受参数,encoding是指在编码过程中使用的编码方案.
bytes.decode(encoding="utf-8")
str.encode(encode="utf-8")

总结

提示:这里对文章进行总结.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值