ืืืจ ืืขื ืขื ืื ืืขืื ืึธืืึธืืืข ืึทื ืืืืืงืืื ื ืึธืคึผืืืืืื ื ืคืื ืึท ืืึทืืึธืืื ื ืขืฅ. ืืืื ืืึธื, ืคืึทืจืืืึทืืืื ื ืฉืืขืื ืื ืึทืจืืขื ืฆื ืคืึทืจืืืืขืจื ืืจืืืก-ืืืึธื ืืฉืืื ืืช ืืืจื ื ืืฆื Apache Ignite ืืื ืงืึทื ืืืฉืึทื ืืงืฉืึทื ืืื MSSQL, ืืื ืืขืืืืื ืึท ืืืขืืืืืื ืืื ืฉืืื ืืืืืกืืจืืฆืืขืก ืืื ืืืืฉืคืืื ืคืื Java ืงืึธื. ืืื ืืืืื ืืืืงื ืืขื ืคึผืืึทืฅ
1. ืืขืจืงืืขืจืื ื ืคืื ืื ืคึผืจืึธืืืขื
ืื ืขืกืึทื ืก ืคืื ืื ืคึผืจืึธืืืขื ืืื ืืื ืืืื. ืขืก ืืื ืึท ืกืึทืืขืกืคึผืึธืื ื ืืืขืืืืืึทืืขืจ ืคืื ืคืืจืงืืืคืื ื ืืืืืื ืืื ืึท ืกืงื (ืกืืึทืง ืืขืืขืกืงืขื ืืื ืื) ืคึผืจืึธืืืงื ืืืขืืืืืึทืืขืจ. ืื ืคืื ื ืคืื ืคืึทืจืงืืืฃ ืืื ืึท "ืกืืึธืจ ืืืคึผ" ืึทืืจืืืืื ืืื ืื ืืืึทืืืขืก "ืงืืืื" ืืื "ืืจืืืก". ืึท ืกืึธืจืืืจืื ื (ืจืฉืืื ืคืื ืคึผืจืึธืืืงืื ืคืื ืื ืคืื ื ืคืื ืคืึทืจืงืืืฃ) ืืื ืงืึธื ื ืขืงืืขื ืฆื ืืขืืขืจ ืคืื ื ืคืื ืคืึทืจืงืืืฃ (ืืึธืืืื ืคึฟืื ืื DBMS) ืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืฆืืืขืฉืืขืื ืึทื ืคึฟืื ืื ืกืคึผืขืกืืคืืขื ืืึธื ืื ืกืคึผืขืกืืคืืขื ืคึผืจืึธืืืงื
ืืงืกืงืืืืื ืคืื ืื ืกืึธืจืืืจืื ื ืึธืืขืจ ืฆืืืขืืขืื ืฆื ืื ืกืึธืจืืืจืื ื.
ืขืก ืืื ืคืืจืืื ืื ืฆื ืึธืจืืึทื ืืืืจื ืึท ืคึผืึทืจืืืฉืึทื ื ืงืึทืฉ ืคืื ืคืึทืจืงืืืฃ ืืื ืงืจืึธื ืืื ืขืก ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืคืืจืืื ืื ืคึผืจืึธืืืงืื ืคึฟืึทืจ ืึท ืืืืฉ ืืื ืฉืืืึทืื. ืงืึทืืคึผืึทืืึทืืืืึทืื ืืื ืื ืงืึทืืืึทื ืกืืกืืขื ืจืืงืืืืืขืจื ืื Ignite ืงืืืขื ื ื ืึธืืข ืฆื ืืึธืื ืืึทืื, ืจืขืืขื ืขื ืึท ืืขืืืื ืืึทื ืคืื ืื ืคืึธืจืขื (ืกืืึธืจ ืืืคึผ, ืคึผืจืึธืืืงื ืงืึธื, ืืึธื, ื ืืืขืจ_ืคืื_ืกืึทืืขืก_ืคึผืึธืื ืฅ) ืืื ืฆืืคึฟืขืืืงืขืจ ืขืก ืฆืืจืืง ืฆื ืื DBMS.
2. ืืขืจื ืขื ืคืื ืืืืขืจืึทืืืจ
ืืื ืืึธื ื ืื ืืึธืื ืงืืื ืืขืจืคืึทืจืื ื ื ืึธื, ืึทืืื ืืื ืืื ืกืืึทืจืืื ื ืฆื ืืึทื ืฆื ืคืื ืืขืจ ืืจืืืข. ืืึธืก ืืืืกื, ืคึฟืื ืึท ืจืขืฆืขื ืืืข ืคึฟืื ืืืืกืืึทืืขืก.
ืึทืจืืืงื 2016
ืึธืคึผืืืืืกืืืฉ ืืืืืืช "ืืืจ ืืืขื ืืืื ืึทืจืืืฃ ืืื ืคืืืกื ืืืง ืืื ืึท ืืืฉืขืฃ!" ืืื ืืขืคึฟืื ืขื ืื ืื ืืืืืจืึทื ืืขื ืึทื ืกืขืืืื ืืก, ืืืึทืืฉืื ื ืฆืืืื Apache Ignite Essentials ืืืืืืืก, ืึธืืขืจ ืืื ืืขื ืขื ื ืืฉื ืืืืขืจ ื ืืฆืืง ืคึฟืึทืจ ืืืื ืกืคึผืขืฆืืคืืฉ ืึทืจืืขื. ืืื ืืฆืืื ืงืึทืืขืจ Ignite ืคึฟืื ืื ืืึทืคึฟืขืื ืฉืืจื ืืื ืืขืจ ื ืึธืจืืึทื ืืขืงืข "example-ignite.xml", ืืื ืืืืขื ืืขืจ ืขืจืฉืืขืจ ืึทืคึผืืึทืงืืืฉืึทื
ืืื ืืืืขื ืขื ืืืืืืขืจ, ืืื ืืขืจ ืืืืฉืคึผืื ื ืืฆื ืืืืื AffinityKey (ืืืฉืืคื ืคืจืืขืจ ืืืจื ืึท SQL ืึธื ืคึฟืจืขื), ืืื ืืคืืื ื ืืฆื ืื ืืืกืืขืจืืขื BinaryObject:
IgniteCache<BinaryObject, BinaryObject> people
= ignite.cache("Person").withKeepBinary();
ืืื ืืืืขื ืขื ืขืก
ืืื ืจืขืืึทืื ืื ืงืึทืืคึผืืืืข ืึทืคึผืคึผืืืงืึทืืืึธื ืฆื ืคึผืึทืกื ืืืื ืคืึทื. ืืขืจ ืขืจืฉืืืง ืฉืืืกื ืคืื ืืขืจ ืืืขืืืืืึทืืขืจ ืคืื ืคืืจืงืืืคืื ื ืคืื ืงืื ืืื MSSQL ืืื ืืืคืืื ื ืืื [ืฉืืึทื] [ืื ื] ื ืื 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>
ืคึผืึทืจืืืืืึธื ืืืจื ืคืื ื ืคืื ืคืึทืจืงืืืฃ ืึทืกืืื ืึทื ืื ืคืืจืืื ืื ืืขืืืื ืืึทื ืืืขื ืืืื ืืขืืืื ืืืืฃ ืืขืืขืจ ืงื ืืื ื ืึธืืข ืคึฟืึทืจ ืื ืกืึทืืขืกืคึผืึธืื ื ืงืึทืืฉืข ืจืขืงืึธืจืืก ืื ืืืฆื ืืึธืจื, ื ืึธื ืืืึธืก ืืขืจ ืงืืืขื ื ื ืึธืืข ืืืขื ืืืจืืคืืจื ืื ืืขืฆื ืกืึทืืขืจืืืฉืึทื.
ืืื ืืืืขื ืขื ืืขื ืืืืึธืจืืึทื
@Override
public void run() {
SalesPoint sp=salesPointCache.get(spId);
sp.calculateSalesPointCount();
..
}
ืืื ืืืืื ืึทืืืจืขืืึทืืืึธื ืืื ืืคึผืืึธืึทืืื ื ืืึธืืืง ืืื ืืืืคื ืขืก ืืืืฃ ืึท ืคึผืจืึธืืข ืืึทืื ืฉืืขืื. ืึทืืฅ ืึทืจืืขื ืืึธืืงืึทืื ืืืืฃ ืื ืึทื ืืืืืงืืื ื ืกืขืจืืืขืจ.
ืืื ืงืึทืืขืจ ืฆืืืื CentOs ืคึผืจืืืืจื ืกืขืจืืืขืจืก, ืกืคึผืขืฆืืคืืฆืืจื ืื IP ืึทืืจืขืกืขืก ืืื default-config.xml, ืืืกืคืืจื ืืืืฃ ืืขืืขืจ
./bin/ignite.sh config/default-config.xml
ืืืืืข ืืื ืืืข ื ืึธืืื ืืขื ืขื ืคืืืกื ืืืง ืืื ืงืขื ืขื ืืขื ืืขืืขืจ ืื ืืขืจืขืจ. ืืื ืกืคึผืขืฆืืคืืฆืืจื ืื ืคืืจืืื ืื ืึทืืจืขืกืขืก ืืื ืื xml ืงืึทื ืคืืืืขืจืืืฉืึทื ืคืื ืื ืงืืืขื ื ืึทืคึผืืึทืงืืืฉืึทื, ืขืก ืกืืึทืจืฅ, ืืืกืืฃ ืึท ืืจืื ื ืึธืืข ืฆื ืื ืืึทืคึผืึทืืึทืืืฉื ืืื ืืืืื ืขืก ืืขื ืขื ืฆืืืื ื ืึธืืื ืืืืืขืจ. ืืขืจ ืงืืึธืฅ ืืืืืื "ClassNotFoundException: model.SalesPoint" ืืื ืื ืฉืืจื
SalesPoint sp=salesPointCache.get(spId);
StackOverflow ืืืื ืึทื ืื ืกืืื ืคึฟืึทืจ ืืขื ืืขืืช ืืื ืึทื ืขืก ืืื ืงืืื ืื ืื ืกืึทืืขืกืคึผืึธืื ื ืงืืึทืก ืืืืฃ CentOs ืกืขืจืืืขืจืก. ืืืจ ืืขื ืขื ืื ืืขืงืืืขื. ืืื ืืืขืื "ืืืจ ืืึธื ื ืื ืืึธืื ืฆื ืืึทื ืืืึทืื ืฆืขืืืืงืืขื ืืืื ืืืฉืึทืืืึท ืงืึธื ืืืืฃ ืืขืืขืจ ื ืึธืืข" ืืื ืึทืืื ืืืืฃ? ืึธืืขืจ ืืื "ืืืื ื'ืืื ืงืึธื" ื ืืฉื ืืืขืื ืกืึทืืขืกืคึผืึธืื ื?
ืืื ืืื ืืกืชืื ืขืคืขืก ืืขืคืขืื - ืืื ืืืืื ืื ื ืืืืืื ืืืื, ืืืืขื ืขื ืืื ื ืืืืืื ืืืื. ื ืึธื ืึท ืืฉืขืช, ืืื ืืึทืงืืืขื ืื ืืขืคืื ืึทื ืืื ืืึธืื ืืืืขื ืขื ืึทืืฅ ืืืืฃ ืืขืจ ืืขืืข, ืขืก ืืื ืืึธืจื ืืฉื ื ืืึท ืขื ืืืึธืจ. ืืฉืขืช ืืื ืืื ืืขืืืขื ืืืื, ืืื ืืขืคืื ืขื ืขืืืขืืข ืืฉืืงืึทืืืข ืืึทืืขืจืงืื ืืขื.
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.
ืื ืื ืืขืจ ืึทืืึธืจืึทืืืืืืื ืืืื ืื ื:
ืึทืจืืืงื ืืืืฃ 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.
ืืึทืงืข, ืึทื ืก ืขืก. ืืึธ ืขืก ืืืจื ืก ืืืืก, ืืืึธืก, ืืขื ืืืกืืขืจืืขื ืืืื ืขืจื ืคึฟืึธืจืืึทื!
3.ืกืื ืืืขืืืฉืึทืจ
ืืขื ืืก ืืขื ืืืขื ืขืจืฉืืขืจ ืึธืจื ืืื ืืืื ืคืขืจืืขื ืืขืืข ืจืึทื ื, IMHO ืื ืืขืจืกื ื ืืฆืืง ืืืืึธืจืืึทื ืคืื ืึทืืข ืื ืืืฆื. ืืื ืืืื
ืืื ืืึธื ืืึธืก ืื ืืขืืืข ืืืขื ืืื ืืึทืงืืืขื ืึท ืืืื ืกืืื ืืขืงืข ืืืึธืก ืืึธื ืืฉืื "ืืึทืืึท ื ืึธืืข" ืึธืืขืจ "ืงืืืขื ื ื ืึธืืข" ืืืคึผืขื ืืื ื ืืืืฃ ืื ืืึทืคึฟืขืื ืฉืืจื ืึทืจืืืืขื ื. ืื ืคึฟืึทืจืืึทืืืื ื ืกืืึทืจืฅ ืืื ืึทืจืืขื. ื ืื ืืืคึผืืืืืึทื ื ืืื ืืืคืืืื.
ืื ืืืขืจืืึทื ื ืคืื ืืขืืึทืืืืขืก ืคืื ืคึผืจืึธืืข ืืึทืื ืฆื ืืขื ืก ืคืื ืืืืืืืื ืคืื ืงืึทืืืึทื ืืึทืื ืืขืืืืื ืึทื ืื ืืืื ืขืจื ืคึฟืึธืจืืึทื ืืืืืกืฅ ืคึฟืึทืจ ืึท ืกืืื. ืขืก ืืื ืืขืืืขื ื ืืืืืง ืฆื ืึทืคึผืืึทืืืื ืืึผืจืื ืงืึทื ืกืึทืืฉืึทื ืืืืฃ ื ืึธืืื, ืืื ืืึธืก ืืื ืืื BinaryObject ืืื ืืขืืืขื ืืืืขืจ ื ืืฆืืง.
4. ืงืึทื ืงืืืืฉืึทื ื
ืืขืจ ืขืจืฉืืขืจ ืืืึทื ืข ืืขืคึผืืึธื ืืขืจื ืืืขืื ืื ืืืืืืงืืื ืคืื ืื ืืึทืงืืืืขื ืืืืฉืึทื ืคืื ืื Apache Ignite ืคึผืจืืืขืงื ืืื ืืขืืืขื ืฉืืื; ืืืกื ืืื ืคืืจืขื ืืขืจื ืืื ื 2016. ืขืก ืืื ื ืืฉื ืืจืื ื ืคึฟืึทืจ ืึท ืึธื ืืืืืขืจ ืฆื ืึทืกืขืืืึทื ืึท ืคืึทื ืืงืฉืึทื ืื ื ืคึผืจืึธืืืึทืืืืคึผ ืืืืืจื ืืืืฃ ืึท ืืืขืืืืืื ืืื / ืึธืืขืจ ืจืืคึผืึทืืึทืืึธืจื.
ืืึทืืืจื ืืืืฃ ืื ืจืขืืืืืึทืื ืคืื ืื ืืืจืืืขืงืึธืื ืึทืจืืขื, ืืขืจ ืจืืฉื ืืื ืืขืืืขื ืึทื ื ืื ืืืคึผืืืืืึทื ื ืึทืจืืขื, ืึธืืขืจ ืืืืื ืืืืฃ ืื ืกืืกืืขื ืืืจืื. ืขืคึผืขืก ืืื ืืึธืก: BinaryObject ืืื ืืขื ืืฆื ืฆื ืืขืจื ืขื ืืืืึทื ืงื ืืื ื ืึธืืื ืฆื ืึทืจืืขืื ืืื ืื ืื ืงืืืกื; ื ืื ืืืคึผืืืืืึทื ื - ืื ืขืจืืขื ืืขืงืึทื ืืืึทื
ืึทืคึผืึทืืฉื ืืื ืืืข ืืื ืืื ืืืกืืจืืืืืฅ ืกืืกืืขื ืึทืืืืฉืขืงืฅ ืืืืขืจ ืื ืงื ืืื.
ืืื ืืึธืคึฟื ืึทื ืืืื ืืขืจืคืึทืจืื ื ืืืขื ืืืื ื ืืฆืืง ืคึฟืึทืจ ื ืืึทืข Apache Ignite ืืืืขืจื.
ืืงืืจ: www.habr.com