Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

နိဒါန်း

ကျွန်တော့်ရဲ့ လက်ရှိအလုပ်ခွင်မှာ ဒီနည်းပညာနဲ့ သိကျွမ်းခဲ့ရတာပါ။ နောက်ခံနည်းနည်းနဲ့ စပါမယ်။ နောက်အစည်းအဝေးတွင် ကျွန်ုပ်တို့အဖွဲ့နှင့် ပေါင်းစည်းမှုပြုလုပ်ရန် လိုအပ်ကြောင်း ပြောကြားခဲ့ပါသည်။ လူသိများသောစနစ်. ပေါင်းစည်းခြင်းဖြင့် ဤလူသိများသောစနစ်သည် ကျွန်ုပ်တို့အား တိကျသောအဆုံးမှတ်တစ်ခုသို့ HTTP မှတစ်ဆင့် တောင်းဆိုမှုများကို ပေးပို့မည်ဖြစ်ပြီး ထူးဆန်းလောက်အောင် ကျွန်ုပ်တို့သည် SOAP မက်ဆေ့ခ်ျပုံစံဖြင့် ပြန်လည်တုံ့ပြန်မှုများကို ပေးပို့မည်ဟု ဆိုလိုခြင်းဖြစ်သည်။ အရာအားလုံးရိုးရှင်းပြီးအသေးအဖွဲပုံရသည်။ ဒီကနေ လိုအပ်တာ တွေ ပါ ပါတယ်..။

လုပ်ငန်း

ဝန်ဆောင်မှု 3 ခု ဖန်တီးပါ။ ၎င်းတို့ထဲမှ ပထမဆုံးမှာ Database Update Service ဖြစ်သည်။ ပြင်ပအဖွဲ့အစည်းစနစ်မှ ဒေတာအသစ်များရောက်ရှိလာသည့်အခါ၊ ဤဝန်ဆောင်မှုသည် ဒေတာဘေ့စ်အတွင်းရှိ ဒေတာကို အပ်ဒိတ်လုပ်ကာ ၎င်းကို နောက်စနစ်သို့ လွှဲပြောင်းရန်အတွက် CSV ဖော်မတ်ဖြင့် ဖိုင်တစ်ခုထုတ်ပေးပါသည်။ ဒုတိယဝန်ဆောင်မှု၏ အဆုံးမှတ်ကို လွှဲပြောင်းပေးသည့်ဖိုင်ကို လက်ခံရရှိကာ FTP မှတစ်ဆင့် ဖိုင်သိုလှောင်မှုတွင် ထည့်သွင်းပေးသည့် FTP Transport Service ဟုခေါ်သည်။ တတိယဝန်ဆောင်မှု၊ သုံးစွဲသူဒေတာလွှဲပြောင်းခြင်းဝန်ဆောင်မှုသည် ပထမနှစ်ခုနှင့် တပြိုင်နက်လုပ်ဆောင်သည်။ အထက်တွင်ဖော်ပြထားသောဖိုင်ကိုလက်ခံရရှိရန်၊ အဆင်သင့်တုံ့ပြန်မှုဖိုင်ကိုယူ၊ ၎င်းကိုမွမ်းမံရန် (id၊ ဖော်ပြချက်၊ linkToFile အကွက်များကို အပ်ဒိတ်လုပ်သည်) နှင့် SOAP မက်ဆေ့ခ်ျပုံစံဖြင့် တုံ့ပြန်မှုကို ပေးပို့ရန် ပြင်ပစနစ်မှ ပြင်ပစနစ်ထံမှ တောင်းဆိုချက်ကို လက်ခံရရှိပါသည်။ ဆိုလိုသည်မှာ၊ ခြုံငုံရုပ်ပုံမှာ အောက်ပါအတိုင်းဖြစ်သည်- ပထမဝန်ဆောင်မှုနှစ်ခုသည် အပ်ဒိတ်အတွက် ဒေတာရောက်ရှိမှသာ ၎င်းတို့၏လုပ်ငန်းကို စတင်သည်။ တတိယဝန်ဆောင်မှုသည် တစ်မိနစ်လျှင် ဒေတာတောင်းဆိုမှု 1000 ခန့် သတင်းအချက်အလက် သုံးစွဲသူများစွာရှိသောကြောင့် အဆက်မပြတ်အလုပ်လုပ်ပါသည်။ ဝန်ဆောင်မှုများသည် အဆက်မပြတ်ရရှိနိုင်ပြီး ၎င်းတို့၏ဖြစ်ရပ်များသည် စမ်းသပ်မှု၊ သရုပ်ပြမှု၊ အကြိုထုတ်လုပ်မှုနှင့် ထုတ်ကုန်များကဲ့သို့ မတူညီသောပတ်ဝန်းကျင်များတွင် တည်ရှိပါသည်။ အောက်တွင် ဤဝန်ဆောင်မှုများ မည်သို့အလုပ်လုပ်ပုံ၏ ပုံဖြစ်သည်။ မလိုအပ်သော ရှုပ်ထွေးမှုများကို ရှောင်ရှားရန် အချို့သောအသေးစိတ်အချက်အလက်များကို ရိုးရှင်းအောင်ပြုလုပ်ထားကြောင်း ချက်ချင်းရှင်းပြပါရစေ။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

