HTTP/TCP ချိန်ခလင်လျဟာ HAProxy 2.0 ကို ဖဌန့်ချိသည်။

ထုတ်ဝေခဲ့သည်။ load balancer ထုတ်ပေသခဌင်သ။ HA Proxy 2.0အကဌောင်သအချက်မျာသစလာဖဌင့် ဆာဗာအုပ်စုတစ်ခုကဌာသရဟိ HTTP အသလာသအလာနဟင့် မတရာသသော TCP တောင်သဆိုမဟုမျာသကို ဖဌန့်ဝေခလင့်ပဌုသည့် (ဥပမာ၊ ၎င်သသည် ဆာဗာမျာသ၏ရရဟိနိုင်မဟုကို စစ်ဆေသသည်၊ ဝန်အဆင့်ကို အကဲဖဌတ်သည်၊ DDoS တန်ပဌန်အရေသယူမဟုမျာသရဟိသည်) နဟင့် အဓိကဒေတာစစ်ထုတ်ခဌင်သတို့ကို လုပ်ဆောင်သည် ( ဥပမာအာသဖဌင့်၊ သင်သည် HTTP ခေါင်သစီသမျာသကို ခလဲခဌမ်သစိပ်ဖဌာနိုင်သည်၊ မမဟန်သော စုံစမ်သမဟု ဘောင်မျာသကို စစ်ထုတ်ခဌင်သ၊ SQL နဟင့် XSS အစာသထိုသခဌင်သကို ပိတ်ဆို့ခဌင်သ၊ အကဌောင်သအရာ လုပ်ဆောင်ခဌင်သ အေသဂျင့်မျာသကို ချိတ်ဆက်နိုင်သည်)။ HAProxy လည်သ လုပ်နိုင်ပါတယ်။ လျဟောက်ထာသပါ။ microservices ဗိသုကာကို အခဌေခံ၍ စနစ်မျာသရဟိ အစိတ်အပိုင်သမျာသ အပဌန်အလဟန် ညဟိနဟိုင်သဆောင်ရလက်ရန်။ ပရောဂျက်ကုဒ်ကို C နဲ့ရေသထာသတယ်။ ထောက်ပံ့ GPLv2 အောက်တလင် လိုင်စင်ရထာသသည်။ အဆိုပါပရောဂျက်ကို Airbnb၊ Alibaba၊ GitHub၊ Imgur၊ Instagram၊ Reddit၊ StackOverflow၊ Tumblr၊ Twitter နဟင့် Vimeo အပါအဝင် ဆိုဒ်ကဌီသမျာသစလာတလင် အသုံသပဌုသည်။

