áá»áœááºá¯ááºááá¯á·ááẠáááºáá®ááœááºáááºáá
áºáá¯á áááºážááá¬ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáá¬áááŒá
áºáááºá áá
áºáá±á·ááœáẠá
á®áá¶ááá·áºááœá²ááŸá¯ááẠMSSQL ááŸáá·áº ááœá²ááẠApache Ignite ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº ááŒá®ážáá¬ážáá±á¬ ááœááºáá»ááºááŸá¯áá»á¬ážááᯠá¡ááŸáááºááŒáŸáá·áºááẠáá¬áááºááᯠáááºááŸááºááŒá®áž ááŸááá±á¬ áá¯á¶á¥ááá¬áá»á¬ážááŸáá·áº Java áá¯ááºááá°áá¬áá»á¬áž áá«ááŸáááá·áº áááºááá¯ááºáá
áºáá¯ááᯠááŒááá²á·áááºá áá«áá»ááºáá»ááºážááá¯ááºááá¯ááŒáá¯ááºáááºá
1. ááŒá¿áá¬ááá±á¬áºááŒáá»ááº
ááŒá¿áá¬á á¡ááŸá
áºáá¬áááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá
áºáááºá SalesPoint á¡áá±á¬ááºážááœáá¯áá·áºáááºážááœáŸááºáá
áºáá¯ááŸáá·áº Sku (Stock Keeping Unit) áá¯ááºáá¯ááºáááºážááœáŸááºáá
áºáá¯ááŸááááºá á¡áá±á¬ááºážááœáá¯áá·áºááœáẠáááºááá¯ážáá»á¬áž âá¡áá±ážâ ááŸáá·áº âááŒá®ážáá±á¬â áá°áá±á¬ âá
ááá¯ážá¡áá»áá¯ážá¡á
á¬ážâ áááºááœáŸááºážáá»áẠáá«ááŸááááºá á¡áá»áá¯ážá¡á
á¬ážááœá²áá
áºáᯠ(á¡áá±á¬ááºážááœáá¯áá·áºááá¯ááºáá¯ááºá
á¬áááºáž) ááẠá¡áá±á¬ááºážááœáá¯áá·áºáá
áºáá¯á
á®ááŸáá·áº (DBMS á០áááºáá±á¬ááºáááº) ááŸáá·áº áá»áááºáááºáá¬ážááŒá®áž áááºááŸááºáá¬ážáá±á¬áááºá
áœá²á០áááºááŸááºáá¬ážáá±á¬ áá¯ááºáá¯ááºááᯠááááºážá¡áá»ááºá¡áááºáá±ážáá«áááºá
á¡áá»áá¯ážá¡á
á¬ážááœá²ááŒááºážá០áááºáá¯ááºááŒááºáž ááá¯á·ááá¯áẠá¡áá»áá¯ážá¡á
á¬ážááœá²ááŒááºážááá¯á· ááá·áºáá«á
áá±á¬ááºážáá»ááá·áºáá±áá¬áá»á¬ážá á¡ááá¯ááºážááá¯ááºážááœá²áá¬ážáá±á¬ áááºááŸáºáá áºáá¯ááᯠá á¯á ááºážááŒá®áž áá»áááºáááºáá¬ážáá±á¬ áá¯ááºáá¯ááºáá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážááᯠáá áºáááŒáá¯ááẠááááºážáááºážáá¬ážááẠááá¯á¡ááºáá«áááºá ááá¯ááºááá¯ááºáá±ážá áá áºááŸáá·áº ááá¯ááºáááºáá®ááŸá¯ááẠáá±áá¬ááá¯áááºáááºá áá±á¬ááºáá áºáá¯á á¡á á¯á á¯ááᯠááœááºáá»ááºááẠ(á ááá¯ážá¡áá»áá¯ážá¡á á¬ážá áá¯ááºáá¯ááºáá¯ááºá áá±á·á áá¶áá«ááº_of_sales_points) ááŸáá·áº DBMS ááá¯á· ááŒááºáááºááẠááá¯á¡ááºáááºá
2. á á¬áá±áá±á·áá¬ááŒááºážá
áá»áœááºáá±á¬á·áºááŸá¬ á¡ááœá±á·á¡ááŒá¯á¶áááŸááá±ážáá²á·á¡ááœáẠáá®ážááá¯áá±á«áºááá± ááá¯ááºáá±áá«áááºá ááá¯ááá¯áááºááŸá¬ á á¬áá±áá¯á¶ážáááºáá»ááºá០ááŒá áºáááºá
áá¯ááºá áááá
á¡áá±á¬ááºážááŒááºá
áœá¬ áááááŒá¯ááẠ"áááºáž á¡ááŸáááºááŒááºážááŒááºážáá²á· ááŒá±ážáá±áááá·áºáááº!" Apache Ignite Essentials áá®áá®ááᯠááŸá
áºáá¯ááᯠááŒáá·áºáááºážá áááºáááºážáá»áẠááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ áááºáááºáá»á¬ážááᯠááŸá¬ááœá±áá±áá±á¬áºáááºáž áááºážááá¯á·ááẠáá»áœááºá¯ááºá áá®ážááŒá¬ážáá¯ááºáááºážáá¬áááºá¡ááœáẠá¡ááœááºá¡áá¯á¶ážááááºáá«á á
á¶ááá¯áẠâexample-ignite.xmlâ ááŒáá·áº command line á០Ignite ááᯠá¡á±á¬ááºááŒááºá
áœá¬ á
áááºááá¯ááºáá²á·ááŒá®ážá áááá¡ááá®áá±ážááŸááºážááᯠáááºáá±á¬ááºááŒááºáž
áá±á¬ááºáááºáááºááŒáá·áºáá±á¬á· á¡á²áá®ááŸá¬ á¥ááá¬á affinityKey (SQL query ááá áºááá·áº á á±á¬á á±á¬ááááºáá®ážáá¬ážáá²á·) ááᯠáá»ááºáá»ááºážáá¯á¶ážááŒá®áž áá»áŸáá¯á·ááŸááºáááºážááŒááºáá²á· BinaryObject ááá¯áá±á¬áẠáá¯á¶ážáá«áááºá
IgniteCache<BinaryObject, BinaryObject> people
= ignite.cache("Person").withKeepBinary();
áááºáá°ážáááºá
áá»áœááºá¯ááºá ááá á¹á ááŸáá·áº ááá¯ááºáá®á á±ááẠCompute Application ááᯠááŒááºááẠáááºáá®ážáá±áá«áááºá MSSQL ááŸá á¡áá±á¬ááºážá¡áááºáááºážááŒá±á¬ááºážá á¡ááááá±á¬á·ááᯠ[id] [int] NOT NULL á¡ááŒá ẠáááºááŸááºáááºá áá»áœááºá¯ááºááẠáááºááŸáºáá áºáá¯ááᯠááá¯ááºáá±á¬áºááŒááºážááŒáá·áº áááºáá®ážáá«áááºá
IgniteCache<Integer, SalesPoint> salesPointCache=ignite.cache("spCache")
xml config ááœáẠáááºááŸáºááᯠá¡ááá¯ááºážááá¯ááºážááœá²áá¬ážáááºááᯠáá»áœááºá¯ááºááœáŸááºááŒáááºá
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="spCache"/>
<property name="cacheMode" value="PARTITIONED"/>
</bean>
á¡áá±á¬ááºážááœáá¯áá·áºá¡á¬ážááŒáá·áº ááá¯ááºážááŒá¬ážááŒááºáž ááẠááá¯áá±áá¬ááœáẠáááŸáááá¯ááºáá±á¬ salesPointCache ááŸááºáááºážáá»á¬ážá¡ááœáẠááá¯á¡ááºáá±á¬ á¡á á¯á¡áá±ážáá áºáá¯á á®ááœáẠá á¯á ááºážááŸá¯ááᯠáááºáá±á¬ááºáááºáᯠáá°ááááºá ááá¯á·áá±á¬ááºááœáẠclient node ááẠáá±á¬ááºáá¯á¶áž summation ááᯠáá¯ááºáá±á¬ááºáááºááŒá áºáááºá
áá»á°ááá¯áá®áááºááᯠáááºáá±áááºá
@Override
public void run() {
SalesPoint sp=salesPointCache.get(spId);
sp.calculateSalesPointCount();
..
}
áá±á«ááºážá ááºážááŒááºážááŸáá·áº áá±á¬á·áá»á áºáááºááŒááºážááá¯á·ááᯠááá·áºááœááºážááŒá®áž á ááºážáááºáá±áá¬á¡á á¯á¶ááœáẠáááºážááᯠáá¯ááºáá±á¬ááºáá«áááºá á¡áá¬á¡á¬ážáá¯á¶ážááẠááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáá¬áá¬áá±á«áºááœáẠá ááºááœááºážá á¡áá¯ááºáá¯ááºáááºá
áá»áœááºá¯ááºááẠCentOs á ááºážáááºáá¬áá¬ááŸá áºáá¯ááá¯ááœáá·áºááŒá®áž default-config.xml ááœáẠIP ááááºá á¬áá»á¬ážááᯠáááºááŸááºáá«á áá áºáá¯á á®ááœáẠáá¯ááºáá±á¬ááºáá«
./bin/ignite.sh config/default-config.xml
Ignite node ááŸá áºáá¯á áá¯á¶ážááẠáááºáááºáá±ááŒá®áž á¡áá»ááºážáá»ááºážááŒááºááá¯ááºáááºá áá»áœááºá¯ááºááẠclient á¡ááá®áá±ážááŸááºážá xml config ááœáẠááá¯á¡ááºáá±á¬ááááºá á¬áá»á¬ážááᯠáááºááŸááºáá±ážáááºá áááºážááẠá áááºáááºá topology ááá¯á·áááá node áá±á«ááºážááá·áºáᬠáá»ááºááŒááºážááœáẠnode ááŸá áºáᯠáááºáá¶ááŸááá±áá«áááºá ááŸááºáááºážááẠá á¬ááŒá±á¬ááºážááœáẠâClassNotFoundException: model.SalesPointâ ááᯠááŒáááºá
SalesPoint sp=salesPointCache.get(spId);
StackOverflow á á¡ááŸá¬ážá¡ááœááºážááŒá áºáááá·áº á¡ááŒá±á¬ááºážáááºážááŸá¬ CentOs áá¬áá¬áá»á¬ážááœáẠá áááºááŒáá¯áẠSalesPoint á¡áááºážáááŸáááŒááºážááŒá±á¬áá·áº ááŒá áºáááºá áá«ááá¯á·áá±á¬ááºááŒá®á "áááºááẠnode áá áºáá¯á á®ááœááºáááºá Java áá¯ááºááá¯ááá¯ááºááá¯ááºá¡áá¯á¶ážááŒá¯áááºáááá¯á¡ááºáá«" ááŸáá·áºá¡ááŒá¬ážá¡áá¬áá»á¬ážááŸáá·áºáááºáááºááá±á¬á áá«ááŸááá¯áẠ"áááºážáá²á· Java áá¯ááº" á 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.
áá±á¬ááºááẠááá¬ážááẠáááºááŒááºáá»ááº
Habre á¡ááŒá±á¬ááºáž áá±á¬ááºážáá«áž
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.
á¡ááŸááºáá±á¬á· áá«áá²á á€ááœááºá á¡áááºááŒá±á¬áá·áº á€áá»áŸáá¯á·ááŸááºáááºážááŒááºáá±á¬ ááœáá á¯á¶áá±á¬áºáááºáá±á«áºáá¬áá«áááºá
ááSingleJar
Denis ááẠáá»áœááºá¯ááºáááá¯ááºáá±ážááá¯ááºáá¬á¡ááá·áºáááºááŸááºáá»ááºááœáẠááááá±áá¬áááŸááá²á·ááŒá®ážá áááá¯ááºááá»áŸá¡á¬ážáá¯á¶ážá á¡áá¯á¶ážáááºáá¯á¶ážáááºáááºážá
á¬ááŸá¬ áá¬ááŸáááºážáááŸááá«á áá°á·á¡ááœááº
áááºážááá¯áá»áœááºá¯ááºáááºááá¯áááºážá¡ááá¯ááºážáá¯ááºáá±á¬ááºááŒá®áž command line argument áá±á«áºáá°áááºá "data node" ááá¯á·ááá¯áẠ"client node" ááá¯ááœáá·áºááá·áº jar ááá¯ááºáá áºáá¯áááŸááááºá ááááááºá áááá¯ááºáá¬ážáááá²á· á¡áá¯ááºáá¯ááºáááºá Zero Deployment ááŸá¯á¶ážááœá¬ážááŒá®á
á ááºážáááºáá±áá¬á áá®áá«ááá¯ááºá០ááá¯ááºááá¯ááºáá±ážáá±áá¬áááºáá áºáá«ááá¯ááºááá¯á· áá°ážááŒá±á¬ááºážááŒááºážááẠá¡ááŒá±á¬ááºážááŒáá»ááºáá áºáá¯á¡ááœáẠááœááá±á¬áºáááºáááºááŸáááŒá±á¬ááºáž ááŒááá²á·áááºá node áá»á¬ážáá±á«áºááœáẠmemory áá¯á¶ážá áœá²ááŸá¯ááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬ááºááŒá¯áá¯ááºááẠááá¯á¡ááºááŒá®áž BinaryObject ááẠá¡ááœááºá¡áá¯á¶ážáááºáá¬áá«áááºá
á
Apache Ignite ááá±á¬áá»áẠá á¬ááœááºá á¬áááºážáá»á¬ážá ááá±áá¬ááŸá¯áá»á¬ážááŸáá·áº áááºáááºá ááááá¯á¶áž áá²á·áá²á·ááŸá¯ááºáá»ááŸá¯ááŸá¬ ááá¬ážáá»áŸáááŸá¯ ááŸááá¬áá²á·ááŒá®áž 2016 áá¯ááŸá áºááŸá á á¡áááºážááẠááŒá±á¬ááºážáá²ááœá¬ážáá²á·áááºá áááºááá¯ááºááŸáá·áº/ááá¯á·ááá¯áẠááá¯ááŸá±á¬ááºááŸá¯á¡áá±á«áº á¡ááŒá±áá¶á áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ ááŸá±á·ááŒá±ážáá¯á¶á á¶ááᯠá¡á ááŒá¯áá°á¡ááœáẠáááœááºáá°áá«á
ááŒá®ážáá²á·áá±á¬á¡áá¯ááºáááááºáá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á Zero Deployment á¡áá¯ááºáá¯ááºáááºá ááá¯á·áá±á¬áºá
áá
áºá¡ááá·áºááœááºáá¬ááŒá
áºáááºá á€á¡áá¬áá²á·ááá¯á·áá±á¬ á¡áá¬- BinaryObject ááᯠá
áááºááŒáá¯ááºá¡áááºážáá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºááẠá¡áá±ážááááºáž á¡á
á¯á¡áá±ážáá»á¬ážááᯠáááºááŒá¬ážááẠá¡áá¯á¶ážááŒá¯áá«áááºá Zero Deployment - á¡ááœááºážááá¯ááºážááá¹ááá¬áž
Apache ááẠáá°á·ááá¯ááºáá° áá±á¬ááºáá»áœááºážá
á±ááŒá®áž á
áá
áºá¡áá¬ááá¹áá¯áá»á¬ážááᯠá¡á
á¯á¡áá±ážáá
áºáá»áŸá±á¬áẠááŒáá·áºáá±áá±ážáááºá
áá»áœááºá¯ááºáá¡ááœá±á·á¡ááŒá¯á¶ááẠApache Ignite á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡ááœáẠá¡áá¯á¶ážáááºáááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá
source: www.habr.com