Apache Ignite Zero Deployment: Zero Zero?

Apache Ignite Zero Deployment: Zero Zero?

Ndife dipatimenti yopititsa patsogolo ukadaulo wa netiweki yogulitsa. Tsiku lina, oyang'anira adakhazikitsa ntchito yofulumizitsa kuwerengera kwakukulu pogwiritsa ntchito Apache Ignite molumikizana ndi MSSQL, ndikuwonetsa tsamba lomwe lili ndi zithunzi zokongola ndi zitsanzo za Java code. Nthawi yomweyo ndinakonda malowa Kutumiza Zero, kufotokozera komwe kumalonjeza zozizwitsa: simukuyenera kuyika Java yanu kapena Scala code pa node iliyonse mu gridi ndikuyiyikanso nthawi iliyonse ikasintha. Pamene ntchitoyo inkapitirira, zinapezeka kuti Zero Deployment ili ndi ntchito zenizeni, zomwe ndikufuna kugawana nazo. Pansi pa odulidwawo pali malingaliro ndi tsatanetsatane wa kukhazikitsa.

1. Ndemanga ya vuto

Chiyambi cha vuto ndi motere. Pali chikwatu cha malo ogulitsira a SalesPoint ndi chikwatu chazinthu za Sku (Stock Keeping Unit). Malo ogulitsa ali ndi "mtundu wa Store" wokhala ndi "zang'ono" ndi "zazikulu". Assortment (mndandanda wazogulitsa zomwe zagulitsidwa) zimalumikizidwa ndi malo aliwonse ogulitsa (zodzaza kuchokera ku DBMS) ndipo zidziwitso zimaperekedwa kuti kuyambira tsiku lomwe latchulidwa chinthucho.
kuchotsedwa ku assortment kapena kuwonjezeredwa ku assortment.

Pamafunika bungwe partitioned posungira mfundo zogulitsa ndi kusunga mmenemo zokhudza ogwirizana mankhwala kwa mwezi umodzi pasadakhale. Kugwirizana ndi makina omenyera nkhondo kumafuna kuti Ignite kasitomala node isenze data, kuwerengera kuchuluka kwa mawonekedwe (Mtundu wa Sitolo, Khodi ya Zogulitsa, tsiku, nambala_of_sales_points) ndikuyiyikanso ku DBMS.

2. Kuphunzira mabuku

Ndilibe chidziwitso chilichonse, kotero ndikuyamba kuvina kuchokera ku chitofu. Ndiko kuti, kuchokera ku ndemanga zofalitsa.

Nkhani ya 2016 Kuyambitsa Apache Ignite: Njira Zoyamba ili ndi ulalo ku zolembedwa za pulojekiti ya Apache Ignite komanso nthawi yomweyo chitonzo cha kusamveka bwino kwa zolembedwazi. Ndinawerenganso kangapo, kumveka bwino sikumabwera. Ndikunena za maphunziro ovomerezeka kuyambapo, zomwe
amalonjeza mwachiyembekezo "Mudzakhala okonzeka bwino!" Ndikuwona zosintha zachilengedwe, ndikuwonera makanema awiri a Apache Ignite Essentials, koma sizinali zothandiza pantchito yanga yeniyeni. Ndikuyambitsa Ignite kuchokera pamzere wamalamulo ndi fayilo yokhazikika "example-ignite.xml", ndikumanga pulogalamu yoyamba. Kuwerengera Kugwiritsa Ntchito pogwiritsa ntchito Maven. Pulogalamuyi imagwira ntchito ndikugwiritsa ntchito Zero Deployment, ndiye kukongola kwake!

Ndinawerenganso, ndipo pamenepo chitsanzocho chimagwiritsa ntchito affinityKey (yopangidwa kale kudzera mufunso la SQL), ndipo imagwiritsanso ntchito BinaryObject yachinsinsi:

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

Ndinawerenga Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ: mawonekedwe a binary - chinachake chonga kusinkhasinkha, kupeza minda ya chinthu ndi dzina. Mutha kuwerenga mtengo wamunda popanda kuchotseratu chinthucho (kusunga kukumbukira). Koma chifukwa chiyani BinaryObject imagwiritsidwa ntchito m'malo mwa Munthu, popeza pali Zero Deployment? Chifukwa IgniteCache adasamutsidwa ku IgniteCache ? Sizikudziwikabe.

Ndikukonzanso Compute Application kuti igwirizane ndi vuto langa. Chinsinsi choyambirira cha bukhu lazogulitsa mu MSSQL chimatanthauzidwa ngati [id] [int] OSATI NULL, ndimapanga cache mwa fanizo.

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

Mu xml config ndikuwonetsa kuti cache yagawidwa

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

Kugawikana ndi malo ogulitsa kumaganiza kuti gawo lomwe likufunika lidzamangidwa pamagulu aliwonse amtundu wa ma salesPointCache omwe amapezeka pamenepo, pambuyo pake node ya kasitomala idzachita zomaliza.

