Apache Ignite Zero nkenye: N'ezie efu?

Apache Ignite Zero nkenye: N'ezie efu?

Anyị bụ ngalaba mmepe teknụzụ nke netwọk azụmaahịa. Otu ụbọchị, njikwa na-edozi ọrụ nke ịgbatị ọnụ ọgụgụ buru ibu site na iji Apache Ignite na njikọ MSSQL, ma gosi weebụsaịtị nwere ihe atụ mara mma na ihe atụ nke koodu Java. saịtị ahụ masịrị m ozugbo Nkwanye efu, Nkọwa nke na-ekwe nkwa ọrụ ebube: ịkwesighi iji aka tinye koodu Java ma ọ bụ Scala gị na oghere ọ bụla na grid ma tinyegharịa ya oge ọ bụla ọ gbanwere. Ka ọrụ ahụ na-aga n'ihu, ọ tụgharịrị na Zero Deployment nwere ihe eji eme ihe, njirimara nke m chọrọ ịkekọrịta. N'okpuru ịkpụ bụ echiche na nkọwa mmejuputa.

1. Nkwupụta nke nsogbu ahụ

Isi nsogbu bụ ka ndị a. Enwere akwụkwọ ndekọ aha ahịa SalesPoint yana ndekọ ngwaahịa Sku (Stock Keeping Unit). Ebe ire ere nwere àgwà "ụdị ụlọ ahịa" yana ụkpụrụ "obere" na "nnukwu". A na-ejikọta ihe dị iche iche (ndepụta ngwaahịa nke ebe a na-ere ere) na ebe ọ bụla a na-ere ere (nke sitere na DBMS) na-enye ozi na site na ụbọchị a kapịrị ọnụ ngwaahịa ahụ akọwapụtara.
ewepụrụ na ụdịdị ahụ ma ọ bụ gbakwunyere n'ụdị ahụ.

Ọ na-achọrọ ka hazie a partitioned cache nke ire ere na-echekwa na ya ozi banyere ejikọrọ ngwaahịa maka otu ọnwa tupu. Ndakọrịta na sistemu ọgụ chọrọ ọnụ ahịa ndị ahịa Ignite ka ibu data, gbakọọ mkpokọta ụdị (ụdị ụlọ ahịa, koodu ngwaahịa, ụbọchị, nọmba_of_sales_points) wee bulite ya azụ na DBMS.

2. Ọmụmụ akwụkwọ

Enweghị m ahụmahụ ọ bụla, ya mere m na-amalite ịgba egwu site na stovu. Ya bụ, site na nyocha nke akwụkwọ.

Nkeji edemede 2016 Ewebata Apache Ignite: Nzọụkwụ mbụ nwere njikọ na akwụkwọ nke ọrụ Apache Ignite yana n'otu oge ahụ nkọcha maka enweghị isi nke akwụkwọ a. Agụgharịrị m ya ugboro abụọ, idoanya anaghị abịa. M na-ezo aka na nkuzi nkuzi na-amalitenke
jiri nchekwube na-ekwe nkwa "Ị ga-ebili ma na-agba ọsọ na egwu egwu!" Ana m achọpụta ntọala mgbanwe gburugburu ebe obibi, na-ekiri vidiyo Apache Ignite Essentials abụọ, mana ha abaghị uru maka ọrụ m akọwapụtara. Ejiri m faịlụ ọkọlọtọ "example-ignite.xml" malite Ignite nke ọma site na ahịrị iwu ahụ, na-ewu ngwa mbụ. Ngwa gbakọọ na-eji Maven. Ngwa a na-arụ ọrụ ma na-eji Zero Deployment, lee ịma mma!

Agụrụ m n'ihu, ebe ahụ ka ihe atụ na-eji affinityKey ozugbo (nke e mepụtara na mbụ site na ajụjụ SQL), na ọbụna na-eji BinaryObject dị omimi:

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

Agụrụ m ya немного: usoro ọnụọgụ abụọ - ihe dị ka ntụgharị uche, ịnweta ubi nke ihe n'aha. Nwere ike na-agụ uru nke ubi na-enweghị kpamkpam deserializing ihe (chekwa ebe nchekwa). Mana gịnị kpatara eji BinaryObject kama ịbụ Onye, ebe ọ bụ na enwere Deployment Zero? Gịnị kpatara IgniteCache bufere na IgniteCache ? O dochaghị anya.

Ana m emegharị ngwa Compute ka ọ dabara n'okwu m. A kọwapụtara igodo isi nke akwụkwọ ndekọ aha ahịa na MSSQL dị ka [id] [int] Ọ BỤGHỊ NULL, ana m emepụta cache site na ntụnyere.

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

Na nhazi xml, m na-egosi na ekewaala cache

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

Nkewa site na ebe ire ere na-eche na a ga-ewu mkpokọta achọrọ na ọnụ ụyọkọ ọ bụla maka ndekọ salesPointCache dị ebe ahụ, mgbe nke ahụ gasịrị, ọnụ ahịa ndị ahịa ga-eme nchịkọta ikpeazụ.

