Forum Discussion

PatrickCox's avatar
PatrickCox
Icon for Altocumulus rankAltocumulus
Mar 27, 2025

Flip-flop load balancing

Interesting request from a client...

There are two members in a pool: Node1 and Node2.  Currently Node1 has a higher priority.

Should Node1 become unavailable, traffic then goes to Node 2.  Of course.

 

Now the kicker:

Node 2 will continue to handle traffic regardless of the state of Node 1.  Even if Node1 becomes available, traffic will go to Node2.  Setting priority in the pool members will not work for this.

This behaviour continues until such a time when Node2 becomes unavailable.  Then traffic flow would go to Node1.  Node 1 will continue to handle traffic regardless of the state of Node 2.

 

I am thinking a Universal persistence with an iRule and/or and external Monitor has to be in the mix to make this work.

Thoughts??

 

...Patrick

3 Replies

  • Hi Patrick,

    After node1 is up again, if there is no persistence record for new connections, traffic goes to node1. If there is a persistence record, new connections will go to node2 unless there is a persistence timeout. Active connections remain on node2 until they are terminated or timeout.  

    When node1 is up, do you want to terminate active connections on node2?

    • PatrickCox's avatar
      PatrickCox
      Icon for Altocumulus rankAltocumulus

      No.  All traffic should go to a single pool member (Node1).  If that pool member becomes unavailable, traffic goes to the other pool member (Node2), and continues to go to this pool member (Node2) regardless of the state of the other pool member (Node1).

      Traffic will continue to go to Node2 until it becomes unavailable, then traffic goes to Node1 and continues to go to this node regardless of the state of Node2.

      and so on, and so on....

       

      The theory is the server admins can do whatever they want with the node currently not receiving traffic without fear of it unexpectedly taking on traffic from the virtual server.

      • Enes_Afsin_Al's avatar
        Enes_Afsin_Al
        Icon for MVP rankMVP

        It is possible with universal persistence and a simple iRule.

        when CLIENT_ACCEPTED { 
          persist uie 1
        }

         

        K000140287: Direct traffic to only a single node in a pool at a time using Single Node Persistence

        https://my.f5.com/manage/s/article/K000140287