ΠΡ β ΠΎΡΠ΄Π΅Π» ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΠΎΠ·Π½ΠΈΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ. ΠΠ΄Π½Π°ΠΆΠ΄Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ Π·Π°Π΄Π°ΡΡ ΡΡΠΊΠΎΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Apache Ignite Π² ΡΠ²ΡΠ·ΠΊΠ΅ Ρ MSSQL, ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ ΡΠ°ΠΉΡ Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΌΠΈ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Java-ΠΊΠΎΠ΄Π°. ΠΠ° ΡΠ°ΠΉΡΠ΅ ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ
1. ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
Π‘ΡΡΡ Π·Π°Π΄Π°ΡΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ. ΠΡΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΠΎΡΠ΅ΠΊ ΠΏΡΠΎΠ΄Π°ΠΆ SalesPoint ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΠΎΠ²Π°ΡΠΎΠ² Sku (Stock Keeping Unit). Π’ΠΎΡΠΊΠ° ΠΏΡΠΎΠ΄Π°ΠΆ ΠΈΠΌΠ΅Π΅Ρ Π°ΡΡΠΈΠ±ΡΡ «ΡΠΈΠΏΠΠ°Π³Π°Π·ΠΈΠ½Π°» ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ «ΠΌΠ°Π»ΡΠΉ» ΠΈ «Π±ΠΎΠ»ΡΡΠΎΠΉ». Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ (Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΈΠ· Π‘Π£ΠΠ) Π°ΡΡΠΎΡΡΠΈΠΌΠ΅Π½Ρ (ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ²Π°ΡΠΎΠ² ΡΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΄Π°ΠΆ) ΠΈ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π°ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠΎΠ²Π°Ρ
ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ· Π°ΡΡΠΎΡΡΠΈΠΌΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² Π°ΡΡΠΎΡΡΠΈΠΌΠ΅Π½Ρ.
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ΅Ρ ΡΠΎΡΠ΅ΠΊ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ Π² Π½Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠΎΠ²Π°ΡΠ°Ρ Π½Π° ΠΌΠ΅ΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄. Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΡΠ·Π»Π° Ignite Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π²ΡΡΠΈΡΠ»ΡΡΡ Π°Π³ΡΠ΅Π³Π°Ρ Π²ΠΈΠ΄Π° (ΡΠΈΠΏΠΠ°Π³Π°Π·ΠΈΠ½Π°, ΠΊΠΎΠ΄Π’ΠΎΠ²Π°ΡΠ°, Π΄Π΅Π½Ρ, ΡΠΈΡΠ»ΠΎ_ΡΠΎΡΠ΅ΠΊ_ΠΏΡΠΎΠ΄Π°ΠΆ) ΠΈ Π²ΡΠ³ΡΡΠΆΠ°ΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² Π‘Π£ΠΠ.
2. ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
ΠΠΏΡΡΠ° ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Ρ ΠΏΠ»ΡΡΠ°ΡΡ ΠΎΡ ΠΏΠ΅ΡΠΊΠΈ. Π’ΠΎ Π΅ΡΡΡ Ρ ΠΎΠ±Π·ΠΎΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ.
Π‘ΡΠ°ΡΡΡ 2016 Π³ΠΎΠ΄Π°
ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠ°Π΅Ρ «You’ll be up and running in a jiffy!». Π Π°Π·Π±ΠΈΡΠ°ΡΡΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ΅Π΄Ρ, ΡΠΌΠΎΡΡΡ Π΄Π²Π° Π²ΠΈΠ΄Π΅ΠΎ Apache Ignite Essentials, Π΄Π»Ρ ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ½ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ. Π£ΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Ρ Ignite ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ «example-ignite.xml», ΡΠΎΠ±ΠΈΡΠ°Ρ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π§ΠΈΡΠ°Ρ Π΄Π°Π»ΡΡΠ΅, Π° ΡΠ°ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°Π·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ affinityKey (ΡΠΎΠ·Π΄Π°Π½ ΡΠ°Π½Π΅Π΅ ΡΠ΅ΡΠ΅Π· SQL-Π·Π°ΠΏΡΠΎΡ), Π΄Π° Π΅ΡΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π·Π°Π³Π°Π΄ΠΎΡΠ½ΡΠΉ BinaryObject:
IgniteCache<BinaryObject, BinaryObject> people
= ignite.cache("Person").withKeepBinary();
ΠΠΎΡΠΈΡΠ°Π»
ΠΠ΅ΡΠ΅Π΄Π΅Π»ΡΠ²Π°Ρ Compute Application ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ. ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΡΠ΅ΠΊ ΠΏΡΠΎΠ΄Π°ΠΆ Π² MSSQL ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ [id] [int] NOT NULL, ΡΠΎΠ·Π΄Π°Ρ ΠΊΠ΅Ρ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ
IgniteCache<Integer, SalesPoint> salesPointCache=ignite.cache("spCache")
Π xml-ΠΊΠΎΠ½ΡΠΈΠ³Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Ρ, ΡΡΠΎ ΠΊΠ΅Ρ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="spCache"/>
<property name="cacheMode" value="PARTITIONED"/>
</bean>
ΠΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΎΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π°Π³ΡΠ΅Π³Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ·Π»Π΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π΄Π»Ρ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΡΠ°ΠΌ Π·Π°ΠΏΠΈΡΠ΅ΠΉ salesPointCache, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΡΠ·Π΅Π» Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π§ΠΈΡΠ°Ρ ΡΡΡΠΎΡΠΈΠ°Π»
@Override
public void run() {
SalesPoint sp=salesPointCache.get(spId);
sp.calculateSalesPointCount();
..
}
ΠΠΎΠ±Π°Π²Π»ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ ΠΈ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ, Π·Π°ΠΏΡΡΠΊΠ°Ρ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ°ΠΏΡΡΠΊΠ°Ρ Π΄Π²Π° ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° CentOs, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ip-Π°Π΄ΡΠ΅ΡΠ° Π² default-config.xml, Π²ΡΠΏΠΎΠ»Π½ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ
./bin/ignite.sh config/default-config.xml
ΠΠ±Π° ΡΠ·Π»Π° Ignite Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΈ Π²ΠΈΠ΄ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. Π£ΠΊΠ°Π·ΡΠ²Π°Ρ Π½ΡΠΆΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π² xml-ΠΊΠΎΠ½ΡΠΈΠ³Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΡΠ΅ΡΠΈΠΉ ΡΠ·Π΅Π» Π² ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΡΠ·Π»ΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ½ΠΎΠ²Π° Π΄Π²Π°. Π Π»ΠΎΠ³Π΅ Π·Π½Π°ΡΠΈΡΡΡ «ClassNotFoundException: model.SalesPoint» Π² ΡΡΡΠΎΠΊΠ΅
SalesPoint sp=salesPointCache.get(spId);
StackOverflow Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π° ΠΎΡΠΈΠ±ΠΊΠΈ β Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ CentOs Π½Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° SalesPoint. ΠΡΠΈΠ΅Ρ Π°Π»ΠΈ. ΠΠ°ΠΊ ΠΆΠ΅ «you don’t have to manually deploy your Java code on each node» ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ? ΠΠ»ΠΈ «your Java code» β ΡΡΠΎ Π½Π΅ ΠΏΡΠΎ SalesPoint?
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ Ρ ΡΡΠΎ-ΡΠΎ ΡΠΏΡΡΡΠΈΠ» β ΡΠ½ΠΎΠ²Π° Π½Π°ΡΠΈΠ½Π°Ρ ΠΈΡΠΊΠ°ΡΡ, ΡΠΈΡΠ°ΡΡ ΠΈ ΡΠ½ΠΎΠ²Π° ΠΈΡΠΊΠ°ΡΡ. Π§Π΅ΡΠ΅Π· Π²ΡΠ΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ Ρ ΠΏΡΠΎΡΠΈΡΠ°Π» ΠΏΠΎ ΡΠ΅ΠΌΠ΅ Π²ΡΠ΅, Π½ΠΈΡΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΆΠ΅ Π½Π΅Ρ. ΠΠΎΠΊΠ° ΠΈΡΠΊΠ°Π», Π½Π°ΡΠ΅Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΉ.
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.
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅:
Π‘ΡΠ°ΡΡΡ Π½Π° Π₯Π°Π±ΡΠ΅
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.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, that’s it. ΠΠΎΡ ΠΎΠ½, ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, Π·Π°ΡΠ΅ΠΌ, ΡΡΠΎΡ Π·Π°Π³Π°Π΄ΠΎΡΠ½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ!
3. SingleJar
Denis Π·Π°Π½ΡΠ» Π² ΠΌΠΎΠ΅ΠΌ Π»ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΉΡΠΈΠ½Π³Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΠΈΠΌΡ
ΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΡΡΠΎΡΠΈΠ°Π» ΠΈΠ· Π²ΡΠ΅Ρ
Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
. Π Π΅Π³ΠΎ
ΠΠ΅Π»Π°Ρ ΠΏΠΎ ΠΎΠ±ΡΠ°Π·Ρ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ°Ρ Π΅Π΄ΠΈΠ½ΡΠΉ ΡΠ°ΠΉΠ» jar, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ «data node» Π»ΠΈΠ±ΠΎ «client node» Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π‘Π±ΠΎΡΠΊΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Zero Deployment ΠΏΠΎΠ±Π΅ΠΆΠ΄Π΅Π½.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠΎΠ² ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ΠΊ Π΄Π΅ΡΡΡΠΊΠ°ΠΌ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠΎΠ² Π±ΠΎΠ΅Π²ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π», ΡΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ Π·ΡΡ. ΠΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° Π½ΠΎΠ΄Π°Ρ , ΠΈ Π²ΠΎΡ ΡΡΡ BinaryObject ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½.
4. ΠΡΠ²ΠΎΠ΄Ρ
ΠΠ΅ΡΠ²ΡΠΉ Π²ΡΡΡΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠΏΡΠ΅ΠΊ Π² Π½Π΅Π²Π½ΡΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Apache Ignite ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ², Ρ 2016 Π³ΠΎΠ΄Π° ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΎΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠΎΠ²ΠΈΡΠΊΡ Π½Π΅ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡΠΈΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΠΉΡΠ° ΠΈ/ΠΈΠ»ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠΎ ΠΈΡΠΎΠ³Ρ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅, ΡΡΠΎ Zero Deployment ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ: BinaryObject ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΠ·Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ; Zero Deployment β Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ
ΡΠ°ΠΌΠΎΠ³ΠΎ Apache Ignite ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΠ°Π΄Π΅ΡΡΡ, ΠΌΠΎΠΉ ΠΎΠΏΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½ΠΎΠ²ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Apache Ignite.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com