本人在月初刚开发完成、上线一个公司内部的综合管理系统,由于要挂在钉钉上使用,所以有将内网地址解析了公网 IP,一切正常。然而昨天到今天,我发现有一两个表单的数据在新增的时候,总是会丢失几个字段的内容(之前都不会)。
个人分析:
1、可能是解析公网 IP 导致的。因为解析后的 IP 地址固定是一个,但是公司一共有两个运营商的六个公网 IP,貌似在不同情况下回自动切换。而在切换的过程中,刚好系统正在接收数据,所以导致丢失?(网络这方面我懂的不多)
2、系统 bug ?这部分的代码已经检查过若干次,测试环境也正常,应该不是这个原因。
3、也是网络相关。由于是解析后的公网地址,即使在内网访问,也要绕一圈先从外网再到内网,在这过程中又因为某些原因导致数据丢失。
有无大神来指点迷津。
1
Sornets 2019-07-30 09:11:25 +08:00
事务?
|
2
fishlium 2019-07-30 09:13:35 +08:00
我觉得不是网络问题,你直接在内网访问内网地址就可以排出网络问题了
|
3
arthas2234 2019-07-30 09:17:48 +08:00
这种问题复现很容易啊,打日志,把数据打印出来看一眼就知道了
|
4
MonoLogueChi 2019-07-30 09:29:00 +08:00 via Android
那个从内网访问的话数据不会在外网绕一圈,只是解析的时候会有一个流程,而且 DNS 地址是缓存的,只要解析一次就可以好长时间有效
|
5
GuangXiN 2019-07-30 09:30:11 +08:00 via Android
1. 你域名解析出来是哪个 ip 就是哪个 ip,和你公司有几个公网 ip 没关系。除非你自己把六个公网 ip 全加进去了。
2. 你的字段是一次 http 请求中提交的还是多次分部分提交的?如果是后者,你有做提交失败重新发起的处理吗? 3. 只要你是 http 请求里提交数据,就不存在绕一圈会丢失的问题。http 底层的 tcp 协议保证了数据包丢了也会自动重传,重传失败多次会断开连接。上层程序只需要处理成功和失败的情况,不会出现缺少字段的情况。 |
6
lcy630409 2019-07-30 09:34:48 +08:00
你的猜测都错误 没有依据
你在添加数据库的地方 直接把数据写到 txt 里,然后对比缺失数据,首先确定是不是数据库的问题 对了 看看公司的电脑 会不会被别人关电了? |
7
arrow8899 2019-07-30 09:40:05 +08:00
看一下网关的日志,http 不会出现只丢一部分字段的情况,估计是客户端没传。
|
8
encro 2019-07-30 10:16:38 +08:00
http 不存在丢失的问题,所以可能是:
1,客户端丢失了; 2,程序丢失了; 3,数据库丢失了; 4,在其他地方被改写了; 排查方法是:1,接口日志; 2,数据表增加最后修改时间(自动); |
9
yylyan 2019-07-30 10:18:26 +08:00
1,本机多次刷新看下公网 ip 是否更换,一般内网网关设置都是源 ip+目的 ip 端口为同一个连接,不会切换 ip
2,写日志,打 log 3,pppoe 运营商为释放资源,一般会隔几天需重新拨号更换公网 ip,重拨也是一俩分钟的事情,一般不会存在这种问题 |
10
autogen 2019-07-30 10:19:46 +08:00
丢失什么类型的数据? 用户发送的请求后台日志没有搜到,还是数据在 db 里丢了?
|
11
reus 2019-07-30 10:41:49 +08:00
一个 print 就能确定的事情,还要发帖……
|
19
ninechi OP @MonoLogueChi 了解了,受教了,谢谢
|
20
ninechi OP @arthas2234 好的,谢谢
|