博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次地址库修改导致的连锁反应
阅读量:6652 次
发布时间:2019-06-25

本文共 786 字,大约阅读时间需要 2 分钟。

hot3.png

应有关部门要求,公司内部通知更改地址库的一些地址信息,对国家最新的一些地址更改做出相应正确的调整,如:上海更改为上海市,XXX县改为XXX区

按照正常逻辑来看,大家都会认为数据库改一下就好了。

真正实践的时候会发现并不是想象中那么简单。

不同的部门或者项目组可能维护着不同的地址数据库,为了解决这个问题,地址库查询服务被归拢为公共服务,提供接口对内外提供服务。

当执行sql更改地址成功上线后,问题就来了。

  1. 问题一: 某核心业务在调用接口查询地址的时候对地址进行了缓存,巧合的是因为历史原因这个缓存在redis里没有设置超时时间,这就使得存在缓存的数据是不会被更新到的,这数据就存在差异了。

  2. 问题二: 某后台管理系统里有读取省市区的配置信息进行不同区域的配置,并且配置结果存储在不同的配置表里,这里导致的问题就是,虽然地址库更改了,但是有原来的配置页面读取和写入的省市区数据还是以前的结果,这就导致了配置的突然失效。

涉及到更改这种基础数据的时候还是要仔细一点,另外一个很重要的就是测试没有完全覆盖到这种情况,不说完全覆盖,我们开发自己本身的单元测试用例都没有,没法对项目本身做简单的自测,业务过于广,接口太稀疏,没有收拢,零散分布在不同的地方甚至重复造轮子,测试人员本身也不知道该测哪些地方,有哪些地方涉及到了更改基础地址库会有影响。

我自己也思考了下,这类问题能改进的地方:

  1. 对接口进行收拢,不要重复的造轮子,不过这需要一个站在高处的人去做代码审查,甚至主导重构一些小模块,保证项目的精简
  2. 基础服务应该统一,不要分的太散,更不能允许每一个项目组都维护一个基础服务表。
  3. 不能因为要完成一件事情而去做,做完了就不管了,有时候问题并不会在刚改的时候就出现,是有潜伏期的。

转载于:https://my.oschina.net/110NotFound/blog/3037195

你可能感兴趣的文章
(转)sqlite developer注册方法
查看>>
最大值 最小值 最初值 最末值
查看>>
Anagrams
查看>>
iphone手机分辨率--持久维护
查看>>
DRP——Servlet(一)
查看>>
pydoc介绍
查看>>
使用rsyslog+loganalzey收集日志显示客户端ip
查看>>
EF实现主从表自动生成主键保存
查看>>
Atitit.程序包装exe启动器 打包 发布 设计 -生成exe java
查看>>
Mac下MySQL卸载方法 转载
查看>>
Chrome for Android在Chromium代码库中的提交patch
查看>>
iphone 拨打电话的 两种方法-备
查看>>
python小程序:备份文件
查看>>
为什么HikariCP被号称为性能最好的Java数据库连接池,怎样配置使用
查看>>
高德地图API INVALID_USER_SCODE问题以及keystore问题
查看>>
C# WinForm 添加Windows Media Player 控件调试出现未能加载文件或程序集Interop.WMPLib,该怎么解决...
查看>>
C# 抓取网页Html源码 (网络爬虫)
查看>>
盖得化工4——多线程+余数
查看>>
iOS开发小技巧--适当的清空模型中的某个数据,达到自己的需求,记得最后将数据还原(百思项目评论页面处理最热评论)...
查看>>
物联网网络编程、Web编程综述
查看>>