Technical Deepening ၊

ပြဿနာအတွက် အဖြေတစ်ခုကို စီစဉ်သောအခါတွင် Spring framework၊ Nginx balancer၊ Postgres database နှင့် အခြားသော နည်းပညာပိုင်းဆိုင်ရာများကို အသုံးပြု၍ Java တွင် application များပြုလုပ်ရန် ဆုံးဖြတ်ခဲ့သည်။ နည်းပညာဆိုင်ရာဖြေရှင်းချက်တစ်ခုကို တီထွင်ချိန်က ကျွန်ုပ်တို့အား ဤပြဿနာကိုဖြေရှင်းရန် အခြားနည်းလမ်းများကို ထည့်သွင်းစဉ်းစားနိုင်စေသောကြောင့် ကျွန်ုပ်တို့၏အကြည့်များသည် အချို့သောစက်ဝိုင်းများတွင် ခေတ်ဆန်သော Apache NIFI နည်းပညာကို စိုက်ကြည့်မိပါသည်။ ဒီနည်းပညာက ကျွန်တော်တို့ကို ဒီဝန်ဆောင်မှု 3 ခုကို သတိပြုမိစေတယ်လို့ ချက်ချင်းပြောမယ်။ ဤဆောင်းပါးသည် ဖိုင်သယ်ယူပို့ဆောင်ရေးဝန်ဆောင်မှု၏ ဖွံ့ဖြိုးတိုးတက်မှုနှင့် စားသုံးသူထံသို့ ဒေတာလွှဲပြောင်းခြင်းဝန်ဆောင်မှုကို ဖော်ပြမည်ဖြစ်သော်လည်း ဆောင်းပါးသည် အသုံးဝင်ပါက၊ ဒေတာဘေ့စ်အတွင်း ဒေတာမွမ်းမံခြင်းအတွက် ဝန်ဆောင်မှုအကြောင်း ကျွန်ုပ်ရေးသားပါမည်။

ဒီကဘာလဲ

