Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

Whakataki

Ko te mea, i taku waahi mahi o naianei me mohio ahau ki tenei hangarau. Ka timata ahau me tetahi papamuri iti. I te hui i muri mai, i kii mai ki ta matou roopu me hanga e matou he whakaurunga pūnaha mohiotia. Na roto i te whakaurunga ko te tikanga ka tukuna mai e tenei punaha rongonui nga tono ma te HTTP ki tetahi pito mutunga, a, ko te mea kee, ka whakahokia mai nga whakautu i runga i te ahua o te karere SOAP. Ko nga mea katoa he mea ngawari, he mea iti. Mai i tenei ka whai koe me ...

Whāinga

Waihanga 3 ratonga. Ko te tuatahi ko te Ratonga Whakahou Raraunga Raraunga. Ko tenei ratonga, ka tae mai nga raraunga hou mai i te punaha tuatoru, ka whakahou i nga raraunga i roto i te papaaarangi me te whakaputa i tetahi konae ki te whakatakotoranga CSV hei whakawhiti ki te punaha e whai ake nei. Ko te waahi mutunga o te ratonga tuarua ka kiia - ko te FTP Transport Service, ka whiwhi i te konae kua whakawhitia, ka whakamanahia, ka tukuna ki roto i te rokiroki konae ma te FTP. Ko te ratonga tuatoru, ko te ratonga whakawhiti raraunga kaihoko, ka mahi tahi me nga mea tuatahi e rua. Ka whakawhiwhia he tono mai i tetahi punaha o waho tuatoru kia whiwhi i te konae kua korerohia i runga ake nei, ka tango i te konae whakautu kua rite, ka whakarereketia (whakahou i te id, whakaahuatanga, linkToFile mara) me te tuku i te whakautu ki te ahua o te karere SOAP. Arā, ko te pikitia whānui e whai ake nei: ko nga ratonga tuatahi e rua ka timata i a raatau mahi ka tae noa mai nga raraunga mo te whakahou. Ko te ratonga tuatoru e mahi tonu ana na te mea he maha nga kaihoko o nga korero, mo te 1000 nga tono mo nga raraunga ia meneti. Kei te waatea nga ratonga i nga wa katoa, kei nga waahi rereke o raatau ahuatanga, penei i te whakamatautau, te demo, i mua i te whakaputa me te whakaputa. Kei raro nei he hoahoa mo te mahi o enei ratonga. Me whakamarama tonu ahau kua whakangwarihia etahi korero kia kore ai e uaua.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

Te Whakahonu Hangarau

I te wa e whakamahere ana i te otinga ki te raru, i whakatau tuatahi matou ki te hanga tono i roto i te Java ma te whakamahi i te anga o te Spring, Nginx balancer, Postgres database me etahi atu mea hangarau, ehara i te mea hangarau. Mai i te wa ki te whakawhanake i tetahi otinga hangarau ka taea e matou te whakaaro ki etahi atu huarahi ki te whakaoti i tenei raruraru, ka tau to maatau titiro ki te hangarau Apache NIFI, he mea huatau ki etahi porowhita. Ka kii tonu ahau na tenei hangarau i taea e matou te kite i enei ratonga e 3. Ko tenei tuhinga ka whakaahua i te whakawhanaketanga o te ratonga whakawhiti kōnae me te ratonga whakawhiti raraunga ki te kaihoko, engari ki te whai hua te tuhinga, ka tuhia e ahau mo te ratonga mo te whakahou i nga raraunga i roto i te papaarangi.

He aha te mea?

Ko te NIFI he hoahoanga toha mo te uta whakarara tere me te tukatuka raraunga, he maha nga monomai mo nga puna me nga huringa, te whakaputanga o nga whirihoranga me te maha atu. Ko te bonus pai ko te tino ngawari ki te whakamahi. Ko nga tikanga iti penei i te getFile, sendHttpRequest me etahi atu ka taea te tohu hei tapawha. Ko ia tapawha e tohu ana i tetahi tukanga, ko te tauwhitinga ka kitea i te ahua i raro nei. Kua tuhia nga tuhinga taipitopito mo nga taunekeneke tatūnga tukanga konei , mo te hunga e korero Russian - konei. Ko nga tuhinga e whakaatu tika ana me pehea te wetewete me te whakahaere i te NIFI, me pehea hoki te hanga i nga tukanga, e mohiotia ana ko nga tapawha.
Ko te whakaaro ki te tuhi i tetahi tuhinga i whanau mai i muri i te rapunga roa me te hanga i nga korero i whakawhiwhia ki tetahi mea mohio, me te hiahia kia pai ake te noho mo nga kaihanga a meake nei.

