I-Apache Ignite Zero Deployment: Zero Ngempela?

I-Apache Ignite Zero Deployment: Zero Ngempela?

Siwumnyango wokuthuthukiswa kobuchwepheshe wenethiwekhi yokudayisa. Ngolunye usuku, abaphathi babeka umsebenzi wokusheshisa izibalo ezinkulu ngokusebenzisa i-Apache Ignite ngokuhlanganyela ne-MSSQL, futhi babonisa iwebhusayithi enemifanekiso emihle nezibonelo zekhodi ye-Java. Ngayithanda ngokushesha isayithi I-Zero Deployment, incazelo ethembisa izimangaliso: akudingeki ukuthi usebenzise i-Java yakho noma ikhodi ye-Scala mathupha ku-node ngayinye kugridi futhi uphinde uyiphake isikhathi ngasinye lapho ishintsha. Njengoba umsebenzi uqhubeka, kwavela ukuthi i-Zero Deployment inokusetshenziswa okuthile, izici engifuna ukwabelana ngazo. Ngezansi kokusikwa kunemicabango kanye nemininingwane yokusetshenziswa.

1. Isitatimende senkinga

Umnyombo wenkinga umi kanje. Kukhona uhla lwemibhalo lwezindawo zokuthengisa ze-SalesPoint kanye nohla lwemibhalo lomkhiqizo lwe-Sku (Iyunithi Yokugcina Isitoreji). Indawo okuthengiswa kuyo inesibaluli esithi "Uhlobo lwesitolo" esinamanani "amancane" kanye "namakhulu". I-assortment (uhlu lwemikhiqizo yendawo yokuthengisa) ixhunywe endaweni ngayinye yokuthengisa (ilayishwe ku-DBMS) futhi ulwazi lunikezwa ukuthi kusukela ngosuku olushiwo umkhiqizo oshiwo.
kukhishwe ku-assortment noma okwengezwe ku-assortment.

Kudingeka ukuhlela inqolobane ehlukanisiwe yamaphoyinti okuthengisa futhi ugcine kuyo ulwazi mayelana nemikhiqizo exhunyiwe inyanga yonke kusengaphambili. Ukuhambisana nesistimu yokulwa kudinga indawo yeklayenti ye-Ignite ukuze ilayishe idatha, ibale isamba sefomu (Uhlobo lwesitolo, ikhodi yomkhiqizo, usuku, inombolo_yamaphuzu_okuthengisa) futhi ilayishe emuva ku-DBMS.

2. Ukufunda izincwadi

Angikabi nakho okuhlangenwe nakho, ngakho-ke ngiqala ukudansa ngisuka esitofini. Okungukuthi, kusukela ekubuyekezweni kokushicilelwe.

I-athikili yango-2016 Sethula i-Apache Ignite: Izinyathelo Zokuqala iqukethe isixhumanisi semibhalo yephrojekthi ye-Apache Ignite futhi ngesikhathi esifanayo isihlamba sokungacacile kwalo mbhalo. Ngiphinde ngafunda izikhathi ezimbalwa, ukucaca akufiki. Ngibheka okokufundisa okusemthethweni ukuqalisa, okuyinto
ngethemba uthembisa “Uzovuka futhi ugijime ngokushesha!” Ngibheka izilungiselelo eziguquguqukayo zemvelo, ngibuka amavidiyo amabili we-Apache Ignite Essentials, kodwa abengalusizo kakhulu emsebenzini wami othize. Ngethula ngempumelelo i-Ignite emugqeni womyalo ngefayela elijwayelekile elithi “example-ignite.xml”, ngakha uhlelo lokusebenza lokuqala. Bala Isicelo usebenzisa iMaven. Uhlelo lokusebenza lusebenza futhi lusebenzisa i-Zero Deployment, yeka ubuhle!

Ngiqhubeke nokufunda, futhi lapho isibonelo sisebenzisa ngokushesha i-affinityKey (edalwe ngaphambili ngombuzo we-SQL), futhi sisebenzisa i-BinaryObject engaqondakali:

IgniteCache<BinaryObject, BinaryObject> people 
        = ignite.cache("Person").withKeepBinary(); 

Ngayifunda kancane: ifomethi kanambambili - into efana nokuboniswa, ukufinyelela izinkambu zento ngegama. Ingakwazi ukufunda inani lenkambu ngaphandle kokulahla ngokuphelele into (igcina inkumbulo). Kodwa kungani kusetshenziswa i-BinaryObject esikhundleni soMuntu, njengoba kukhona u-Zero Deployment? Kungani IgniteCache idluliselwe ku-IgniteCache ? Akukacaci okwamanje.

Ngenza kabusha Isicelo Sekhompyutha ukuze sihambisane necala lami. Ukhiye oyinhloko wohlu lwamaphoyinti okuthengisa ku-MSSQL uchazwa ngokuthi [id] [int] HHAYI NULL, ngakha inqolobane ngokufanisa.

IgniteCache<Integer, SalesPoint> salesPointCache=ignite.cache("spCache")

Ku-xml config ngikhombisa ukuthi inqolobane ihlukaniswe

<bean class="org.apache.ignite.configuration.CacheConfiguration">
    <property name="name" value="spCache"/>
    <property name="cacheMode" value="PARTITIONED"/>
</bean>

Ukwehlukanisa ngendawo okuthengiswa kuyo kucabanga ukuthi isamba esidingekayo sizokwakhiwa endaweni ngayinye yeqoqo lamarekhodi e-salesPointCache atholakala lapho, ngemva kwalokho i-client nodi izokwenza isifinyezo sokugcina.

