公司的一个内网系统,映射到外网,可随时访问,最近几天发现会丢失数据

2019-07-30 09:07:30 +08:00
 ninechi

本人在月初刚开发完成、上线一个公司内部的综合管理系统,由于要挂在钉钉上使用,所以有将内网地址解析了公网 IP,一切正常。然而昨天到今天,我发现有一两个表单的数据在新增的时候,总是会丢失几个字段的内容(之前都不会)。

个人分析:

1、可能是解析公网 IP 导致的。因为解析后的 IP 地址固定是一个,但是公司一共有两个运营商的六个公网 IP,貌似在不同情况下回自动切换。而在切换的过程中,刚好系统正在接收数据,所以导致丢失?(网络这方面我懂的不多)

2、系统 bug ?这部分的代码已经检查过若干次,测试环境也正常,应该不是这个原因。

3、也是网络相关。由于是解析后的公网地址,即使在内网访问,也要绕一圈先从外网再到内网,在这过程中又因为某些原因导致数据丢失。

有无大神来指点迷津。

3671 次点击
所在节点    程序员
22 条回复
Sornets
2019-07-30 09:11:25 +08:00
事务?
fishlium
2019-07-30 09:13:35 +08:00
我觉得不是网络问题,你直接在内网访问内网地址就可以排出网络问题了
arthas2234
2019-07-30 09:17:48 +08:00
这种问题复现很容易啊,打日志,把数据打印出来看一眼就知道了
MonoLogueChi
2019-07-30 09:29:00 +08:00
那个从内网访问的话数据不会在外网绕一圈,只是解析的时候会有一个流程,而且 DNS 地址是缓存的,只要解析一次就可以好长时间有效
GuangXiN
2019-07-30 09:30:11 +08:00
1. 你域名解析出来是哪个 ip 就是哪个 ip,和你公司有几个公网 ip 没关系。除非你自己把六个公网 ip 全加进去了。

2. 你的字段是一次 http 请求中提交的还是多次分部分提交的?如果是后者,你有做提交失败重新发起的处理吗?

3. 只要你是 http 请求里提交数据,就不存在绕一圈会丢失的问题。http 底层的 tcp 协议保证了数据包丢了也会自动重传,重传失败多次会断开连接。上层程序只需要处理成功和失败的情况,不会出现缺少字段的情况。
lcy630409
2019-07-30 09:34:48 +08:00
你的猜测都错误 没有依据
你在添加数据库的地方 直接把数据写到 txt 里,然后对比缺失数据,首先确定是不是数据库的问题
对了 看看公司的电脑 会不会被别人关电了?
arrow8899
2019-07-30 09:40:05 +08:00
看一下网关的日志,http 不会出现只丢一部分字段的情况,估计是客户端没传。
encro
2019-07-30 10:16:38 +08:00
http 不存在丢失的问题,所以可能是:
1,客户端丢失了;
2,程序丢失了;
3,数据库丢失了;
4,在其他地方被改写了;

排查方法是:1,接口日志; 2,数据表增加最后修改时间(自动);
yylyan
2019-07-30 10:18:26 +08:00
1,本机多次刷新看下公网 ip 是否更换,一般内网网关设置都是源 ip+目的 ip 端口为同一个连接,不会切换 ip
2,写日志,打 log
3,pppoe 运营商为释放资源,一般会隔几天需重新拨号更换公网 ip,重拨也是一俩分钟的事情,一般不会存在这种问题
autogen
2019-07-30 10:19:46 +08:00
丢失什么类型的数据? 用户发送的请求后台日志没有搜到,还是数据在 db 里丢了?
reus
2019-07-30 10:41:49 +08:00
一个 print 就能确定的事情,还要发帖……
ninechi
2019-07-30 13:37:06 +08:00
@reus 哈哈哈,不懂就要问
ninechi
2019-07-30 13:38:20 +08:00
@autogen int 型,估计是在数据库丢失的。前端 js 有判断必填项,否则不能提交
ninechi
2019-07-30 13:38:45 +08:00
@yylyan 好的,谢谢
ninechi
2019-07-30 13:39:44 +08:00
@encro 估计第 3、4 点的概率大。系统日志有查了没有报错
ninechi
2019-07-30 13:40:41 +08:00
@arrow8899 网络的管理不在我这边,我去找网络工程师问问
ninechi
2019-07-30 13:41:00 +08:00
@lcy630409 好的,谢谢指点
ninechi
2019-07-30 13:41:19 +08:00
@GuangXiN 受教了,谢谢
ninechi
2019-07-30 13:41:51 +08:00
@MonoLogueChi 了解了,受教了,谢谢
ninechi
2019-07-30 13:42:20 +08:00
@arthas2234 好的,谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/587346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX