Phaliso ea Apache Ignite Zero: Ehlile Zero?

Phaliso ea Apache Ignite Zero: Ehlile Zero?

Re lefapha la nts'etsopele ea theknoloji ea marang-rang a mabenkele. Ka letsatsi le leng, batsamaisi ba ile ba beha mosebetsi oa ho potlakisa lipalo tse kholo ka ho sebelisa Apache Ignite hammoho le MSSQL, 'me ba bontša sebaka sa marang-rang se nang le litšoantšo tse ntle le mehlala ea khoutu ea Java. Hang-hang ke ile ka rata sebaka seo Zero Deployment, tlhaloso ea eona e tšepisang mehlolo: ha ho hlokahale hore u sebelise khoutu ea hau ea Java kapa Scala ka letsoho ho node e 'ngoe le e' ngoe ka har'a marang-rang ebe u e sebelisa hape nako le nako ha e fetoha. Ha mosebetsi o ntse o tsoela pele, ho ile ha fumaneha hore Zero Deployment e na le litšebeliso tse khethehileng, likarolo tseo ke batlang ho li arolelana. Ka tlase ho sehiloeng ke mehopolo le lintlha tsa ts'ebetsong.

1. Polelo ea bothata

Moko oa mosebetsi ke o latelang. Ho na le lethathamo la lintlha tsa thekiso ea SalesPoint le lethathamo la lihlahisoa tsa Sku (Stock Keeping Unit). Sebaka sa thekiso se na le semelo sa "Mofuta oa Lebenkele" se nang le boleng "tse nyane" le "tse kholo". Assortment (lenane la lihlahisoa tsa sebaka sa thekiso) e hokahane le ntlha e 'ngoe le e' ngoe ea thekiso (e laetsoeng ho tsoa ho DBMS) mme tlhahisoleseling e fanoa hore ho tloha ka letsatsi le boletsoeng sehlahisoa se boletsoeng.
e kgethetsoeng ho assortment kapa e kenyelitsoeng ho assortment.

Hoa hlokahala ho hlophisa cache e arohaneng ea lintlha tsa thekiso le ho boloka ho eona tlhahisoleseding e mabapi le lihlahisoa tse hokahaneng khoeli esale pele. Ho lumellana le tsamaiso ea ntoa ho hloka hore Ignite client node e lae data, e bale kakaretso ea foromo (Mofuta oa Lebenkele, Khoutu ea Sehlahisoa, letsatsi, palo_ea_ea_lintlha) ebe o e kenya hape ho DBMS.

2. Thuto ea lingoliloeng

Ha ke na phihlelo leha e le efe, kahoo ke qala ho tantša ho tloha setofong. Ke hore, ho tsoa tlhahlobong ea lingoliloeng.

Article 2016 Ho hlahisa Apache Ignite: Mehato ea Pele e na le sehokelo sa litokomane tsa projeke ea Apache Ignite mme ka nako e ts'oanang ke nyeliso bakeng sa ho se hlake ha litokomane tsena. Ke e balile hape makhetlo a 'maloa, ho hlaka ha ho tle. Ke bua ka thuto ea molao rea qala, e leng
ka tšepo o tšepisa "U tla tsoha 'me u matha ka potlako!" Ke ntse ke nahana ka maemo a feto-fetohang a tikoloho, ke shebelletse livideo tse peli tsa Apache Ignite Essentials, empa li ne li se na thuso bakeng sa mosebetsi oa ka o khethehileng. Ke atleha ho hlahisa Ignite ho tsoa moleng oa taelo ka faele e tloaelehileng "example-ignite.xml", ho aha sesebelisoa sa pele. Kopanya Kopo sebelisa Maven. Sesebelisoa se sebetsa ebile se sebelisa Zero Deployment, botle bo bo kakang!

Ke ile ka bala ho ea pele, 'me moo mohlala o sebelisa hang-hang affinityKey (e entsoeng pejana ka potso ea SQL), mme e bile e sebelisa BinaryObject e makatsang:

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

Ke ile ka e bala hanyane: sebopeho sa binary - ntho e kang ho bonahatsa, ho fihlella masimo a ntho ka lebitso. O khona ho bala boleng ba tšimo ntle le ho lahla ntho ka botlalo (ho boloka mohopolo). Empa ke hobane'ng ha BinaryObject e sebelisoa sebakeng sa Motho, kaha ho na le Zero Deployment? Hobaneng ha IgniteCache e fetiselitsoe ho IgniteCache ? Ha e so hlake.

Ke lokisa Kopo ea Khomphutha hore e lumellane le taba ea ka. Senotlolo sa mantlha sa lethathamo la lintlha tse rekisoang ho MSSQL se hlalosoa e le [id] [int] NOT NULL, ke theha cache ka papiso.

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

Ka xml config ke bontša hore cache e arotsoe

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

Ho arola ka ntlha ea thekiso ho nka hore kakaretso e hlokahalang e tla hahoa sebakeng se seng le se seng sa lihlopha bakeng sa lirekoto tsa salesPointCache tse fumanehang moo, ka mor'a moo node ea bareki e tla etsa kakaretso ea ho qetela.