NIFI သည် ဒေတာများကို လျင်မြန်စွာ အပြိုင်တင်ခြင်းနှင့် လုပ်ဆောင်ခြင်းအတွက် ဖြန့်ဝေထားသော ဗိသုကာတစ်ခုဖြစ်ပြီး၊ အရင်းအမြစ်များနှင့် အသွင်ပြောင်းခြင်းအတွက် ပလပ်အင်အများအပြား၊ ဖွဲ့စည်းမှုပုံစံများကို ဗားရှင်းပြုလုပ်ခြင်းနှင့် အခြားအရာများစွာအတွက် လုပ်ဆောင်ခြင်းအတွက် ဖြန့်ဝေထားသော ဗိသုကာတစ်ခုဖြစ်သည်။ ကောင်းမွန်တဲ့ ဘောနပ်စ်တစ်ခုကတော့ အသုံးပြုရတာ အရမ်းလွယ်ကူပါတယ်။ getFile၊ sendHttpRequest နှင့် အခြားအသေးအဖွဲ လုပ်ငန်းစဉ်များကို စတုရန်းများအဖြစ် ကိုယ်စားပြုနိုင်ပါသည်။ စတုရန်းတစ်ခုစီသည် လုပ်ငန်းစဉ်တစ်ခုအား ကိုယ်စားပြုသည်၊ ၎င်း၏အပြန်အလှန်အကျိုးသက်ရောက်မှုကို အောက်ပါပုံတွင်တွေ့နိုင်ပါသည်။ လုပ်ငန်းစဉ်သတ်မှတ်မှု အပြန်အလှန်တုံ့ပြန်မှုများဆိုင်ရာ နောက်ထပ်အသေးစိတ်စာရွက်စာတမ်းများကို ရေးသားထားသည်။ ဒီမှာ ရုရှားစကားပြောတတ်သူများအတွက်၊ ဒီမှာ. စာရွက်စာတမ်းတွင် NIFI ကို ထုပ်ပိုးပြီး အလုပ်လုပ်ပုံအပြင် လေးထောင့်ဟုလည်းသိကြသည့် လုပ်ငန်းစဉ်များကို ဖန်တီးပုံတို့ကို ပြည့်စုံစွာဖော်ပြထားသည်
ဆောင်းပါးတစ်ပုဒ်ရေးရန် စိတ်ကူးသည် အချိန်အတော်ကြာ ရှာဖွေပြီး ရရှိလာသော အချက်အလက်များကို အသိစိတ်တစ်ခုအဖြစ် တည်ဆောက်ကာ အနာဂတ် developer များအတွက် ဘဝကို အနည်းငယ် ပိုမိုလွယ်ကူစေလိုသော ဆန္ဒဖြင့် မွေးဖွားလာခဲ့ပါသည်။

နမူနာ

စတုရန်းပုံများသည် တစ်ခုနှင့်တစ်ခု အပြန်အလှန် တုံ့ပြန်ပုံကို ဥပမာတစ်ခုအဖြစ် ယူဆသည်။ ယေဘူယျအစီအစဥ်သည် အတော်လေးရိုးရှင်းပါသည်- ကျွန်ုပ်တို့သည် HTTP တောင်းဆိုချက်ကို လက်ခံရရှိသည် (သီအိုရီအရ၊ တောင်းဆိုချက်၏ကိုယ်ထည်ရှိ ဖိုင်တစ်ခုနှင့်အတူ၊ NIFI ၏စွမ်းရည်များကိုပြသရန်အတွက်၊ ဤဥပမာတွင် တောင်းဆိုချက်သည် ဒေသတွင်းဖိုင်သိုလှောင်မှုမှ ဖိုင်တစ်ခုလက်ခံရရှိခြင်းလုပ်ငန်းစဉ်ကို စတင်သည် ) ထို့နောက် FH မှ ဖိုင်တစ်ခု လက်ခံရရှိသည့် လုပ်ငန်းစဉ်နှင့် FTP မှ FH သို့ ပြောင်းရွှေ့ခြင်း လုပ်ငန်းစဉ် တဆက်တည်းတွင် တောင်းဆိုမှုအား လက်ခံရရှိကြောင်း တုံ့ပြန်ချက်ကို ပြန်လည်ပေးပို့ပါသည်။ flowFile ဟုခေါ်သော လုပ်ငန်းစဉ်များသည် တစ်ခုနှင့်တစ်ခု အပြန်အလှန် အကျိုးသက်ရောက်မှုရှိသည်ကို ရှင်းလင်းထိုက်သည်။ ၎င်းသည် ရည်ညွှန်းချက်များနှင့် အကြောင်းအရာများကို သိမ်းဆည်းသည့် NIFI တွင် အခြေခံပစ္စည်းဖြစ်သည်။ အကြောင်းအရာသည် တိုက်ရိုက်လွှင့်ဖိုင်မှ ကိုယ်စားပြုသည့် ဒေတာဖြစ်သည်။ ဆိုလိုသည်မှာ အကြမ်းဖျင်းအားဖြင့် ပြောရလျှင် သင်သည် စတုရန်းတစ်ခုမှ ဖိုင်တစ်ခုကို လက်ခံရရှိပြီး နောက်တစ်ခုသို့ လွှဲပြောင်းပါက အကြောင်းအရာသည် သင်၏ဖိုင်ဖြစ်လိမ့်မည်။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