Hei tauira:

Ka whakaarohia he tauira mo te taunekeneke o nga tapawha ki a raua ano. He tino ngawari te kaupapa whanui: Ka whiwhi matou i tetahi tono HTTP (I roto i te ariā, me te konae kei roto i te tinana o te tono. Hei whakaatu i nga kaha o te NIFI, i roto i tenei tauira ka tiimata te tono ki te tango i tetahi konae mai i te rokiroki konae a rohe. ), ka whakahokia e matou he whakautu kua tae mai te tono, he rite tonu te mahi ki te tango i tetahi konae mai i a FH, katahi ka tukuna ma te FTP ki te FH. He mea tika kia whakamarama ko nga tukanga e pahekoheko ana tetahi ki tetahi na roto i te mea e kiia nei ko te flowFile. Koinei te hinonga turanga i roto i te NIFI e penapena huanga me nga ihirangi. Ko te ihirangi ko nga raraunga e whakaatuhia ana e te konae awa. Ko te tikanga, ki te whiwhi koe i tetahi konae mai i tetahi tapawha ka whakawhiti atu ki tetahi atu, ko te ihirangi ko to konae.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

Ka taea e koe te kite, ko tenei pikitia e whakaatu ana i te tukanga whanui. HandleHttpRequest - ka whakaae ki nga tono, ReplaceText - ka whakaputa i te tinana whakautu, HandleHttpResponse - ka tukuna he whakautu. FetchFile - ka whiwhi i tetahi konae mai i te rokiroki konae, ka whakawhiti ki te tapawha PutSftp - ka tuu tenei konae ki runga FTP, ki te wahitau kua tohua. Inaianei ake mo tenei tukanga.

I tenei take, ko te tono te timatanga o nga mea katoa. Kia titiro tatou ki ona tawhā whirihoranga.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

Ko nga mea katoa kei konei he iti noa atu engari ko te StandardHttpContextMap - he momo ratonga tenei ka taea e koe te tuku me te whiwhi tono. I roto i nga korero taipitopito me nga tauira, ka kite koe - konei

Panuku, me titiro ki nga tawhā whirihoranga ReplaceText o te tapawha. He pai ki te aro ki te ReplacementValue - koinei te mea ka whakahokia ki te kaiwhakamahi i roto i te ahua o te whakautu. I roto i nga tautuhinga ka taea e koe te whakatika i te taumata o te takiuru, ka taea e koe te kite i nga raarangi {te wahi i wetewetehia e koe nifi}/nifi-1.9.2/logs, kei reira ano nga tawhā rahunga/angitu - i runga i enei tawhā ka taea e koe te whakahaere i te katoa o te tukanga. . Arā, i roto i te take o te tukatuka kuputuhi angitu, ka karangahia te tukanga o te tuku urupare ki te kaiwhakamahi, a, i tetahi atu keehi ka tuhia noa e matou te tukanga kaore i angitu.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

Karekau he mea whakamere i roto i nga ahuatanga o HandleHttpResponse engari ko te mana ina oti pai te waihanga whakautu.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

Kua whakatauhia e matou te tono me te whakautu - me haere ki te tango i te konae me te whakatakoto ki runga i te tūmau FTP. FetchFile - ka whiwhi i tetahi konae i te ara kua tohua i roto i nga tautuhinga ka tukuna ki te tukanga e whai ake nei.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

Na ko te tapawha PutSftp - ka tuu te konae ki te rokiroki konae. Ka kite tatou i nga tawhā whirihoranga i raro nei.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

He pai ki te aro ki te meka ko ia tapawha he tukanga motuhake me whakarewahia. I titiro matou ki te tauira tino ngawari kaore e hiahiatia he whakaritenga uaua. I muri mai, ka titiro matou ki te tukanga he iti ake te uaua, ka tuhia e matou he iti ki runga i nga awaawa.

He tauira uaua ake