Ana m agụ nkuzi Ngwa Mgbakọ mbụ, Ana m eme ya site na ntụnyere. Na ọnụ ụyọkọ ọ bụla m na-agba ọsọ IgniteRunnable (), ihe dị ka nke a:

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

M na-agbakwunye mkpokọta na bulite mgbagha ma na-agba ya na nhazi data ule. Ihe niile na-arụ ọrụ na mpaghara na sava mmepe.

M na-ewepụta sava abụọ CentOs, ezipụta adreesị IP na default-config.xml, mebie na nke ọ bụla.

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

Abụọ Ignite nodes na-agba ọsọ ma nwee ike ịhụ ibe ha. Ana m akọwapụta adreesị achọrọ na xml config nke ngwa ndị ahịa, ọ na-amalite, na-agbakwunye ọnụ ụzọ atọ na topology ozugbo enwere oghere abụọ ọzọ. Ihe ndekọ ahụ na-egosi "ClassNotFoundException: model.SalesPoint" n'ahịrị

SalesPoint sp=salesPointCache.get(spId);

StackOverflow na-ekwu na ihe kpatara njehie ahụ bụ na enweghị klas SalesPoint omenala na sava CentOs. Anyị erutela. Kedu maka "ịkwesighi iji aka tinye koodu Java gị na ọnụ ọ bụla" na ihe ndị ọzọ? Ka ọ bụ "koodu Java gị" abụghị maka SalesPoint?

Eleghị anya ihe atụfuru m - amalitere m ịchọ ọzọ, ịgụ na ịchọgharị ọzọ. Mgbe obere oge gasịrị, enwere m mmetụta na agụwo m ihe niile na isiokwu ahụ, ọ dịghị ihe ọhụrụ ọzọ. Mgbe m na-achọgharị, ahụrụ m okwu ndị na-atọ ụtọ.

Valentin Kulichenko, Onye ndu ndu na GridGain Systems, azịza na StackOverflow, Eprel 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.

Echiche ọzọ nwere ikike: Denis Magda, Onye isi njikwa ngwaahịa, GridGain Systems.

Akụkọ banyere Habré gbasara microservices dekọrọ akụkọ atọ nke Denis Magda dere: Microservices Part I, Microservices Nkebi II, Microservices Nkebi III 2016-2017. N'isiokwu nke abụọ, Denis na-atụ aro ịmalite ọnụ ụyọkọ site na MaintenanceServiceNodeStartup.jar. Ị nwekwara ike iji mmalite na nhazi xml na ahịrị iwu, mana ị ga-eji aka tinye klaasị omenala na ọnụ ụyọkọ ọ bụla etinyere:

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.

N'ezie, ọ bụ ya. N'ebe a, ọ na-apụta, lee, usoro ọnụọgụ abụọ a dị omimi!

3. SingleJar

Denis weere ọnọdụ mbụ na ọkwa nkeonwe m, IMHO nkuzi kachasị baa uru nke ihe niile dị. N'ime ya Ihe atụ MicroServices Github nwere ihe atụ akwadoro kpamkpam nke ịtọlite ​​ọnụ ụyọkọ, nke na-achịkọta na-enweghị squatting ọzọ.

M na-eme ya n'otu ụzọ ahụ wee nweta otu faịlụ ite nke na-ebupụta "data node" ma ọ bụ "ọnụ ahịa ndị ahịa" dabere na arụmụka ahịrị iwu. Mgbakọ na-amalite ma rụọ ọrụ. Emeriela ntinye efu efu.

Mgbanwe site na megabytes nke data ule na iri gigabytes nke data ọgụ gosiri na ọnụọgụ abụọ dị maka ihe kpatara ya. Ọ dị mkpa iji kwalite oriri ebe nchekwa na ọnụ, na nke a bụ ebe BinaryObject tụgharịrị bara uru nke ukwuu.

4. Mmechi

Nkwutọ mbụ zutere banyere enweghị isi nke akwụkwọ ọrụ Apache Ignite tụgharịrị bụrụ nke ziri ezi; obere mgbanwe agbanweela kemgbe 2016. Ọ dịghị mfe maka onye mbido ịchịkọta ụdịdị na-arụ ọrụ dabere na webụsaịtị na/ma ọ bụ ebe nchekwa.

Dabere na nsonaazụ nke ọrụ a rụrụ, echiche bụ na Zero Deployment na-arụ ọrụ, ma ọ bụ naanị na ọkwa usoro. Ihe dị ka nke a: A na-eji BinaryObject kụziere oghere ụyọkọ dịpụrụ adịpụ na-arụ ọrụ na klas omenala; Nkwanye efu - usoro dị n'ime
Apache na-agbanye onwe ya ma kesaa ihe sistemu n'ime ụyọkọ ahụ.

Enwere m olileanya na ahụmịhe m ga-aba uru nye ndị ọrụ Apache Ignite ọhụrụ.

isi: www.habr.com

Tinye a comment