သင်တွေ့မြင်ရသည့်အတိုင်း ဤပုံတွင် ယေဘုယျဖြစ်စဉ်ကို ပြသထားသည်။ HandleHttpRequest - တောင်းဆိုချက်များကိုလက်ခံသည်၊ ReplaceText - တုံ့ပြန်မှုကိုယ်ထည်ကိုထုတ်ပေးသည်၊ HandleHttpResponse - တုံ့ပြန်ချက်တစ်ခုပေးပို့သည်။ FetchFile - ဖိုင်သိုလှောင်မှုမှ ဖိုင်တစ်ခုကို လက်ခံရရှိပြီး ၎င်းကို စတုရန်းပုံ PutSftp သို့ လွှဲပြောင်းပေးသည် - ဤဖိုင်ကို သတ်မှတ်ထားသော လိပ်စာတွင် FTP ပေါ်တွင် တင်ထားသည်။ အခု ဒီဖြစ်စဉ်အကြောင်း ပိုသိလာရတယ်။

ဤကိစ္စတွင်၊ တောင်းဆိုမှုသည် အရာအားလုံး၏အစဖြစ်သည်။ ၎င်း၏ configuration parameters တွေကိုကြည့်ကြပါစို့။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

StandardHttpContextMap မှလွဲ၍ ဤအရာအားလုံးသည် အသေးအဖွဲဖြစ်သည် - ၎င်းသည် သင့်အား တောင်းဆိုမှုများကို ပေးပို့ခြင်းနှင့် လက်ခံရန်ခွင့်ပြုသည့်ဝန်ဆောင်မှုတစ်မျိုးဖြစ်သည်။ ပိုမိုအသေးစိတ်နှင့် ဥပမာများဖြင့်ပင် ကြည့်ရှုနိုင်သည်- ဒီမှာ

ထို့နောက်၊ စတုရန်း၏ ReplaceText configuration parameters များကို ကြည့်ကြပါစို့။ ReplacementValue ကို အာရုံစိုက်သင့်သည် - ၎င်းသည် တုံ့ပြန်မှုပုံစံဖြင့် သုံးစွဲသူထံ ပြန်ပေးမည့်အရာဖြစ်သည်။ ဆက်တင်များတွင် သင်သည် လော့ဂ်အင်အဆင့်ကို ချိန်ညှိနိုင်သည်၊ { သင် unpacked nifi}/nifi-1.9.2/logs နေရာတွင် မှတ်တမ်းများကို တွေ့နိုင်သည်၊ ပျက်ကွက်ခြင်း/အောင်မြင်မှု ကန့်သတ်ချက်များလည်း ရှိသည် - ဤကန့်သတ်ချက်များအပေါ်အခြေခံ၍ သင်သည် လုပ်ငန်းစဉ်တစ်ခုလုံးကို ထိန်းချုပ်နိုင်သည်။ . ဆိုလိုသည်မှာ၊ အောင်မြင်သော စာသားလုပ်ဆောင်ခြင်းကိစ္စတွင်၊ အသုံးပြုသူထံသို့ တုံ့ပြန်မှုပေးပို့ခြင်းလုပ်ငန်းစဉ်ကို ခေါ်မည်ဖြစ်ပြီး အခြားအခြေအနေတွင် ကျွန်ုပ်တို့သည် မအောင်မြင်သောလုပ်ငန်းစဉ်ကို ရိုးရိုးရှင်းရှင်း မှတ်တမ်းတင်ပါမည်။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