Ko te ratonga whakawhiti raraunga ki te kaihoko i puta he iti ake te uaua na te tukanga o te whakarereke i te karere SOAP. Ko te tukanga whānui e whakaatuhia ana i te ahua i raro nei.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

I konei kaore ano i te tino uaua te whakaaro: i tae mai he tono mai i te kaihoko e hiahia ana ia ki nga raraunga, ka tukuna he whakautu kua tae mai he karere, ka tiimata te mahi ki te tango i te konae whakautu, katahi ka whakatikahia me etahi whakaaro, katahi ka i whakawhitia te konae ki te kaihoko i te ahua o te karere SOAP ki te tūmau.

Ki taku whakaaro kaore he take ki te whakaahua ano i era tapawha i kitea e matou i runga ake nei - me nuku totika ki nga waahanga hou. Mena ka hiahia koe ki te whakatika i tetahi konae me nga momo tapawha Whakakapi Kuputuhi noa kaore e pai, me tuhi koe i taau ake tuhinga. Ka taea tenei ma te whakamahi i te tapawha ExecuteGroogyScript. Ko ona tautuhinga e whakaatuhia ana i raro nei.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

E rua nga whiringa mo te uta i te tuhinga ki tenei tapawha. Ko te mea tuatahi ma te tango i tetahi konae me te tuhinga. Ko te tuarua ko te whakauru i tetahi tuhinga ki roto scriptBody. Ki taku mohio, he maha nga reo e tautokohia ana e te tapawha executeScript - he groovy tetahi o ratou. Ka whakapouri ahau i nga kaiwhakawhanake java - kaore e taea e koe te tuhi tuhinga ki te java ki nga tapawha penei. Mo te hunga e tino hiahia ana, me hanga e koe taau ake tapawha ritenga me te taapiri atu ki te punaha NIFI. Ko tenei mahi katoa e haere tahi ana me te kanikani roa me te timipera, kaore matou e korero i tenei tuhinga. I whiria e au te reo rorirori. Kei raro nei he tuhinga whakamatautau e whakahou ana i te id i roto i te karere SOAP. He mea nui ki te tuhi. Ka tangohia e koe te konae mai i te flowFile ka whakahouhia, kaua e wareware me whakahoki ano ki reira, kua whakahoutia. Me mahara ano kaore nga whare pukapuka katoa e uru ana. Tera pea me kawemai e koe tetahi o nga pukapuka. Ko tetahi atu kino ko te tuhi i tenei tapawha he uaua ki te patuiro. He huarahi ki te hono atu ki te NIFI JVM ka timata i te mahi patuiro. Ko ahau ake, i whakarewahia e au he tono a-rohe me te whakatairite i te tango i tetahi konae mai i te huihuinga. I mahi ano ahau i te patuiro i te rohe. Ko nga hapa ka puta i te wa e utaina ana he tuhinga he tino ngawari ki a Google ka tuhia e NIFI ake ki te raarangi.

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)
}

Inaa, koinei te mutunga o te whakaritenga o te tapawha. I muri mai, ka whakawhitia te konae kua whakahoutia ki te tapawha, kei a ia te kawenga mo te tuku i te konae ki te tūmau. Kei raro nei nga tautuhinga mo tenei tapawha.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

Ka whakaahuahia e matou te tikanga ka tukuna he karere SOAP. Ka tuhi matou ki hea. I muri mai me tohu koe ko SOAP tenei.

Apache NIFI - He Tirohanga Poto mo nga Ahuatanga e Whakamahia ana

Tāpirihia ētahi āhuatanga pēnei i te kaihautū me te mahi (soapAction). Ka penapena ka tirohia. Ka kite koe i etahi atu korero mo te tuku tono SOAP konei

I tirohia e matou etahi waahanga mo te whakamahi i nga tukanga NIFI. He pehea te taunekeneke me te aha te tino painga? Ko nga tauira e whakaarohia ana he whakamatautau me te rereke rereke mai i nga mea e tupu ana i te pakanga. Te ti'aturi nei au ka whai hua tenei tuhinga mo nga kaihanga. Mauruuru koe mo to aro. Mena kei a koe etahi patai, tuhia. Ka ngana ahau ki te whakautu.

Source: will.com

Tāpiri i te kōrero