Ngifunda okokufundisa Isicelo sokuqala se-Ignite Compute, ngikwenza ngokufanisa. Ku-cluster node ngayinye ngisebenzisa i-IgniteRunnable(), into enjengale:

  @Override
  public void run() {
    SalesPoint sp=salesPointCache.get(spId);
    sp.calculateSalesPointCount();
    ..
  }

Ngengeza ukuhlanganisa kanye nokulayisha okunengqondo futhi ngiyisebenzise kusethi yedatha yokuhlola. Yonke into isebenza endaweni kuseva yokuthuthukisa.

Ngethula amaseva amabili okuhlola ama-CentOs, ngicacise amakheli e-IP kokuthi okuzenzakalelayo-config.xml, ngisebenzise kokunye

./bin/ignite.sh config/default-config.xml

Womabili ama-Ignite node ayasebenza futhi ayakwazi ukubonana. Ngicacisa amakheli adingekayo ku-xml config yohlelo lokusebenza lweklayenti, iqala, yengeza inodi yesithathu ku-topology futhi ngokushesha kuba khona izindawo ezimbili futhi. Ilogi ibonisa okuthi “ClassNotFoundException: model.SalesPoint” kulayini

SalesPoint sp=salesPointCache.get(spId);

I-StackOverflow ithi isizathu sephutha ukuthi asikho isigaba se-SalesPoint sangokwezifiso kumaseva e-CentOs. Sesifikile. Kuthiwani ngokuthi "akudingeki ukuthi usebenzise ngesandla ikhodi yakho ye-Java endaweni ngayinye" nokunye? Noma ingabe "ikhodi yakho ye-Java" ayimayelana ne-SalesPoint?

Cishe ngiphuthelwe okuthile - ngiqala ukusesha futhi, ngifunde futhi ngicinge futhi. Ngemva kwesikhashana, ngiba nomuzwa wokuthi sengifunde yonke into ngesihloko, akusekho okusha. Ngenkathi ngisacinga, ngathola ukuphawula okuthakazelisayo.

Valentin Kulichenko, Umdwebi Wezakhiwo Oholayo eGridGain Systems, impendulo ku-StackOverflow, Ephreli 2016:

Model classes are not peer deployed, but you can use withKeepBinary() flag
on the cache and query BinaryObjects. This way you will avoid deserialization
on the server side and will not get ClassNotFoundException.

Omunye umbono ogunyaziwe: Denis Magda, Umqondisi wokuphathwa komkhiqizo, i-GridGain Systems.

I-athikili ngo-Habré mayelana nama-microservices izinkomba ezintathu zendatshana kaDenis Magda: Microservices Ingxenye I, Microservices Ingxenye II, Microservices Ingxenye III 2016-2017. Esihlokweni sesibili, u-Denis uphakamisa ukuqala i-cluster node nge-MaintenanceServiceNodeStartup.jar. Ungasebenzisa futhi ukuqaliswa ngokucushwa kwe-xml kanye nomugqa womyalo, kodwa-ke udinga ukubeka amakilasi ngokwezifiso endaweni ngayinye ye-cluster esetshenzisiwe:

That's it. Start (..)  node using MaintenanceServiceNodeStartup file or pass
maintenance-service-node-config.xml to Apache Ignite's ignite.sh/bat scripts.
If you prefer the latter then make sure to build a jar file that will contain
all the classes from java/app/common and java/services/maintenance directories.
The jar has to be added to the classpath of every node where the service
might be deployed.

Ngempela, kunjalo. Lapha kuvela, kungani, le fomethi kanambambili engaqondakali!

3.IJar Elilodwa

U-Denis uthathe indawo yokuqala esilinganisweni sami somuntu siqu, i-IMHO isifundo esiwusizo kunazo zonke ezitholakalayo. Kweyakhe I-MicroServicesExample I-Github iqukethe isibonelo esenziwe ngomumo ngokuphelele sokusetha ama-cluster node, ahlanganisa ngaphandle kokunye okungeziwe.

Ngikwenza ngendlela efanayo futhi ngithole ifayela lembiza elilodwa elivula “i-node yedatha” noma “i-client node” kuye nge-agumenti yomugqa womyalo. Umhlangano uyaqala futhi usebenze. I-Zero Deployment ihluliwe.

Ushintsho olusuka kumamegabhayithi edatha yokuhlola ukuya kumashumi amagigabhayithi edatha yokulwa lubonise ukuthi ifomethi kanambambili ikhona ngesizathu. Bekudingekile ukukhulisa ukusetshenziswa kwememori kuma-node, futhi kulapho i-BinaryObject ivele yaba usizo kakhulu.

4. Iziphetho

Isihlamba sokuqala okuhlangatshezwane naso mayelana nokungacacile kwemibhalo yephrojekthi ye-Apache Ignite kuvele ukuthi yayilungile; kuncane okushintshile kusukela ngo-2016. Akulula ukuthi oqalayo ahlanganise isibonelo esisebenzayo ngokusekelwe kuwebhusayithi kanye/noma inqolobane.

Ngokusekelwe emiphumeleni yomsebenzi owenziwe, umbono wawuwukuthi i-Zero Deployment isebenza, kodwa kuphela ezingeni lesistimu. Okuthile okufana nalokhu: I-BinaryObject isetshenziselwa ukufundisa ama-cluster node akude ukusebenza namakilasi angokwezifiso; I-Zero Deployment - indlela yangaphakathi
I-Apache Ignite ngokwayo futhi isabalalisa izinto zesistimu kulo lonke iqoqo.

Ngethemba ukuthi ulwazi lwami luzoba usizo kubasebenzisi abasha be-Apache Ignite.

Source: www.habr.com

Engeza amazwana