11.1. Логические компоненты балансировщика

Для работы балансировщика необходимы только 4 компонента: Worker, Target-группа, Access point и Сервис.

Вначале создается Target-группа, к которой привязывается Worker (сервер).

Потом создается Сервис, к которому привязывается Target-группа с Worker.

И в конце к Сервису привязывается Access point.

Остальные компоненты являются дополнительными и служат для расширения функционала балансировщика.

digraph {
     bgcolor="transparent";
     node [shape=box, color="white", fontcolor="white"];
     edge [color="white", fontcolor="white"];

     W [label = "Worker"];
     TG [label = "Target-группа"];
     S [label = "Сервис"];
     AP [label = "Access point"];
     C [label = "Сертификаты"];
     TCP [label = "TCP-профиль"];
     HM [label = "Health Monitor"];
     NAT [label = "NAT pool"];
     PER [label = "Persistence-группа"];
     ACL [label = "Access-лист"];

     ACL -> AP [style = "dotted"];
     W -> TG [minlen = 4];
     AP -> S [minlen = 3];
     TG -> S [minlen = 4];
     NAT -> W [style = "dotted"; minlen = 4];
     NAT -> TG [style = "dotted"];
     HM -> W [style = "dotted"; minlen = 4];
     TCP -> W [style = "dotted" minlen = 4];
     TCP -> S [style = "dotted" minlen = 4];
     TCP -> TG [style = "dotted"];
     C -> S [label = <<i>  SSL/HTTPS</i>>; style = "dotted"; minlen = 4];
     C -> HM [label = <<i><br />HTTPS</i>>; style = "dotted"];
     C -> TG [style = "dotted"; minlen = 4];
     C -> W [style = "dotted"];
     PER -> S [style = "dotted"; minlen = 4];


     subgraph {
         rank="same";
         AP;
         S;
         W;
     }

     subgraph {
         rank="same";
         TG;
     }

     { rank = max; TG; }
     { rank = min; C; TCP; HM; NAT; PER; }
 }
digraph {
    bgcolor="transparent";
    node [shape=box, color="#000000", fontcolor="#000000"];
    edge [color="#000000", fontcolor="#000000"];

    W [label = "Worker"];
    TG [label = "Target-группа"];
    S [label = "Сервис"];
    AP [label = "Access point"];
    C [label = "Сертификаты"];
    TCP [label = "TCP-профиль"];
    HM [label = "Health Monitor"];
    NAT [label = "NAT pool"];
    PER [label = "Persistence-группа"];
    ACL [label = "Access-лист"];

    ACL -> AP [style = "dotted"];
    W -> TG [minlen = 4];
    AP -> S [minlen = 3];
    TG -> S [minlen = 4];
    NAT -> W [style = "dotted"; minlen = 4];
    NAT -> TG [style = "dotted"];
    HM -> W [style = "dotted"; minlen = 4];
    TCP -> W [style = "dotted" minlen = 4];
    TCP -> S [style = "dotted" minlen = 4];
    TCP -> TG [style = "dotted"];
    C -> S [label = <<i>  SSL/HTTPS</i>>; style = "dotted"; minlen = 4];
    C -> HM [label = <<i><br />HTTPS</i>>; style = "dotted"];
    C -> TG [style = "dotted"; minlen = 4];
    C -> W [style = "dotted"];
    PER -> S [style = "dotted"; minlen = 4];


    subgraph {
        rank="same";
        AP;
        S;
        W;
    }

    subgraph {
        rank="same";
        TG;
    }

    { rank = max; TG; }
    { rank = min; C; TCP; HM; NAT; PER; }
}