Ke bala thuto Kopo ea Pele ea ho Ignite Compute, ke e etsa ka papiso. Sebakeng se seng le se seng sa sehlopha ke tsamaisa IgniteRunnable (), ntho e kang ena:

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

Ke eketsa aggregation le ho kenya logic ebe ke e tsamaisa ka sete ea data ea liteko. Ntho e 'ngoe le e' ngoe e sebetsa sebakeng sa heno ho seva sa nts'etsopele.

Ke hlahisa li-server tse peli tsa liteko tsa CentOs, ke totobatsa liaterese tsa IP ho default-config.xml, ke phethe ho e 'ngoe le e 'ngoe.

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

Li-node tsa Ignite ka bobeli lia sebetsa 'me li khona ho bonana. Ke hlakisa liaterese tse hlokahalang ho xml config ea kopo ea bareki, e qala, e eketsa node ea boraro ho topology 'me hang-hang ho na le li-node tse peli hape. Lenane le bontša "ClassNotFoundException: model.SalesPoint" moleng

SalesPoint sp=salesPointCache.get(spId);

StackOverflow e re lebaka la phoso ke hore ha ho na sehlopha sa SalesPoint sa tloaelo ho li-server tsa CentOs. Re fihlile. Ho thoe'ng ka "ha ua tlameha ho kenya khoutu ea hau ea Java sebakeng se seng le se seng" joalo-joalo? Kapa na "khoutu ea hau ea Java" ha e bue ka SalesPoint?

Mohlomong ke fositse ho hong - ke qala ho batla hape, ho bala le ho batla hape. Ka mor'a nakoana, ke fumana maikutlo a hore ke balile ntho e 'ngoe le e' ngoe ka sehlooho, ha ho na letho le lecha. Ha ke ntse ke batla, ke ile ka fumana litlhaloso tse monate.

Valentin Kulichenko, Setsebi se ka Sehloohong sa Meralo ho GridGain Systems, araba ho StackOverflow, Mmesa 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.

Maikutlo a mang a bohlokoa: Denis Magda, Motsamaisi oa tsamaiso ea lihlahisoa, GridGain Systems.

Sengoloa ka Habre mabapi le microservices e bua ka lingoloa tse tharo tsa Denis Magda: Microservices Karolo ea I, Microservices Karolo ea II, Microservices Karolo ea III 2016-2017. Sehloohong sa bobeli, Denis o fana ka tlhahiso ea ho qala node ea lihlopha ka MaintenanceServiceNodeStartup.jar. U ka boela ua sebelisa ho qala ka xml configuration le line line, empa joale u lokela ho beha lihlopha tsa tloaelo sebakeng se seng le se seng sa cluster se kentsoeng:

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.

Ka 'nete, ho joalo. Mona ho hlaha, hobaneng, sebopeho sena se makatsang sa binary!

3.Jar e le Mong

Denis o nkile sebaka sa pele ho lintlha tsa ka, IMHO thuto e sebetsang ho feta tsohle tse fumanehang. Ho tsa hae MicroServicesMohlala Github e na le mohlala o lokiselitsoeng ka botlalo oa ho theha li-cluster node, tse kopanyang ntle le squatting efe kapa efe.

Ke e etsa ka tsela e ts'oanang 'me ke fumana faele e le' ngoe ea nkho e hlahisang "node ea data" kapa "node ea bareki" ho itšetlehile ka khang ea mola oa taelo. Kopano ea qala 'me ea sebetsa. Zero Deployment e hlotsoe.

Phetoho ho tloha ho megabyte ea data ea teko ho ea ho mashome a li-gigabyte tsa data ea ntoa e bontšitse hore sebopeho sa binary se teng ka lebaka. Ho ne ho hlokahala ho ntlafatsa ts'ebeliso ea memori ho li-node, mme ke moo BinaryObject e ileng ea thusa haholo.

4. Liqeto

Nyeliso ea pele eo re ileng ra kopana le eona mabapi le ho hloka kelello ha litokomane tsa morero oa Apache Ignite e ile ea e-ba e nepahetseng; ha ho letho le fetohileng ho tloha ka 2016. Ha ho bonolo ho motho ea qalang ho bokella mohlala o sebetsang o ipapisitse le sebaka sa marang-rang le/kapa polokelo.

Ho itšetlehile ka liphello tsa mosebetsi o entsoeng, maikutlo e ne e le hore Zero Deployment e sebetsa, empa feela boemong ba tsamaiso. Ntho e kang ena: BinaryObject e sebelisetsoa ho ruta li-node tsa lihlopha tse hōle ho sebetsa le lihlopha tse tloaelehileng; Zero Deployment - mochine o ka hare
Apache Ignite ka boeona 'me e aba lintho tsa tsamaiso ho pholletsa le sehlopha.

Ke tšepa hore phihlelo ea ka e tla ba molemo ho basebelisi ba bacha ba Apache Ignite.

Source: www.habr.com

Eketsa ka tlhaloso