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
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
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.
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
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
@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.
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:
Nkhani ya HabrΓ©
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
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