公有云项目方案咨询中一些常见问题(二)

        一、用户提出采用域名DNS设置进行不同服务器的业务负载均衡是否可行?

        用户拟在运营商租用了多台的服务器,都为提供业务交易查询的web服务器。用户提出准备使用自购的dns服务进行单个域名的多个ip地址设置,已完成业务交易查询的web服务器的负载均衡。粗一听,好像挺完美的方案,但实际不可行。

        原因1:服务器down机,DNS是不知道的,而修改DNS完成全网同步,一般需要三小时以上。原因2:DNS一般是轮询机制,无法根据业务真实负载进行均衡。原因3:DNS存在本地会话保持,如果是需要身份验证的网站,在不修改软件构架的情况下,这点是比较致命的。因为DNS解析无法将验证用户的访问持久分配到同一服务器。虽然有一定的本地DNS缓存,但是很难保证在用户访问期间,本地DNS不过期,而重新查询服务器并指向新的服务器,那么原服务器保存的用户信息是无法被带到新服务器的,而且可能要求被重新认证身份。

        该问题的需求处理建议如下:1、使用智能DNS(GSLB)完成向不同运营商的客户返回不同的IP地址。同时智能DNS具有健康状态检测功能,当解析出的IP地址不可达时,会将其它可用的IP地址返回。2、在智能DNS下启用F5弹性负均衡机制。3、在F5的SLB设备下还可以用启Ngnix的缓存服务、多服务器均衡机制。

        感觉挺复杂,但在一般项目中,F5(SLB)+多台服务器已足够了。:)

 

        二、我的交易系统受到部分城市用户的恶意攻击,想进行阻断,天翼云SLB能不能帮到我?

        这是客户的真实需求。在上云之前,用户采用在F5中将一段恶意用户的IP地址段设置到F5的黑名单中,阻断访问;或在F5中强制将业务流量指向其它的服务器,以避免对正常用户的访问。但上天翼云后,SLB不再提供类似功能,如何解决。

        我的解决办法其实需要得到客户的帮助,方案为SLB+Ngnix,在Ngnix中进行业务分流。这样实施后,有可能误伤一些真实用户,但至少提供了服务,而不是服务器被全部拖垮。

        如:ngnix中的代码

        set $flag = 0;

        if ($http_user_agent ~* "spider"){

            set $flag "1";

        } 

        if ($flag ="0"){

            //代理至正常集群

        } else if ($flag ="1"){

            //代理至低等级的集群

        }

        

        三、在两台物理服务器下挂同一个共享磁盘,实现数据库的共享是否可行?

        这也是客户的真实解决方案,但被我们否掉。客户未使用Oracle Rac等集群管理软件,而准备在共享磁盘中划两个分区,不同的服务器数据库文件写入不同的分区中,不同分区的数据库同步采用ADG方案。

        听起来没有什么问题。但真实的实践中,已问题明显出现。1、操作系统存在缓存,另一台服务器可能看不到写入的数据。在该案例场景中应不会出现该问题。2、更致命的问题是,如果没有集群软件的协助,两台服务器写入的数据可能会存在互相覆盖的情况。

        因此,该问题最后解决办法还是走回最简单的办法,不同服务器挂不同的硬盘。

 

希望以上文章能帮到您。

更多内容实时更新,请访问公众号。    

 

点击这里,获取最高¥1888阿里云产品通用代金券

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值