MIVOAKA famotsorana load balancer HA Proxy 2.0, izay ahafahanao mizara ny fifamoivoizana HTTP sy ny fangatahana TCP tsy ara-drariny eo amin'ny vondrona mpizara iray, amin'ny fiheverana ny anton-javatra maro (ohatra, manamarina ny fisian'ny mpizara, manombana ny haavon'ny entana, manana fanoherana DDoS) ary manao sivana data fototra ( ohatra, azonao atao ny manara-maso ny lohatenin'ny HTTP, manivana ny masontsivana fanontaniana diso, manakana ny fanoloana SQL sy XSS, mampifandray ireo mpiasan'ny fanodinana votoaty). Afaka ihany koa ny HAProxy AMPIHARO handrindrana ny fifandraisan'ireo singa ao anaty rafitra mifototra amin'ny maritrano microservices. Ny kaody tetikasa dia voasoratra amin'ny C sy nanome nahazoan-dalana GPLv2. Ny tetikasa dia ampiasaina amin'ny tranokala lehibe maro, anisan'izany ny Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter ary Vimeo.
Lafin-javatra lehibe famoahana:
Nampidirina ny API vaovao Drafitra data, izay ahafahanao mitantana ny fandrindrana HAProxy amin'ny sidina amin'ny alΓ lan'ny REST Web API. Ao anatin'izany, azonao atao ny manampy sy manaisotra ny backends sy ny servers, mamorona ACL, manova ny lΓ lan'ny fangatahana, manova ny fatoran'ny mpitantana amin'ny IP;
Nampiana ny torolalana nbthread, izay ahafahanao manitsy ny isan'ny kofehy ampiasaina amin'ny HAProxy mba hanamafisana ny fampisehoana amin'ny CPU marobe. Amin'ny alΓ lan'ny default, ny isan'ny kofehy mpiasa dia voafantina miankina amin'ny cores CPU misy amin'ny tontolo ankehitriny, ary amin'ny tontolo rahona dia kofehy iray ny default. Mba hametrahana fetra henjana dia nampiana safidin'ny fivoriambe MAX_THREADS sy MAX_PROCS, mametra ny fetra ambony amin'ny isan'ny kofehy sy ny dingana;
Nohamafisina ny fampiasana ny toromarika mamatotra ho an'ny mpandrindra famatorana amin'ny adiresin'ny tambajotra. Rehefa manangana dia tsy ilaina intsony ny mamaritra ny masontsivana dingana - amin'ny alΓ lan'ny default, ny fifandraisana dia hozaraina amin'ny kofehy arakaraka ny isan'ny fifandraisana mavitrika.
Nohamafisina ny fametrahana logs rehefa mandeha amin'ny kaontenera mitoka-monina - ny log dia azo alefa any amin'ny stdout sy stderr, ary koa amin'ny mpamoritra rakitra efa misy (ohatra, "log fd@1 local0");
Ny fanohanana ny HTX (Native HTTP Representation) dia alefa amin'ny alΓ lan'ny default, mamela ny fifandanjana rehefa mampiasa endri-javatra mandroso toy ny HTTP/2 farany mankany amin'ny farany, Layer 7 Retries ary gRPC. Ny HTX dia tsy manolo ny lohapejy amin'ny toerany, fa mampihena ny hetsika fanovana amin'ny fanesorana sy fampidirana lohapejy vaovao amin'ny faran'ny lisitra, izay ahafahanao manodinkodina ireo variana miitatra amin'ny protocol HTTP, mitahiry ny semantika voalohany amin'ny lohapejy ary mamela anao mba hahazoana fahombiazana ambony kokoa rehefa mandika ny HTTP/2 amin'ny HTTP/1.1 ary ny mifamadika amin'izany;
Nampiana fanohanana ofisialy ho an'ny End-to-End HTTP/2 mode (fikarakarana ny dingana rehetra ao amin'ny HTTP/2, ao anatin'izany ny antso any amin'ny backend, fa tsy ny fifandraisana eo amin'ny proxy sy ny mpanjifa fotsiny);
Ny fanohanana feno ho an'ny proxy bidirectional amin'ny protocol gRPC dia nampiharina miaraka amin'ny fahafahana manara-maso ny stream gRPC, manasongadina ny hafatra tsirairay, maneho ny fifamoivoizana gRPC ao amin'ny log ary manivana hafatra mampiasa ACL. Ny gRPC dia ahafahanao mandamina ny asan'ny microservices amin'ny fiteny fandaharana isan-karazany izay mifandray amin'ny tsirairay amin'ny alΓ lan'ny API manerantany. Ny fifandraisana amin'ny tambajotra ao amin'ny gRPC dia ampiharina eo an-tampon'ny protocol HTTP/2 ary mifototra amin'ny fampiasana Protocol Buffers ho an'ny serialization data.
Fanohanana fanampiny ho an'ny maody "Layer 7 Retries", izay ahafahanao mandefa fangatahana HTTP miverimberina raha sendra ny tsy fahombiazan'ny rindrambaiko izay tsy misy ifandraisany amin'ny olana amin'ny fametrahana fifandraisana amin'ny tambajotra (ohatra, raha tsy misy valiny na valiny foana amin'ny a POST fangatahana). Mba hanesorana ny maody, ny saina "disable-l7-retry" dia nampiana tamin'ny safidy "http-request", ary ny safidy "retry-on" dia nampiana ho an'ny fanitsiana tsara amin'ny fizarana default, mihaino ary backend. Ireto famantarana manaraka ireto dia azo alefa indray: fahadisoana rehetra azo averina, tsy misy, tsy fahombiazana, valim-bavaka, valim-panontaniana tsy misy dikany, fe-potoana famaliana, 0rtt-nolavina, ary koa famehezana ny kaody momba ny sata (404, sns.) ;
Napetraka ny mpitantana ny dingana vaovao, izay ahafahanao manitsy ny fiantsoana ny rakitra azo tanterahana ivelany miaraka amin'ireo mpitantana ny HAProxy.
Ohatra, ny Data Plan API (/usr/sbin/dataplaneapi), ary koa ny maotera fanodinana stream Offload isan-karazany, dia ampiharina amin'ny endrika mpitantana ivelany toy izany;
Nampiana fatorana ho an'ny .NET Core, Go, Lua ary Python amin'ny famolavolana ny fanitarana SPOE (Stream Processing Offload Engine) sy SPOP (Stream Processing Offload Protocol). Teo aloha, ny fampandrosoana ny fanitarana dia notohanana afa-tsy ao amin'ny C;
Nampiana mpitantana spoa-mirror ivelany (/usr/sbin/spoa-mirror) ho an'ny fitaratry ny fangatahana amin'ny mpizara mitokana (ohatra, amin'ny fanaovana kopia ny ampahany amin'ny fifamoivoizana famokarana hanaovana fitiliana tontolo iainana andrana amin'ny entana tena izy);
Ny Protocol Peers, ampiasaina amin'ny fifanakalozana vaovao amin'ny node hafa mihazakazaka HAProxy, dia nitarina. Ao anatin'izany ny fanohanana fanampiny ho an'ny Heartbeat sy ny fampitana angon-drakitra voatahiry;
Ny mari-pamantarana "sample" dia nampiana tao amin'ny torolΓ lana "log", izay ahafahanao manary ampahany amin'ny fangatahana ao anaty log, ohatra 1 amin'ny 10, mba hamoronana santionany analytique;
Nampiana fomba fanaovana profiling mandeha ho azy (profiling.tasks directive, izay afaka mitondra ny soatoavina mandeha ho azy, mandeha sy miala). Mihoatra ny 1000 ms ny fametahana automatique raha mihoatra ny XNUMX m Raha hijery ny angon-drakitra momba ny profiling, dia nampiana ny baiko "show profiling" ao amin'ny Runtime API na azo atao ny mamerina ny antontan'isa amin'ny log;