AD的交付场景,需求千变万化,AD交付多了,都可以起到开发智力的效果
所以,你永远不能低估每一条虚拟服务
有这样一次交付,应用负载。
客户有主备两个中心,买了一台AD,放在主中心,备中心的还没买
然后有一条虚拟服务AD来发布,主备中心各有3个 节点,一共6个节点。
客户要求是这样的,优先调用主中心的3个节点,如果主中心的3个节点挂掉其中2个,整体切到备中心节点
嗯嗯,合理合理
说起来很简单,但是真正实施的时候,就略显复杂,就算打400 远程支持,也会被告诉这个需求没法满足
但是真的是无法实现?
我们来分析一下
主备中心 两套节点,优先主中心,主中心有问题,调度备中心,这个很好实现,一个前置调度策略就实现了 创建两个节点 默认用备节点 前置调度 调用主中心节点
难点不是这个主备节点池,难点是 如何做到3个节点中 挂掉任意两个就进行节点池切换
切换原理大家应该都明白:前置调度策略里调用的节点池失效了,就进行默认节点池的调度
换句话说,挂掉两个节后,整个节点池要处于一个失效状态。
这里有个解题的关键,健康检查里有一种类型,叫做复合监视器 这个功能很强,堪称探测万花筒 不知道这个的,这个需求就很难实现了
首先 针对节点池里的探测,创建3条单独的健康检查
如上进行每个节点的逐一配置
然后再创建一个类型为复合监视器的健康检查,加入刚创建的3条健康检查策略
最后通过条件那里 选择自定义 编写表达式
我编写的这个意思就是 至少有两个节点探测没问题,节点池生效
最后再把这个符合监视器,放到节点池里
需求实现,get!? |