Apache Ignite Zero Deployment: Chaizvoizvo Zero?

Apache Ignite Zero Deployment: Chaizvoizvo Zero?

Isu tiri dhipatimendi rekuvandudza tekinoroji rekutengesa network. Rimwe zuva, manejimendi akaisa basa rekumhanyisa maverengero makuru nekushandisa Apache Ignite pamwe neMSSQL, uye yakaratidza webhusaiti ine yakanaka mifananidzo uye mienzaniso yeJava kodhi. Ndakabva ndafarira nzvimbo yacho Zero Deployment, tsananguro iyo inovimbisa zvishamiso: haufanirwe kuendesa Java yako kana Scala kodhi pane imwe neimwe node mugedhi uye woidzoserazve nguva imwe neimwe yainochinja. Sezvo basa richifambira mberi, zvakazoitika kuti Zero Deployment ine mashandisirwo chaiwo, izvo zvandinoda kugovera. Pazasi pekuchekwa pane pfungwa uye ruzivo rwekuita.

1. Chirevo chedambudziko

Hunhu hwedambudziko hwunotevera. Iko kune SalesPoint yekutengesa nzvimbo dhairekitori uye Sku (Stock Kuchengeta Unit) chigadzirwa dhairekitori. Nzvimbo yekutengesa ine "Chitoro chemhando" hunhu nehunhu "diki" uye "hombe". An assortment (rondedzero yezvigadzirwa zvenzvimbo yekutengesa) yakabatana kune imwe neimwe nzvimbo yekutengesa (yakatakurwa kubva kuDBMS) uye ruzivo rwunopihwa kuti kubva pazuva rakatarwa chigadzirwa chakataurwa.
yakabviswa kubva kune assortment kana kuwedzerwa kune assortment.

Izvo zvinodiwa kuronga cache yakakamurwa yemapoinzi ekutengesa uye chengetedza mairi ruzivo nezve zvigadzirwa zvakabatana kwemwedzi isati yasvika. Kuenderana nehurongwa hwekurwa kunoda iyo Ignite mutengi node kurodha data, kuverenga muunganidzwa wefomu (Chitoro mhando, Chigadzirwa kodhi, zuva, nhamba_ye_sales_points) uye idzorere kuDBMS.

2. Kudzidza mabhuku

Ini handisati ndave neruzivo, saka ndiri kutanga kutamba kubva pachitofu. Ndiko, kubva pakuongorora kwezvinyorwa.

Chinyorwa 2016 Kuunza Apache Ignite: Matanho ekutanga ine chinongedzo kune zvinyorwa zveApache Ignite purojekiti uye panguva imwe chete ruzvidzo rwekusajeka kwechinyorwa ichi. Ndakaiverengazve kaviri, kujeka hakuuye. Ini ndinotaura kune yepamutemo tutorial kutanga, iyo
netarisiro inovimbisa "Uchasimuka uye uchimhanya mune jiffy!" Ndiri kufunga mamiriro ekuchinja nharaunda, ndichiona maviri eApache Ignite Essentials mavhidhiyo, asi anga asina kunyanyo batsira pabasa rangu chairo. Ini ndabudirira kuburitsa Ignite kubva pamutsetse wekuraira neyakajairwa faira "example-ignite.xml", ndichivaka yekutanga application. Compute Application kushandisa Maven. Chishandiso chinoshanda uye chinoshandisa Zero Deployment, kunaka kwakadini!

Ndakaverenga mberi, uye ipapo muenzaniso wacho unobva washandisa affinityKey (yakagadzirwa kare kuburikidza nemubvunzo weSQL), uye inoshandisa isinganzwisisike BinaryObject:

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

Ndakariverenga zvishoma: bhinari format - chimwe chinhu chakaita sekuratidzira, kuwana minda yechinhu nezita. Inogona kuverenga kukosha kwemunda pasina kudzima zvachose chinhu (kuchengetedza ndangariro). Asi nei BinaryObject ichishandiswa pachinzvimbo cheMunhu, sezvo paine Zero Deployment? Sei IgniteCache kuendeswa kuIgniteCache ? Hazvisati zvajeka.

Ndiri kugadzirisa iyo Compute Application kuti ienderane nenyaya yangu. Kiyi yekutanga yedhairekitori remapoinzi ekutengesa muMSSQL inotsanangurwa se [id] [int] NOT NULL, ini ndinogadzira cache nekuenzanisa.

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

Mune xml config ini ndinoratidza kuti cache yakakamurwa

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

Kugovanisa nenzvimbo yekutengesa inofungidzira kuti iyo inodiwa yakaunganidzwa ichavakwa pane imwe neimwe cluster node yekutengesaPointCache marekodhi anowanikwa ipapo, mushure meiyo mutengi node ichaita yekupedzisira muchidimbu.

