主要观点总结
文章主要介绍了架构设计中的耦合问题,特别是因内网IP变更导致的上下游耦合。文章提出了使用内网域名替代内网IP的解决方法,并详细阐述了实施步骤和效果。
关键观点总结
关键观点1: 什么是耦合
耦合是架构设计中,原本独立的代码、模块、服务、系统因某些原因联系在一起,影响彼此变动的一种状态。
关键观点2: 如何发现系统中的耦合
技术人在工作中遇到的不必要的联动可能是潜在的耦合,例如因IP配置导致的上下游联动。
关键观点3: 使用内网域名替代内网IP的解耦方法
使用内网域名替代内网IP是解除IP耦合的有效方法。实施步骤包括运维修改内网DNS指向新IP,然后统一切断旧IP连接,通过服务或数据库的重连功能自动连接到新IP。这一方法对于所有上游调用方无需配合修改配置重启。
正文
场景还原
线上有一台数据库服务器,因为某种原因,例如磁盘故障,要进行更换。运维部署了一台新机器,DBA部署好数据库实例,做好了数据,只等调用方切换。
如何切换呢?
原来数据库有个旧IP,现在有个新IP,要通知上游将流量切到新IP上来,怎么办?
一一通知上游切换呗。找到上游,抱歉,IP换了,麻烦修改配置重启一下,连到新的IP上去。
此时你心里可能就在骂娘了,明明变化IP的是别人,为什么配合修改配置重启的人是我。
特别的,如果变换IP的是一个基础服务或者一个基础数据库,调用它的上游很多,那么可能A部门、B部门、C部门,要全部找一遍,全部配合修改配置重启。
所以这个因为IP配置使得上下游耦合在一起的案例,其耦合范围非常广的,