Is muid an roinn forbartha teicneolaíochta de líonra miondíola. Lá amháin, leag an bhainistíocht an tasc chun ríomhaireachtaí ar scála mór a bhrostú trí úsáid a bhaint as Apache Ignite i gcomhar le MSSQL, agus léirigh siad láithreán gréasáin le léaráidí áille agus samplaí de chód Java. Thaitin an suíomh liom láithreach
1. Ráiteas ar an bhfadhb
Seo a leanas croílár na faidhbe. Tá eolaire SalesPoint de phointí díolacháin agus eolaire táirgí Sku (Stock Keeping Unit). Tá tréith “Cineál Store” ag an díolphointe leis na luachanna “beag” agus “mór”. Tá éagsúlacht (liosta de tháirgí an díolphointe) ceangailte le gach díolphointe (luchtaithe ón DBMS) agus soláthraítear faisnéis maidir leis an táirge sonraithe ón dáta sonraithe
eisiata ón assortment nó curtha leis an assortment.
Ní mór dó taisce deighilte de phointí díola a eagrú agus faisnéis a stóráil ann faoi tháirgí ceangailte ar feadh míosa roimh ré. Éilíonn comhoiriúnacht leis an gcóras comhraic go n-éilíonn nód an chliaint Ignite sonraí a luchtú, comhiomlán na foirme a ríomh (Cineál Store, Cód Táirge, lá, uimhir_of_sales_points) agus é a uaslódáil ar ais chuig an DBMS.
2. Staidéar ar an litríocht
Níl aon taithí agam go fóill, mar sin táim ag tosú ag damhsa ón sorn. Is é sin, ó athbhreithniú ar fhoilseacháin.
Airteagal 2016
geallann go dóchasach “Beidh tú ar an bhfód agus tú ar an bhfód! Táim ag déanamh amach na socruithe athróg timpeallachta, ag breathnú ar dhá fhíseán Apache Ignite Essentials, ach ní raibh siad an-úsáideach le haghaidh mo thasc sonrach. Seoladh Ignite go rathúil ón líne ordaithe leis an gcomhad caighdeánach “example-ignite.xml”, ag tógáil an chéad fheidhmchláir
Léigh mé a thuilleadh, agus ansin úsáideann an sampla láithreach affinityKey (a cruthaíodh níos luaithe trí cheist SQL), agus fiú úsáideann an BinaryObject mistéireach:
IgniteCache<BinaryObject, BinaryObject> people
= ignite.cache("Person").withKeepBinary();
Léigh mé é
Tá an Feidhmchlár Ríomh á athdhéanamh agam chun freastal ar mo chás. Sainmhínítear príomheochair eolaire na bpointí díola in MSSQL mar [id] [int] NOT NULL, cruthaím taisce de réir analaí
IgniteCache<Integer, SalesPoint> salesPointCache=ignite.cache("spCache")
Sa chumraíocht xml cuirim in iúl go bhfuil an taisce deighilte
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="spCache"/>
<property name="cacheMode" value="PARTITIONED"/>
</bean>
Glactar leis trí dheighilt de réir díolphointe go dtógfar an comhiomlán riachtanach ar gach nód braisle do na taifid salesPointCache atá ar fáil ansin, agus ina dhiaidh sin déanfaidh nód an chliaint an tsuim dheireanach a shuimiú.
Tá an rang teagaisc á léamh agam
@Override
public void run() {
SalesPoint sp=salesPointCache.get(spId);
sp.calculateSalesPointCount();
..
}
Cuirim loighic comhiomlánaithe agus uaslódála leis agus rithim é ar thacar sonraí tástála. Oibríonn gach rud go háitiúil ar an bhfreastalaí forbartha.
Seoladh mé dhá fhreastalaí tástála CentOs, sonraigh na seoltaí IP i default-config.xml, a fhorghníomhú ar gach ceann acu
./bin/ignite.sh config/default-config.xml
Tá an dá nód Ignite ag rith agus is féidir leo a chéile a fheiceáil. Sonraigh mé na seoltaí riachtanacha i config xml an iarratais chliaint, tosaíonn sé, cuireann sé an tríú nód leis an topology agus láithreach tá dhá nód arís. Taispeánann an logchomhad “ClassNotFoundException: model.SalesPoint” sa líne
SalesPoint sp=salesPointCache.get(spId);
Deir StackOverflow gurb é an chúis atá leis an earráid ná nach bhfuil aon rang SalesPoint saincheaptha ar fhreastalaithe CentOs. Táimid tar éis teacht. Cad faoi “ní gá duit do chód Java a imscaradh de láimh ar gach nód” agus mar sin de? Nó nach bhfuil “do chód Java” faoi SalesPoint?
Is dócha gur chaill mé rud éigin - tosaíonn mé ag cuardach arís, ag léamh agus ag cuardach arís. Tar éis tamaill, mothaím go bhfuil gach rud ar an ábhar léite agam, níl aon rud nua ann anois. Agus mé ag cuardach, fuair mé roinnt tuairimí suimiúla.
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.
Tuairim údarásach eile:
Airteagal ar 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.
Go deimhin, sin é. Anseo casadh sé amach, cén fáth, an bhformáid dénártha mistéireach seo!
3.SingleJar
Bhain Denis an chéad áit i mo rátáil phearsanta, IMHO an rang teagaisc is úsáidí ar fad atá ar fáil. Ina
Déanaim é ar an mbealach céanna agus faighim comhad jar amháin a sheolann “nód sonraí” nó “nód an chliaint” ag brath ar argóint na n-orduithe. Tosaíonn an tionól agus oibríonn sé. Tá Zero Imscaradh buaite.
Léirigh an t-aistriú ó mheigibheart de shonraí tástála go dtí na deich ghigibheart de shonraí comhraic go bhfuil an fhormáid dhénártha ann ar chúis. Bhí sé riachtanach tomhaltas cuimhne ar nóid a bharrfheabhsú, agus seo an áit a d'éirigh BinaryObject amach a bheith an-úsáideach.
4. Conclúidí
Bhí an chéad mhasladh a tháinig chun solais faoi doiléire dhoiciméadú an tionscadail Apache Ignite cothrom; níor athraigh mórán ó 2016 i leith. Níl sé éasca do thosaitheoirí fréamhshamhail feidhmiúil a chur le chéile bunaithe ar shuíomh Gréasáin agus/nó stór.
Bunaithe ar thorthaí na hoibre a rinneadh, ba é an tuiscint go n-oibríonn Zero Imscaradh, ach ag leibhéal an chórais amháin. Rud éigin mar seo: úsáidtear BinaryObject chun nóid bhraisle iargúlta a mhúineadh chun oibriú le ranganna saincheaptha; Imscaradh nialasach - meicníocht inmheánach
Apache Ignite é féin agus dáileann rudaí córais ar fud an bhraisle.
Tá súil agam go mbeidh mo thaithí úsáideach d'úsáideoirí nua Apache Ignite.
Foinse: will.com