An affinity-based router and method for routing and load balancing in an
encapsulated cluster of server nodes is disclosed. The system consists of
a multi-node server, wherein any of the server nodes can handle a client
request, but wherein clients have affinity to one or more of the server
nodes that are preferred to handle a client request. Such affinity is due
to state at the servers either due to previous routing requests, or data
affinity at the server. At the multi-node server, a node may be designated
as a TCP router. The address of the TCP router is given out to clients,
and client requests are sent thereto. The TCP router selects one of the
nodes in the multi-node server to process the client request, and routes
the request to this server; in addition, the TCP router maintains affinity
tables, containing affinity records, indicating which node a client was
routed to. In processing the client request, the server nodes may
determine that another node is better suited to handle the client request,
and may reset the corresponding TCP router affinity table entry. The
server nodes may also create, modify or delete affinity records in the TCP
router affinity table. Subsequent requests from this client are routed to
server nodes based on any affinity records, possibly combined on other
information (such as load).
Un router e un metodo affinità-basati per il percorso ed il carico che equilibrano in una serie di ingranaggi incapsulata dei nodi dell'assistente è rilevato. Il sistema consiste di un assistente di multi-nodo, in cui c'è ne dei nodi dell'assistente possono maneggiare una richiesta del cliente, ma in cui i clienti hanno affinità ad uno o più dei nodi dell'assistente che sono preferiti per maneggiare una richiesta del cliente. Tale affinità è dovuta dichiarare agli assistenti uno dovuto le richieste precedenti di percorso, o all'affinità di dati all'assistente. All'assistente di multi-nodo, un nodo può essere indicato come router di TCP. L'indirizzo del router di TCP è dato fuori ai clienti e le richieste del cliente sono trasmesse a ciò. Il router di TCP seleziona uno dei nodi nell'assistente di multi-nodo per procedere la richiesta del cliente e dirige la richiesta a questo assistente; in più, il router di TCP effettua le tabelle di affinità, contenendo le annotazioni di affinità, indicanti quale nodo un cliente è stato diretto. Nell'elaborazione della richiesta del cliente, i nodi dell'assistente possono determinare che un altro nodo sia adatto meglio per maneggiare la richiesta del cliente e possono ripristinare l'entrata corrispondente della tabella di affinità del router di TCP. I nodi dell'assistente possono anche generare, modificare o cancellare le annotazioni di affinità nella tabella di affinità del router di TCP. Le richieste successive da questo cliente sono dirette ai nodi dell'assistente basati su tutte le annotazioni di affinità, possibilmente unite su altre informazioni (quale il carico).