数据库|网络服务在数据库层的支持问题


数据库|网络服务在数据库层的支持问题
  昨天和网络组的同学闲聊 , 突然发现数据和网络层之间已经好久没有沟通了 , 其实这两块的衔接还是非常重要的 , 尤其是在高可用方向 。 我也提出了几个问题 , 每个问题都觉得可以聊好久 , 在先期的沟通中 , 我觉得不着急给出答案 , 得到答案 , 而是经过分析之后更合适的答案 , 所以在文中也是抛出问题 , 而不是刻意给出答案 。
#问题1
服务器配置了Consul域名 , 有的业务使用IP连接 , 有的业务使用Consul 域名连接 , 怎么判断业务到底是使用了IP还是域名?
问题背景:数据库高可用的改造过程中 , 会出现一些业务未改造完整 , 有部分业务使用IP连接的情况 , 这个时候如果数据库发生了故障 , 数据库做了切换 , 从一台服务器切换到另外一台服务器 , 那么业务访问的时候如果还使用IP就会报错 , 如果能够提前预判 , 就能够把问题前置处理
#问题2
目前IP的使用是有基于VIP的使用模式 , IP漂移的过程处理还是比较快的 , 在IP层是否还有其他的解决方案
#问题3
IP转发 , 如果有一台服务器A上面没有实际的数据库 , 有服务器B , 如果需要业务访问服务器A , 能够直接将请求转发至服务器B是否可以实现?
目前讨论了3种实现方式:
1)服务器A转发至服务器B是一种预配置的方式
2)服务器A即时触发 , 转发请求至服务器B难度相对较大
3)在服务器A的配置前侧做相应的配置 , 能够更前置处理
#问题4
如果业务服务器有10台 , 在数据库层面已经开通了防火墙权限 , 那么如何快速验证业务服务器的权限是否已经开通
问题背景:目前业务申请权限后 , 如果数据库端配置有误(通常是数据库用户配置等) , 在业务发布上线时发现问题再紧急处理影响就会比较大
或者是申请数据库权限后过了好几天之后才发现有问题
#问题5
数据库的防火墙里面有很多的服务器IP有些服务器下线了之后其实防火墙信息里面就会始终保留这些信息 , 导致防火墙信息管理比较混乱
如果能够提供相应的机制能够知晓相应的服务器IP已经下线 , 就可以联动处理这些问题
#问题6

数据库容器化中网络层面的支持可以细化到什么粒度?
#问题7
基于域名的方式 , 需要应用服务器安装Consul agent , 同时配置dnsmasq做域名转发 , 如果新增业务都没有使用安装Consul agent , 会基于网络DNS做解析
基于API的方式 , 业务需要一定的改造 , 但是基于API的方式是一种无客户端的状态 , 配置相对简单 , 更容易管理
【数据库|网络服务在数据库层的支持问题】目前两种方式各有利弊 , 如果是基于纯粹IP的方式 , 在一定程度上能够做到隔离 , 即业务服务器访问一个指定的IP可能ping就不通 , 但是这些权限是可以通过防火墙来控制的 。 所以在这个方向上是否有更好的方案?