A súlyok standardizálása a terheléselosztáshoz # 4198

Hozzászólások

Link másolása Idézet válasz

szám

pierresouchay kommentálta 2018. június 6

Funkció leírása

Ha a Consul segítségével fordított proxy-k hátterét fedezi fel, akkor most már meg lehet tippelni az adott háttérprogram súlyát.

Mivel a háttérprogramok különböző csomópontokon futnak, jó lenne, ha a Consulban szabványosítanám, hogy mennyi hívást irányítanak át egy adott példányra, így az összes proxy és könyvtár ugyanazokat a szabályokat használhatja. Történelmileg egyes proxyk/könyvtárak címkéket használnak, mások mások a Meta-t kezdik el használni, de mindez rendetlenség.

Néhány proxy DNS SRV-t használ (pl .: HaProxy), néhány más HTTP API-t, jó lenne, ha ugyanazok az adatok lennének mindkét.

Javaslom a következőket:

  1. Adjon hozzá metaadatokat a Szolgáltatások speciális szemantikájához a terheléselosztással kapcsolatban
  2. Adja vissza az adatokat HTTP és SRV DNS-interfészekben
  3. Engedélyezze a figyelmeztetési állapot használatát a DNS-válaszban a tömeg dinamikus módosítására (ez lehetővé tenné az erősen megterhelt szolgáltatások számára, hogy kevesebb forgalmat fogadjanak, például amikor túl sok kérést kapnak, és visszatérnek a figyelmeztető állapotok)

Végrehajtási javaslat

A szolgáltatás definiálásakor használja a következő opcionális Meta szolgáltatást:

Amikor a DNS visszaküldi az SRV kérelmeket, minden SRV rekordhoz alkalmazza a megfelelő _dns_ _weight és _dns_ _prio elemeket a DNS SRV rekordok kitöltésére

Ez nagyon könnyen megvalósítható, és nagyon egyszerűsítené a terheléselosztó rendszerek átjárhatóságát.

Opcionálisan használhatunk hasonló metaadatokat is csomópont szinten (az ügynökben definiálva) annak érdekében, hogy ezeket a súlyokat a csomópont jellemzői alapján megszorozzuk (így a szolgáltatásoknak nem kellene tudniuk, hogy milyen nagy/apró példányon futnak) - de javulás lehet egy másik PR esetében.

Mit gondolsz?

Készen állok ennek megvalósítására, ha a Hashicorp fontolóra veszi annak bevonását.