HandleHttpResponse ဂုဏ်သတ္တိများ တုံ့ပြန်မှုတစ်ခု အောင်မြင်စွာ ဖန်တီးလိုက်သောအခါ အနေအထားမှလွဲ၍ အထူးစိတ်ဝင်စားစရာ မရှိပါ။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

တောင်းဆိုချက်နှင့် တုံ့ပြန်မှုကို ကျွန်ုပ်တို့ ခွဲထုတ်ပြီးပါပြီ - ဖိုင်ကို လက်ခံရယူပြီး FTP ဆာဗာပေါ်တွင် ထားရှိခြင်းဆီသို့ ဆက်သွားကြပါစို့။ FetchFile - ဆက်တင်များတွင် သတ်မှတ်ထားသည့် လမ်းကြောင်းတွင် ဖိုင်တစ်ခုကို လက်ခံရရှိပြီး ၎င်းကို နောက်လုပ်ငန်းစဉ်သို့ ပေးပို့သည်။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

ထို့နောက် PutSftp စတုရန်း- ဖိုင်ကို ဖိုင်သိုလှောင်မှုတွင် နေရာချထားပါ။ အောက်ပါ configuration parameters များကိုကျွန်ုပ်တို့တွေ့နိုင်ပါသည်။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

စတုရန်းတစ်ခုစီသည် သီးခြားလုပ်ဆောင်ရမည့် လုပ်ငန်းစဉ်ဖြစ်သည်ဟူသောအချက်ကို အာရုံစိုက်သင့်သည်။ ရှုပ်ထွေးသော စိတ်ကြိုက်ပြင်ဆင်မှု မလိုအပ်သော အရိုးရှင်းဆုံး ဥပမာကို ကြည့်ပါ။ နောက်တစ်ခု၊ လုပ်ငန်းစဉ်ကို နည်းနည်းပိုရှုပ်ထွေးအောင် ကြည့်မယ်၊ grooves ပေါ်မှာ နည်းနည်းရေးမယ်။

ပိုရှုပ်ထွေးတဲ့ ဥပမာ

SOAP မက်ဆေ့ဂျ်ကို မွမ်းမံပြင်ဆင်သည့် လုပ်ငန်းစဉ်ကြောင့် သုံးစွဲသူထံ ဒေတာလွှဲပြောင်းခြင်း ဝန်ဆောင်မှုသည် အနည်းငယ် ပိုမိုရှုပ်ထွေးသွားပါသည်။ အထွေထွေ လုပ်ငန်းစဉ်ကို အောက်ပါပုံတွင် ပြထားသည်။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

ဤနေရာတွင် အိုင်ဒီယာသည် အထူးရှုပ်ထွေးသည်မဟုတ်ပါ- ကျွန်ုပ်တို့သည် သုံးစွဲသူထံမှ ဒေတာလိုအပ်ကြောင်း တောင်းဆိုမှုကို လက်ခံရရှိသည်၊ မက်ဆေ့ချ်လက်ခံရရှိသည့် တုံ့ပြန်မှုတစ်ခု ပေးပို့သည်၊ တုံ့ပြန်မှုဖိုင်ကို လက်ခံရရှိသည့် လုပ်ငန်းစဉ်ကို စတင်ကာ၊ အချို့သော ယုတ္တိဗေဒဖြင့် တည်းဖြတ်ပြီးနောက်၊ ဖိုင်ကို ဆာဗာသို့ SOAP မက်ဆေ့ခ်ျပုံစံဖြင့် သုံးစွဲသူထံ လွှဲပြောင်းပေးသည်။

အထက်မှာတွေ့ခဲ့ရတဲ့ လေးထောင့်တွေကို ထပ်ပြီးဖော်ပြဖို့ မလိုအပ်ဘူးလို့ ထင်ပါတယ် - အသစ်တွေကို တည့်တည့်ပြောင်းကြည့်ရအောင်။ မည်သည့်ဖိုင်ကိုမဆို တည်းဖြတ်ရန် လိုအပ်ပြီး သာမန် ReplaceText အမျိုးအစားစတုရန်းများသည် မသင့်လျော်ပါက၊ သင်သည် သင်၏ကိုယ်ပိုင် script ကို ရေးသားရမည်ဖြစ်ပါသည်။ ၎င်းကို ExecuteGroogyScript စတုရန်းသုံးပြီး လုပ်ဆောင်နိုင်သည်။ ၎င်း၏ဆက်တင်များကိုအောက်တွင်ဖော်ပြထားသည်။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

