Middle
Milliseid koormuse jaotureid teate? Milline on teie kogemus nendega ja milliseid tehnoloogiaid olete kasutanud?
sobes.tech AI
Vastus AI-lt
Tuntud on järgmised koormuse jaotamise tüübid:
- Seadme (Hardware Load Balancers): Spetsialiseeritud seadmed. Näide: F5 BIG-IP.
- Tarkvara (Software Load Balancers): Töötavad tarkvarana. Näited: HAProxy, Nginx, AWS Elastic Load Balancing (ELB), Google Cloud Load Balancing, Azure Load Balancer.
On kogemusi HAProxy ja Nginx tarkvaraliste koormuse jaotajatega ning pilveteenuste AWS ELB-ga.
HAProxy:
- Kasutatud TCP ja HTTP liikluse jaotamiseks.
- Seadistused tehti konfiguratsioonifailide kaudu.
- Kasutatud:
- HTTP päringute jaotamiseks veebiserverite vahel.
- Kõrge kättesaadavuse tagamiseks andmebaasidele (TCP liiklus).
- Teostatud:
- Jaotamisalgoritmid (round-robin, leastconn).
- Serverite töö kontrollid.
- SSL terminatsioon.
# HAProxy konfiguratsiooni näide
global
log /dev/log local0
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http # või tcp
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin # Jaotamisalgoritm
server s1 192.168.1.10:80 check # Töötav server 1
server s2 192.168.1.11:80 check # Töötav server 2
Nginx:
- Kasutatud reverse proxy ja HTTP(S) liikluse jaotajana.
- Seadistused tehti failides
nginx.confvõi kaasatud failides. - Kasutatud:
- Koormuse jaotamiseks veebiserverite ja mikroteenuste vahel.
- Vahemälu, tihendamine, SSL terminatsioon.
- Teostatud:
- Erinevad jaotamismeetodid (round-robin, least_conn, ip_hash).
- Töövõime kontrollid.
- Virtuaalhostide konfiguratsioon.
# Nginx konfiguratsiooni näide
http {
upstream backend_servers {
server 192.168.1.20:8080 weight=1; # Server 1
server 192.168.1.21:8080 weight=1; # Server 2
# least_conn; # Muud jaotamismeetod
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend_servers; # Proxy grupp
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# Muud proxy seaded
}
}
}
AWS ELB:
- Application Load Balancer (ALB): Kasutatakse HTTP/HTTPS liikluse jaotamiseks. L7 tasandil.
- Päringute marsruutimine URL-i, päiste ja HTTP meetodite alusel.
- Integreerub Auto Scaling gruppidega.
- SSL terminatsioon, Web Application Firewall (WAF).
- Network Load Balancer (NLB): Kasutatakse TCP/UDP liikluse jaotamiseks. L4 tasandil.
- Kõrge jõudlus ja madal viivitus.
- Kasutatakse andmebaaside, mänguserverite ja teiste viivitustundlike rakenduste jaotamiseks.
Kogemused hõlmasid Listenerite, Target Groupsi, tervise kontrollide seadistamist ning integratsiooni teiste AWS teenustega AWS Management Console, AWS CLI ja Terraform kaudu.
Tehnoloogiad:
- Seadistamine: Failide käsitsi redigeerimine, Ansible, Chef, Puppet.
- Infrastruktuur koodina: Terraform automaatseks juurutamiseks ja haldamiseks pilves.
- Jälgimine: Prometheus, Grafana koos eksportijatega HAProxy/Nginx või CloudWatch AWS ELB jaoks.
- CIDI: Konfiguratsiooni aktiveerimine ja ümberseadistamine CI/CD pipeline'ides.
Üldiselt sõltus valik rakenduse nõuetest (liiklus tüüp, jõudlus, funktsionaalsus), infrastruktuurist (pilv või on-premise) ja eelarvest.