昨天和网络组的同学闲聊,突然发现数据和网络层之间已经好久没有沟通了,其实这两块的衔接还是非常重要的,尤其是在高可用方向。我也提出了几个问题,每个问题都觉得可以聊好久,在先期的沟通中,我觉得不着急给出答案,得到答案,而是经过分析之后更合适的答案,所以在文中也是抛出问题,而不是刻意给出答案。
#问题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就不通,但是这些权限是可以通过防火墙来控制的。所以在这个方向上是否有更好的方案?
本文转载自微信公众号「杨建荣的学习笔记」,可以通过以下二维码关注。转载本文请联系杨建荣的学习笔记公众号。