ဤစတုရန်းတွင် ဇာတ်ညွှန်းကို တင်ရန် ရွေးချယ်စရာ နှစ်ခုရှိသည်။ ပထမအချက်မှာ script တစ်ခုနှင့် ဖိုင်တစ်ခုကို ဒေါင်းလုဒ်လုပ်ခြင်း ဖြစ်သည်။ ဒုတိယတစ်ခုကတော့ scriptBody ထဲကို script တစ်ခုထည့်ခြင်းအားဖြင့်ပါ။ ငါသိသလောက်၊ executeScript စတုရန်းသည် ဘာသာစကားများစွာကို ပံ့ပိုးပေးသည် - ၎င်းတို့ထဲမှတစ်ခုမှာ groovy ဖြစ်သည်။ ငါ java developer များကိုစိတ်ပျက်စေလိမ့်မည် - သင်သည်ထိုကဲ့သို့သောစတုရန်းများတွင် java တွင် script များကိုမရေးနိုင်ပါ။ အမှန်တကယ်လုပ်ချင်သူများအတွက်၊ သင်သည်သင်၏ကိုယ်ပိုင်စိတ်ကြိုက်စတုရန်းကိုဖန်တီးပြီး NIFI စနစ်သို့ထည့်ရန်လိုအပ်သည်။ ဤလုပ်ဆောင်ချက်တစ်ခုလုံးသည် တာဘိုရင်းဖြင့် အကြာကြီးအကဖြင့် လိုက်ပါသွားသည်၊ ဤဆောင်းပါးတွင် ကျွန်ုပ်တို့ မဖြေရှင်းနိုင်ပါ။ ရိုင်းစိုင်းတဲ့ဘာသာစကားကို ရွေးချယ်ခဲ့တယ်။ အောက်တွင် SOAP မက်ဆေ့ချ်တွင် id ကို ရိုးရှင်းစွာ တိုးမြှင်တင်သည့် စမ်းသပ် script တစ်ခုဖြစ်သည်။ မှတ်သားရန် အရေးကြီးပါသည်။ သင်သည် flowFile မှဖိုင်ကိုယူ၍ ၎င်းကိုမွမ်းမံပါ၊ ၎င်းကိုထိုနေရာတွင်ပြန်ထားရန်၊ အပ်ဒိတ်လုပ်ရန်မမေ့ပါနှင့်။ စာကြည့်တိုက်အားလုံး မပါဝင်ကြောင်းကိုလည်း သတိပြုသင့်သည်။ libs များထဲမှ တစ်ခုကို တင်သွင်းရန် လိုအပ်နေသေးသည်။ နောက်အားနည်းချက်တစ်ခုကတော့ ဒီစတုရန်းမှာရှိတဲ့ script ဟာ debug လုပ်ဖို့ အတော်လေးခက်ခဲပါတယ်။ NIFI JVM သို့ချိတ်ဆက်ပြီး အမှားရှာပြင်ခြင်းလုပ်ငန်းစဉ်ကို စတင်ရန် နည်းလမ်းတစ်ခုရှိသည်။ ကိုယ်တိုင်ကိုယ်ကျ၊ ကျွန်ုပ်သည် ဒေသန္တရအပလီကေးရှင်းတစ်ခုအား စတင်ပြီး စက်ရှင်မှ ဖိုင်တစ်ခုလက်ခံရယူခြင်းကို အသွင်တူပြုလုပ်ထားသည်။ ကျွန်တော်လည်း စက်တွင်းမှာ အမှားရှာလုပ်ခဲ့တယ်။ Script တစ်ခုကို တင်သည့်အခါတွင် ပေါ်လာသည့် အမှားများသည် Google အတွက် အတော်လေး လွယ်ကူပြီး NIFI ကိုယ်တိုင်က မှတ်တမ်းတွင် ရေးသားပါသည်။