Ndikuwerenga phunziro Ntchito Yoyamba Yoyatsira Compute, ndimachita mofananiza. Pamagulu onse ammagulu ndimayendetsa IgniteRunnable (), monga chonchi:

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

Ndimawonjezera kuphatikizira ndikukweza malingaliro ndikuyendetsa pa data yoyeserera. Chilichonse chimagwira ntchito kwanuko pa seva yachitukuko.

Ndimayambitsa ma seva awiri oyesera a CentOs, tchulani ma adilesi a IP mu default-config.xml, ndikuchita chilichonse.

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

Node zonse za Ignite zikuyenda ndipo zimatha kuwonana. Ndimatchula ma adilesi ofunikira mu xml config ya kasitomala ntchito, imayamba, imawonjezera node yachitatu ku topology ndipo nthawi yomweyo palinso mfundo ziwiri. Tsambali likuwonetsa "ClassNotFoundException: model.SalesPoint" pamzere

SalesPoint sp=salesPointCache.get(spId);

StackOverflow imati chifukwa cha cholakwikacho ndikuti palibe kalasi ya SalesPoint yokhazikika pamaseva a CentOs. Tafika. Nanga bwanji "simuyenera kuyika ma code anu a Java pa node iliyonse" ndi zina zotero? Kapena kodi "code yanu ya Java" sizokhudza SalesPoint?

Mwina ndaphonya chinachake - ndikuyambanso kufufuza, kuwerenga ndi kufufuza kachiwiri. Patapita kanthawi, ndimamva kuti ndawerenga zonse pamutuwu, palibe chatsopano. Pamene ndinali kufufuza, ndinapeza ndemanga zosangalatsa.

Valentin Kulichenko, Mtsogoleri Wopanga mapulani ku GridGain Systems, Yankhani pa StackOverflow, Epulo 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.

Lingaliro lina lovomerezeka: Denis Magda, Mtsogoleri wa kasamalidwe kazinthu, GridGain Systems.

Nkhani ya HabrΓ© za microservices amatchula zolemba zitatu za Denis Magda: Microservices Gawo I, Microservices Gawo II, Microservices Gawo III 2016-2017. M'nkhani yachiwiri, Denis akusonyeza kuti ayambe node yamagulu kudzera pa MaintenanceServiceNodeStartup.jar. Mutha kugwiritsanso ntchito kukhazikitsa ndi xml kasinthidwe ndi mzere wolamula, koma muyenera kuyika pamanja makalasi okhazikika pamagulu aliwonse omwe atumizidwa:

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.

Inde, ndi zimenezo. Apa zikuwonekera, bwanji, mtundu wodabwitsa wa binary!

3.SingleJar

Denis adatenga malo oyamba pazowerengera zanga, IMHO phunziro lothandiza kwambiri kuposa zonse zomwe zilipo. Mu zake MicroServicesExample Github ili ndi chitsanzo chokonzekeratu chokhazikitsa ma cluster node, omwe amaphatikiza popanda squatting yowonjezera.

Ndimachita chimodzimodzi ndikupeza fayilo imodzi ya mtsuko yomwe imayambitsa "node ya data" kapena "node yamakasitomala" kutengera kutsutsana kwa mzere wa lamulo. Msonkhanowo umayamba ndikugwira ntchito. Zero Deployment wagonjetsedwa.

Kusintha kuchokera ku ma megabytes a data yoyesa kupita ku makumi a ma gigabytes a data yankhondo kunawonetsa kuti mawonekedwe a binary alipo pazifukwa. Zinali zofunikira kukhathamiritsa kugwiritsa ntchito kukumbukira pama node, ndipo apa ndipamene BinaryObject idakhala yothandiza kwambiri.

4. Mapeto

Chitonzo choyamba chomwe adakumana nacho pakusamveka bwino kwa zolemba za projekiti ya Apache Ignite zidakhala zachilungamo; zasintha pang'ono kuyambira 2016. Sikophweka kwa woyambitsa kusonkhanitsa chitsanzo chogwira ntchito kutengera tsamba la webusayiti ndi/kapena posungira.

Kutengera zotsatira za ntchito yomwe idachitika, zomwe zidawoneka kuti Zero Deployment imagwira ntchito, koma pamlingo wadongosolo. Chinachake chonga ichi: BinaryObject imagwiritsidwa ntchito pophunzitsa ma node akutali kuti agwire ntchito ndi makalasi achizolowezi; Zero Deployment - makina amkati
Apache Ignite yokha ndikugawa zinthu zamakina pagulu lonselo.

Ndikukhulupirira kuti zomwe ndakumana nazo zidzakhala zothandiza kwa ogwiritsa ntchito atsopano a Apache Ignite.

Source: www.habr.com

Kuwonjezera ndemanga