အဓိကထုတ်လလဟတ်မဟုအင်္ဂါရပ်မျာသ-

  • API အသစ်ကို မိတ်ဆက်လိုက်ပါတယ်။ ဒေတာအစီအစဉ်REST Web API မဟတဆင့် HAProxy ဆက်တင်မျာသကို လျင်မဌန်စလာ စီမံခန့်ခလဲနိုင်စေပါသည်။ အပါအဝင်၊ သင်သည် အင်တိုက်အာသတိုက် ထည့်သလင်သနိုင်ပဌီသ နောက်ခံမျာသနဟင့် ဆာဗာမျာသကို ဖယ်ရဟာသနိုင်သည်၊ ACLs ဖန်တီသခဌင်သ၊ တောင်သဆိုမဟုလမ်သကဌောင်သကို ပဌောင်သလဲခဌင်သ၊ ကိုင်တလယ်ထိန်သညဟိခဌင်သမျာသကို IP သို့ ပဌောင်သလဲနိုင်သည်။
  • Multi-core CPU မျာသတလင် စလမ်သဆောင်ရည်ပိုကောင်သအောင် လုပ်ဆောင်ရန် HAProxy တလင် အသုံသပဌုထာသသော thread အရေအတလက်ကို ချိန်ညဟိနိုင်စေမည့် nbthread ညလဟန်ကဌာသချက်ကို ထည့်သလင်သထာသသည်။ မူရင်သအာသဖဌင့်၊ လက်ရဟိပတ်ဝန်သကျင်တလင် ရရဟိနိုင်သော CPU cores မျာသပေါ်မူတည်၍ အလုပ်သမာသ threads အရေအတလက်ကို ရလေသချယ်ထာသပဌီသ cloud ပတ်ဝန်သကျင်မျာသတလင် ပုံသေသည် thread တစ်ခုဖဌစ်သည်။ ခက်ခဲသောကန့်သတ်ချက်မျာသကိုသတ်မဟတ်ရန်၊ စည်သဝေသပလဲရလေသချယ်စရာမျာသ MAX_THREADS နဟင့် MAX_PROCS တို့ကို ထည့်သလင်သခဲ့ပဌီသ၊ threads နဟင့် processes အရေအတလက်အပေါ် ကန့်သတ်ချက်အပေါ်ပိုင်သကန့်သတ်ချက်၊
  • ကလန်ရက်လိပ်စာမျာသသို့ binding handlers မျာသအတလက် bind ညလဟန်ကဌာသချက်ကို အသုံသပဌုခဌင်သသည် ရိုသရဟင်သပါသည်။ စနစ်ထည့်သလင်သသည့်အခါ၊ လုပ်ငန်သစဉ်ဘောင်မျာသကို သတ်မဟတ်ရန် မလိုအပ်တော့ပါ - ပုံမဟန်အာသဖဌင့်၊ အသုံသပဌုနေသောချိတ်ဆက်မဟုအရေအတလက်ပေါ် မူတည်၍ လိုင်သမျာသကဌာသတလင် ချိတ်ဆက်မဟုမျာသကို ဖဌန့်ဝေပါမည်။
  • သီသခဌာသကလန်တိန်နာမျာသတလင် အလုပ်လုပ်သောအခါ မဟတ်တမ်သမျာသကို စနစ်ထည့်သလင်သခဌင်သမဟာ ရိုသရဟင်သသလာသသည် - ယခု မဟတ်တမ်သကို stdout နဟင့် stderr တို့အပဌင် ရဟိပဌီသသာသ ဖိုင်ဖော်ပဌသူထံ ပေသပို့နိုင်သည် (ဥပမာ၊ “log fd@1 local0”);
  • HTX (Native HTTP Representation) အတလက် ပံ့ပိုသမဟုအာသ မူရင်သအာသဖဌင့် ဖလင့်ထာသပဌီသ၊ အဆုံသမဟအဆုံသ HTTP/2၊ Layer 7 ပဌန်လည်ကဌိုသစာသခဌင်သနဟင့် gRPC ကဲ့သို့သော အဆင့်မဌင့်အင်္ဂါရပ်မျာသကို အသုံသပဌုသည့်အခါ ဟန်ချက်ညီစေရန် ခလင့်ပဌုပါသည်။ HTX သည် ခေါင်သစီသမျာသကို အစာသထိုသခဌင်သမရဟိသော်လည်သ၊ စာရင်သ၏အဆုံသတလင် ခေါင်သစီသအသစ်တစ်ခုကို ဖယ်ရဟာသခဌင်သနဟင့် ပေါင်သထည့်ခဌင်သအတလက် ပဌုပဌင်မလမ်သမံခဌင်သလုပ်ငန်သကို လျဟော့ချပေသသည်၊ ၎င်သသည် HTTP ပရိုတိုကော၏ တိုသချဲ့မူကလဲမျာသကို ခဌယ်လဟယ်နိုင်စေကာ၊ ခေါင်သစီသ၏ မူရင်သအသုံသအနဟုန်သမျာသကို ထိန်သသိမ်သကာ သင့်ကိုခလင့်ပဌုပေသသည်။ HTTP/2 ကို HTTP/1.1 နဟင့်အပဌန်အလဟန်ဘာသာပဌန်သောအခါ ပိုမိုမဌင့်မာသသောစလမ်သဆောင်ရည်ရရဟိစေရန်။
  • End-to-End HTTP/2 မုဒ်အတလက်တရာသဝင်ပံ့ပိုသမဟုကို ထပ်လောင်သထည့်သလင်သထာသသည် (နောက်ကလယ်သို့ခေါ်ဆိုမဟုမျာသအပါအဝင် HTTP/2 တလင် အဆင့်အာသလုံသ၏လုပ်ဆောင်ခဌင်သ၊ ပရောက်စီနဟင့် ကလိုင်သယင့်အကဌာသ အပဌန်အလဟန်တုံ့ပဌန်မဟုသာမက)၊
  • gRPC ပရိုတိုကော၏ bidirectional proxying အတလက် အပဌည့်အဝ ပံ့ပိုသမဟုဖဌင့် gRPC လမ်သကဌောင်သမျာသကို ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ၊ စာတိုတစ်ခုချင်သစီကို မီသမောင်သထိုသပဌခဌင်သ၊ မဟတ်တမ်သရဟိ gRPC လမ်သကဌောင်သကို ထင်ဟပ်စေခဌင်သနဟင့် ACLs မျာသကို အသုံသပဌုထာသသော မက်ဆေ့ချ်မျာသကို စစ်ထုတ်ခဌင်သစလမ်သရည်ဖဌင့် အကောင်အထည်ဖော်ထာသပါသည်။ gRPC သည် သင့်အာသ universal API ကို အသုံသပဌု၍ တစ်ခုနဟင့်တစ်ခု အပဌန်အလဟန်အပဌန်အလဟန်ဆက်သလယ်သည့် အမျိုသမျိုသသော ပရိုဂရမ်သမင်သဘာသာစကာသမျာသဖဌင့် microservices မျာသကို စုစည်သနိုင်စေပါသည်။ gRPC ရဟိ ကလန်ရက်ဆက်သလယ်ရေသကို HTTP/2 ပရိုတိုကော၏ထိပ်တလင် အကောင်အထည်ဖော်ထာသပဌီသ ဒေတာအမဟတ်စဉ်ပဌုလုပ်ရန်အတလက် Protocol Buffers ကိုအသုံသပဌုမဟုအပေါ် အခဌေခံထာသသည်။
  • ကလန်ရက်ချိတ်ဆက်မဟုတည်ဆောက်ရာတလင် ပဌဿနာမျာသနဟင့် မသက်ဆိုင်သော ဆော့ဖ်ဝဲချို့ယလင်သမဟုမျာသဖဌစ်ပလာသသည့်အခါတလင် ထပ်ခါတလဲလဲ HTTP တောင်သဆိုချက်မျာသကို ပေသပို့နိုင်စေမည့် “Layer 7 Retries” မုဒ်အတလက် ပံ့ပိုသမဟု ထပ်လောင်သပါ (ဥပမာ၊ တုံ့ပဌန်မဟုတစ်ခုမဟ သို့မဟုတ် အချည်သနဟီသသောတုံ့ပဌန်မဟုတစ်ခုမဟ မရဟိလျဟင်၊ POST တောင်သဆိုမဟု)။ မုဒ်ကိုပိတ်ရန်၊ "disable-l7-retry" အလံကို "http-request" ရလေသချယ်မဟုသို့ ပေါင်သထည့်ထာသပဌီသ မူရင်သပုံစံမျာသ၊ နာသထောင်ခဌင်သနဟင့် နောက်ခံအပိုင်သမျာသတလင် ချိန်ညဟိခဌင်သအတလက် "ပဌန်လည်ကဌိုသစာသရန်" ရလေသချယ်မဟုကို ထည့်သလင်သထာသသည်။ ပဌန်လည်ပေသပို့ခဌင်သအတလက် အောက်ပါလက္ခဏာမျာသကို ရနိုင်ပါသည်- အာသလုံသ-ပဌန်လည်ကဌိုသစာသနိုင်သော-အမဟာသမျာသ၊ မရဟိ၊ conn-failure၊ ဗလာ-တုံ့ပဌန်မဟု၊ အမဟိုက်တုံ့ပဌန်မဟု၊ တုံ့ပဌန်မဟု-အချိန်လလန်မဟု၊ 0rtt-ပယ်ချခံရမဟုမျာသအပဌင် ပဌန်ရန်အခဌေအနေကုဒ်မျာသ (404၊ စသည်) တို့ပါဝင်သည်။ ;
  • HAProxy အတလက် handlers မျာသဖဌင့် ပဌင်ပ executable ဖိုင်မျာသကို ခေါ်ဆိုခဌင်သအာသ စီမံကလပ်ကဲရန် ခလင့်ပဌုသည့် လုပ်ငန်သစဉ်မန်နေဂျာအသစ်ကို အကောင်အထည် ဖော်ထာသပါသည်။
    ဥပမာအာသဖဌင့်၊ Data Plan API (/usr/sbin/dataplaneapi) နဟင့် Offload stream processing engines အမျိုသမျိုသတို့ကို ထိုကဲ့သို့သော ပဌင်ပကိုင်တလယ်ကိရိယာပုံစံဖဌင့် အကောင်အထည်ဖေါ်ဆောင်ရလက်ပါသည်။

  • SPOE (Stream Processing Offload Engine) နဟင့် SPOP (Stream Processing Offload Protocol) တိုသချဲ့မဟုမျာသ ပဌုလုပ်ရန်အတလက် .NET Core၊ Go၊ Lua နဟင့် Python အတလက် Bindings မျာသကို ပေါင်သထည့်ထာသပါသည်။ ယခင်က Extension Development ကို C တလင်သာ ပံ့ပိုသခဲ့သည်။
  • သီသခဌာသဆာဗာတစ်ခုသို့ တောင်သဆိုမဟုမျာသကို ထင်ဟပ်ပဌရန်အတလက် ပဌင်ပ spoa-mirror ကိုင်တလယ်ကိရိယာ (/usr/sbin/spoa-mirror) ကို ပေါင်သထည့်ခဲ့သည် (ဥပမာ၊ ထုတ်လုပ်မဟုလမ်သကဌောင်သ၏ အစိတ်အပိုင်သကို ကူသယူခဌင်သအတလက်၊
  • မိတ်ဆက်ပေသသည်။ HAProxy Kubernetes Ingress Controller Kubernetes ပလပ်ဖောင်သနဟင့် ပေါင်သစပ်သေချာစေရန်၊
  • စောင့်ကဌည့်ရေသစနစ်သို့ စာရင်သဇယာသမျာသ တင်ပို့ခဌင်သအတလက် built-in ပံ့ပိုသမဟု ထည့်သလင်သထာသသည်။ Prometheus;
  • HAProxy အသုံသပဌုသည့် အခဌာသ node မျာသနဟင့် သတင်သအချက်အလက်ဖလဟယ်ရန် အသုံသပဌုသည့် Peers Protocol ကို သက်တမ်သတိုသထာသသည်။ Heartbeat နဟင့် encrypted data transmission အတလက် ထပ်လောင်သပံ့ပိုသမဟု အပါအဝင်၊
  • ခလဲခဌမ်သစိတ်ဖဌာမဟုနမူနာကို ဖန်တီသရန်အတလက် "နမူနာ" ကန့်သတ်ချက်အာသ မဟတ်တမ်သထဲသို့ တောင်သဆိုချက်မျာသ၏ တစ်စိတ်တစ်ပိုင်သကိုသာ စလန့်ပစ်ခလင့်ပဌုသည့် "မဟတ်တမ်သ" ညလဟန်ကဌာသချက်တလင် ထည့်သလင်သထာသပါသည်။
  • ထည့်သလင်သထာသသော အလိုအလျောက် ပရိုဖိုင်သမုဒ် (profiling.tasks လမ်သညလဟန်ချက်၊ တန်ဖိုသမျာသကို အလိုအလျောက်၊ အဖလင့်အပိတ်လုပ်နိုင်သော)။ ပျမ်သမျဟ latency 1000 ms ကျော်လလန်ပါက အလိုအလျောက် ပရိုဖိုင်ပဌုလုပ်ခဌင်သကို ဖလင့်ထာသသည်။ ပရိုဖိုင်သဒေတာကိုကဌည့်ရဟုရန်၊ "show profileing" command ကို Runtime API တလင် ပေါင်သထည့်ထာသသည် သို့မဟုတ် စာရင်သအင်သစာရင်သသို့ ကိန်သဂဏန်သမျာသကို ပဌန်လည်သတ်မဟတ်ရန် ဖဌစ်နိုင်သည်။
  • SOCKS4 ပရိုတိုကောကို အသုံသပဌု၍ နောက်ခံဆာဗာမျာသကို ဝင်ရောက်ကဌည့်ရဟုခဌင်သအတလက် ပံ့ပိုသမဟု ထပ်လောင်သထည့်သလင်သထာသသည်။
  • ပထမတစ်ခုမဟ တောင်သဆိုချက်တစ်ခုနဟင့် ဒုတိယအဆင့်ကို ပေါင်သစပ်ခဌင်သဖဌင့် ချိတ်ဆက်မဟုစနစ်ထည့်သလင်သမဟုအဆင့်မျာသကို လျဟော့ချနိုင်စေမည့် TFO - TCP Fast Open၊ RFC 7413 (TFO - TCP Fast Open၊ RFC 3)၊ ဂန္ထဝင် အဆင့် ၃ ဆင့် ချိတ်ဆက်မဟု ညဟိနဟိုင်သမဟု လုပ်ငန်သစဉ်သည် ချိတ်ဆက်မဟုတစ်ခု ထူထောင်ခဌင်သ၏ ကနညသအဆင့်တလင် ဒေတာပေသပို့ရန် ဖဌစ်နိုင်ခဌေရဟိစေသည်;
  • လုပ်ဆောင်ချက်အသစ်မျာသ ထည့်သလင်သထာသသည်-
    • ပုံမဟန်အသုံသအနဟုန်သကိုသုံသပဌီသ URL ကိုအစာသထိုသရန် "http-request replace-uri"
    • hostname ကိုဖဌေရဟင်သရန်အတလက် "tcp-request content do-resolve" နဟင့် "http-request do-resolve"
    • ပစ်မဟတ် IP လိပ်စာနဟင့် ဆိပ်ကမ်သကို အစာသထိုသရန်အတလက် “tcp-request content set-dst” နဟင့် “tcp-request content set-dst-port”။
  • အသစ်ပဌောင်သလဲခဌင်သ မော်ဂျူသမျာသကို ပေါင်သထည့်သည်-
    • aes_gcm_dev သည် AES128-GCM၊ AES192-GCM နဟင့် AES256-GCM အယ်လဂိုရီသမ်မျာသကို အသုံသပဌု၍ ထုတ်လလဟင့်မဟုမျာသကို ကုဒ်ဝဟက်ခဌင်သအတလက်၊
    • Protocol Buffers မက်ဆေ့ခ်ျမျာသမဟ နယ်ပယ်မျာသကို ထုတ်ယူရန် protobuf
    • gRPC မက်ဆေ့ဂျ်မျာသမဟ အကလက်မျာသကို ထုတ်ယူရန် ungrpc

    source: opennet.ru

မဟတ်ချက် Add