Silisebe lophuhliso lwetekhnoloji yenethiwekhi yokuthengisa. Ngolunye usuku, abaphathi babeka umsebenzi wokukhawulezisa izibalo ezinkulu ngokusebenzisa i-Apache Ignite ngokubambisana ne-MSSQL, kwaye ibonise iwebhusayithi enemifanekiso emihle kunye nemizekelo yekhowudi yeJava. Ndayithanda ngoko nangoko isayithi
1. Ingxelo yengxaki
Umongo wengxaki umi ngolu hlobo lulandelayo. Kukho indawo yokuthengisa yeSalesPoint kunye neSku (Iyunithi yokuGcina iStock) isilawuli semveliso. Indawo yokuthengisa inophawu "lweSitolo" esinamaxabiso "encinci" kunye "nomkhulu". I-assortment (uluhlu lweemveliso zendawo yokuthengisa) luqhagamshelwe kwindawo nganye yokuthengisa (ilayishwe kwi-DBMS) kwaye ulwazi lunikezelwa ukuba ukususela kumhla ochaziweyo imveliso echaziweyo.
ikhutshiwe kwi-assortment okanye yongezwe kwi-assortment.
Kuyafuneka ukuba uququzelele i-cache eyahlulayo yamanqaku okuthengisa kunye nokugcina kuyo ulwazi malunga neemveliso ezixhunyiwe kwinyanga kwangaphambili. Ukuhambelana nenkqubo yokulwa kufuna i-Ignite client node ukulayisha idatha, ukubala i-aggregate yefom (Uhlobo lweSitolo, ikhowudi yeMveliso, usuku, inombolo_ye_yexabiso_yentengiso) kwaye uyilayishe kwakhona kwi-DBMS.
2. Ukufundwa koncwadi
Andikabinawo amava okwangoku, ngoko ke ndiqala ukudanisa esitovini. Oko kukuthi, kuphononongo lweempapasho.
Inqaku lowama-2016
uthembisa ngethemba βUza kuvuka kwaye ubaleka ngokukhawuleza!β Ndijonga useto oluguquguqukayo lokusingqongileyo, ndibukele iividiyo ezimbini ze-Apache Ignite Essentials, kodwa azizange zibe luncedo kakhulu kumsebenzi wam othile. Ndiphehlelela ngempumelelo Ignite kumgca womyalelo ngefayile eqhelekileyo βexample-ignite.xmlβ, ukwakha isicelo sokuqala.
Ndifunde ngakumbi, kwaye apho umzekelo usebenzisa kwangoko i-affinityKey (eyenziwe ngaphambili ngombuzo we-SQL), kwaye isebenzisa iBinaryObject engaqondakaliyo:
IgniteCache<BinaryObject, BinaryObject> people
= ignite.cache("Person").withKeepBinary();
Ndayifunda
Ndenza kwakhona iSicelo seKhompyutha ukuze silungele imeko yam. Isitshixo esingundoqo soluhlu lwamanqaku entengiso kwi-MSSQL ichazwa njenge [id] [int] NOT NULL, ndenza i-cache ngokufanisa.
IgniteCache<Integer, SalesPoint> salesPointCache=ignite.cache("spCache")
Kuqwalaselo lwe-xml ndibonisa ukuba i-cache yahlulelwe
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="spCache"/>
<property name="cacheMode" value="PARTITIONED"/>
</bean>
Ukwahlula ngendawo yokuthengisa kucinga ukuba i-aggregate efunekayo iya kwakhiwa kwindawo nganye yeqela kwiirekhodi ze-salesPointCache ezikhoyo apho, emva koko i-node yomxhasi iya kwenza i-summary yokugqibela.
Ndifunda isifundo
@Override
public void run() {
SalesPoint sp=salesPointCache.get(spId);
sp.calculateSalesPointCount();
..
}
Ndiyongeza i-aggregation kunye nokulayisha ingqiqo kwaye ndiyiqhube kwiseti yedatha yovavanyo. Yonke into isebenza ekuhlaleni kwiseva yophuhliso.
Ndisungula iiseva ezimbini zovavanyo ze-CentOs, khankanya iidilesi ze-IP kwi-default-config.xml, phumeza nganye
./bin/ignite.sh config/default-config.xml
Zombini iindawo ze-Ignite ziyasebenza kwaye ziyakwazi ukubonana. Ndicacisa iidilesi ezifunekayo kwi-xml config yesicelo somthengi, iqala, yongeza i-node yesithathu kwi-topology kwaye ngokukhawuleza kukho iindawo ezimbini kwakhona. Ilog ibonisa "ClassNotFoundException: model.SalesPoint" emgceni
SalesPoint sp=salesPointCache.get(spId);
I-StackOverflow ithi isizathu sempazamo kukuba akukho klasi ye-SalesPoint yesiko kwiiseva ze-CentOs. Sifikile. Kuthekani "akunyanzelekanga ukuba usebenzise ngesandla ikhowudi yakho yeJava kwindawo nganye" njalo njalo? Okanye ngaba "ikhowudi yakho yeJava" ayikho malunga neSalesPoint?
Mhlawumbi kukho into endiyiphosileyo - ndiqala ukukhangela kwakhona, ndifunde kwaye ndikhangele kwakhona. Emva kwexesha, ndiziva ndifunde yonke into ngesihloko, akusekho nto intsha. Ngoxa ndandikhangela, ndafumana amagqabaza anomdla.
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.
Olunye uluvo olugunyazisiweyo:
Inqaku kuHabrΓ©
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.
Ngokwenene, yiloo nto. Apha kuvela, kutheni, le fomati yokubini engaqondakaliyo!
3.SingleJar
UDenis uthathe indawo yokuqala kumlinganiso wam, i-IMHO esona sifundo siluncedo kuzo zonke ezikhoyo. Kweyakhe
Ndenza ngendlela efanayo kwaye ndifumana ifayile yejagi enye eqalisa "indawo yedatha" okanye "indawo yomthengi" ngokuxhomekeke kwingxoxo yomgca womyalelo. Indibano iyaqala kwaye isebenze. I-Zero Deployment yoyisiwe.
Ukutshintsha ukusuka kwi-megabytes yedatha yovavanyo ukuya kumashumi eegigabhayithi zedatha yokulwa kubonise ukuba ifomathi yokubini ikhona ngesizathu. Kwakuyimfuneko ukwandisa ukusetyenziswa kwememori kwiindawo, kwaye kulapho i-BinaryObject yajika yaba luncedo kakhulu.
4. Izigqibo
Ingcikivo yokuqala efunyenweyo malunga nokungacaci kwamaxwebhu eprojekthi ye-Apache Ignite iye yabonakala ilungile; kuncinci okutshintshileyo ukusukela ngo-2016. Akulula kumntu oqalayo ukudibanisa iprototype esebenzayo esekelwe kwiwebhusayithi kunye / okanye indawo yokugcina.
Ngokusekelwe kwiziphumo zomsebenzi owenziweyo, ingcamango yayikukuba iZero Deployment isebenza, kodwa kuphela kwinqanaba lenkqubo. Into efana nale: I-BinaryObject isetyenziselwa ukufundisa ii-nodes ze-cluster ezikude ukuze zisebenze ngeeklasi eziqhelekileyo; Zero Deployment - indlela yangaphakathi
I-Apache Ignite ngokwayo kwaye isasaze izinto zenkqubo kulo lonke iqela.
Ndiyathemba ukuba amava am aya kuba luncedo kubasebenzisi abatsha be-Apache Ignite.
umthombo: www.habr.com