Ndiri kuverenga tutori Kutanga Ignite Compute Application, ndinozviita nekuenzanisa. Pane imwe neimwe cluster node ndinomhanya IgniteRunnable (), chimwe chinhu chakadai:

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

Ini ndinowedzera aggregation uye kurodha mantiki uye ndinomhanyisa pane yekuyedza data set. Zvese zvinoshanda munharaunda pane server yekuvandudza.

Ini ndinotanga maviri CentOs bvunzo maseva, tsanangura iyo IP kero mune default-config.xml, ita pane imwe neimwe.

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

Ose maIgnite node ari kumhanya uye anogona kuonana. Ini ndinotsanangura kero dzinodiwa mu xml config yemutengi application, inotanga, inowedzera yechitatu node kune topology uye pakarepo pane mbiri node zvakare. Iyo log inoratidza "ClassNotFoundException: model.SalesPoint" mumutsara

SalesPoint sp=salesPointCache.get(spId);

StackOverflow inotaura kuti chikonzero chekukanganisa ndechekuti hapana kirasi yekutengesa SalesPoint pane maseva eCentOs. Tasvika. Zvakadini ne "haufanire kutumira yako Java kodhi pane imwe neimwe node" zvichingodaro? Kana kuti "code yako yeJava" haisi yeSalesPoint?

Pamwe ndarasikirwa nechimwe chinhu - ndinotanga kutsvaga zvakare, kuverenga nekutsvaga zvakare. Mushure mechinguva, ndinonzwa kunzwa kuti ndaverenga zvese zviri pamusoro, hapana chitsva zvakare. Pandakanga ndichitsvaga, ndakawana mamwe mashoko anofadza.

Valentin Kulichenko, Lead Architect paGridGain Systems, mhinduro paStackOverflow, Kubvumbi 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.

Imwe maonero ane chiremera: Denis Magda, Mutungamiriri wekutarisira zvigadzirwa, GridGain Systems.

Nyaya yaHabrΓ© nezve microservices inotaura zvinyorwa zvitatu naDenis Magda: Microservices Chikamu I, Microservices Chikamu II, Microservices Chikamu III 2016-2017. Muchikamu chechipiri, Denis anopa zano rekutanga cluster node kuburikidza MaintenanceServiceNodeStartup.jar. Iwe unogona zvakare kushandisa kuvhura ne xml kumisikidza uye mutsara wekuraira, asi ipapo iwe unofanirwa kuisa nemaoko makirasi etsika pane yega yega yakatumirwa cluster node:

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.

Hongu, ndizvozvo. Hezvino zvinobuda, sei, iyi isinganzwisisike binary fomati!

3.SingleJar

Denis akatora nzvimbo yekutanga muyero yangu pachangu, IMHO ndiyo inonyanya kubatsira dzidziso yezvose zviripo. Mune yake MicroServicesExample Github ine yakanyatso gadzirira-yakagadzirwa muenzaniso yekumisikidza cluster node, iyo inounganidza pasina imwe yekuwedzera squatting.

Ini ndinozviita nenzira imwechete uye ndinotora faira rejagi rimwe chete rinotangisa "data node" kana "mutengi node" zvichienderana nekupokana kwemutsara wekuraira. Gungano rinotanga uye rinoshanda. Zero Deployment yakundwa.

Shanduko kubva ku megabytes yedata rekuyedza kusvika kumakumi egigabytes ehondo data yakaratidza kuti iyo binary fomati iripo nechikonzero. Zvaive zvakafanira kukwirisa ndangariro kushandiswa pane node, uye apa ndipo pakaita BinaryObject inobatsira zvikuru.

4. Mhedziso

Kuzvidzwa kwekutanga kwakasangana nekusajeka kweApache Ignite purojekiti zvinyorwa zvakazove zvakanaka; zvishoma zvachinja kubva 2016. Hazvisi nyore kune anotanga kuunganidza inoshanda prototype zvichibva pawebhusaiti uye/kana repository.

Zvichienderana nemhedzisiro yebasa rakaitwa, fungidziro yaive yekuti Zero Deployment inoshanda, asi chete padanho rehurongwa. Chimwe chinhu chakadai: BinaryObject inoshandiswa kudzidzisa kure kure cluster nodes kushanda nemakirasi etsika; Zero Deployment - maitiro emukati
Apache Ignite pachayo uye inogovera system zvinhu musumbu rese.

Ndinovimba ruzivo rwangu ruchabatsira kune vatsva veApache Ignite vashandisi.

Source: www.habr.com

Voeg