import org.apache.commons.io.IOUtils
import groovy.xml.XmlUtil
import java.nio.charset.*
import groovy.xml.StreamingMarkupBuilder

def flowFile = session.get()
if (!flowFile) return
try {
    flowFile = session.write(flowFile, { inputStream, outputStream ->
        String result = IOUtils.toString(inputStream, "UTF-8");
        def recordIn = new XmlSlurper().parseText(result)
        def element = recordIn.depthFirst().find {
            it.name() == 'id'
        }

        def newId = Integer.parseInt(element.toString()) + 1
        def recordOut = new XmlSlurper().parseText(result)
        recordOut.Body.ClientMessage.RequestMessage.RequestContent.content.MessagePrimaryContent.ResponseBody.id = newId

        def res = new StreamingMarkupBuilder().bind { mkp.yield recordOut }.toString()
        outputStream.write(res.getBytes(StandardCharsets.UTF_8))
} as StreamCallback)
     session.transfer(flowFile, REL_SUCCESS)
}
catch(Exception e) {
    log.error("Error during processing of validate.groovy", e)
    session.transfer(flowFile, REL_FAILURE)
}

နောက်တစ်ခုက၊ ဤနေရာတွင် စတုရန်းပုံ၏ စိတ်ကြိုက်ပြင်ဆင်မှု အဆုံးသတ်သည်။ ထို့နောက်၊ အပ်ဒိတ်ဖိုင်ကို ဆာဗာသို့ ဖိုင်ပေးပို့ရန် တာဝန်ရှိသည့် စတုရန်းသို့ ပြောင်းရွှေ့သည်။ အောက်ဖော်ပြပါများသည် ဤစတုရန်းအတွက် ဆက်တင်များဖြစ်သည်။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

ကျွန်ုပ်တို့သည် SOAP မက်ဆေ့ချ်ကို ပေးပို့မည့်နည်းလမ်းကို ဖော်ပြပါသည်။ ဘယ်မှာရေးမလဲ။ နောက်တစ်ခုကတော့ ဒါက SOAP ဆိုတာကို ညွှန်ပြရမယ်။

Apache NIFI - လေ့ကျင့်မှုတွင်အခွင့်အလမ်းများ၏အကျဉ်းချုပ်

host နှင့် action (soapAction) ကဲ့သို့သော ဂုဏ်သတ္တိများစွာကို ထည့်ပါ။ သိမ်းဆည်းပြီး စစ်ဆေးပါတယ်။ SOAP တောင်းဆိုမှုများကို မည်သို့ပေးပို့ရမည်ကို အသေးစိတ်ကြည့်ရှုနိုင်ပါသည်။ ဒီမှာ

NIFI လုပ်ငန်းစဉ်များကို အသုံးပြုရန်အတွက် ရွေးချယ်စရာများစွာကို ကျွန်ုပ်တို့ ကြည့်ရှုခဲ့သည်။ သူတို့ ဘယ်လို အပြန်အလှန် ဆက်ဆံကြပြီး သူတို့ရဲ့ တကယ့်အကျိုးအမြတ်က ဘာလဲ? သုံးသပ်ထားသော ဥပမာများသည် စမ်းသပ်မှုများဖြစ်ပြီး တိုက်ပွဲတွင် အမှန်တကယ်ဖြစ်ပျက်နေသည့်အရာများနှင့် အနည်းငယ်ကွာခြားပါသည်။ ဤဆောင်းပါးသည် developer များအတွက် အနည်းငယ် အသုံးဝင်မည်ဟု မျှော်လင့်ပါသည်။ ဂရုစိုက်တဲ့အတွက်ကျေးဇူးတင်ပါတယ်။ မေးခွန်းများရှိပါက ရေးပါ။ ဖြေဖို့ကြိုးစားပါ့မယ်။

source: www.habr.com

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster