рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдЭрд┐рд░реЛ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ: рдЦрд░реЛрдЦрд░ рд╢реВрдиреНрдп?

рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдЭрд┐рд░реЛ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ: рдЦрд░реЛрдЦрд░ рд╢реВрдиреНрдп?

рдЖрдореНрд╣реА рдХрд┐рд░рдХреЛрд│ рдиреЗрдЯрд╡рд░реНрдХрдЪреЗ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╡рд┐рдХрд╛рд╕ рд╡рд┐рднрд╛рдЧ рдЖрд╣реЛрдд. рдПрдХреЗ рджрд┐рд╡рд╢реА, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рдиреЗ MSSQL рдЪреНрдпрд╛ рд╕рдВрдпреЛрдЧрд╛рдиреЗ Apache Ignite рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рддреАрд▓ рдЧрдгрдиреЗрд▓рд╛ рдЧрддреА рджреЗрдгреНрдпрд╛рдЪреЗ рдХрд╛рдо рд╕реЗрдЯ рдХреЗрд▓реЗ рдЖрдгрд┐ рдЬрд╛рд╡рд╛ рдХреЛрдбрдЪреА рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░реЗ рдЖрдгрд┐ рдЙрджрд╛рд╣рд░рдгреЗ рдЕрд╕рд▓реЗрд▓реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рджрд╛рдЦрд╡рд▓реА. рдорд▓рд╛ рд▓рдЧреЗрдЪ рд╕рд╛рдЗрдЯ рдЖрд╡рдбрд▓реА рд╢реВрдиреНрдп рдЙрдкрдпреЛрдЬрди, рдЬреНрдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдЪрдорддреНрдХрд╛рд░рд╛рдВрдЪреЗ рд╡рдЪрди рджреЗрддреЗ: рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪрд╛ Java рдХрд┐рдВрд╡рд╛ Scala рдХреЛрдб рдЧреНрд░рд┐рдбрдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрд╡рд░ рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрдгрд╛рд░ рдирд╛рд╣реА рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рддреЛ рдмрджрд▓рд▓реНрдпрд╛рд╡рд░ рддреЛ рдкреБрдиреНрд╣рд╛ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрдгрд╛рд░ рдирд╛рд╣реА. рдЬрд╕рдЬрд╕реЗ рдХрд╛рдо рдкреБрдвреЗ рд╕рд░рдХрдд рдЧреЗрд▓реЗ, рддрд╕рддрд╕реЗ рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рдЭрд┐рд░реЛ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯрдЪреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдорд▓рд╛ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗрдд. рдХрдЯ рдЦрд╛рд▓реА рд╡рд┐рдЪрд╛рд░ рдЖрдгрд┐ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рддрдкрд╢реАрд▓ рдЖрд╣реЗрдд.

1. рд╕рдорд╕реНрдпреЗрдЪреЗ рд╡рд┐рдзрд╛рди

рд╕рдорд╕реНрдпреЗрдЪреЗ рд╕рд╛рд░ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ. рдПрдХ SalesPoint рд╡рд┐рдХреНрд░реА рдмрд┐рдВрджреВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЖрдгрд┐ рдПрдХ Sku (рд╕реНрдЯреЙрдХ рдХреАрдкрд┐рдВрдЧ рдпреБрдирд┐рдЯ) рдЙрддреНрдкрд╛рджрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЖрд╣реЗ. рд╡рд┐рдХреНрд░реАрдЪреНрдпрд╛ рдмрд┐рдВрджреВрдордзреНрдпреЗ "рд▓рд╣рд╛рди" рдЖрдгрд┐ "рдореЛрдареЗ" рдореВрд▓реНрдпрд╛рдВрд╕рд╣ "рд╕реНрдЯреЛрдЕрд░ рдкреНрд░рдХрд╛рд░" рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрд╣реЗ. рдПрдХ рд╡рд░реНрдЧреАрдХрд░рдг (рд╡рд┐рдХреНрд░реАрдЪреНрдпрд╛ рдмрд┐рдВрджреВрдЪреНрдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рдВрдЪреА рд╕реВрдЪреА) рд╡рд┐рдХреНрд░реАрдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреВрд╢реА рдЬреЛрдбрд▓реЗрд▓реА рдЕрд╕рддреЗ (DBMS рд╡рд░реВрди рд▓реЛрдб рдХреЗрд▓реЗрд▓реА) рдЖрдгрд┐ рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЬрд╛рддреЗ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд╛рд░рдЦреЗрдкрд╛рд╕реВрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрддреНрдкрд╛рджрди
рд╡рд░реНрдЧреАрдХрд░рдгрд╛рддреВрди рд╡рдЧрд│рд▓реЗрд▓реЗ рдХрд┐рдВрд╡рд╛ рд╡рд░реНрдЧреАрдХрд░рдгрд╛рдд рдЬреЛрдбрд▓реЗрд▓реЗ.

рд╡рд┐рдХреНрд░реАрдЪреНрдпрд╛ рдмрд┐рдВрджреВрдВрдЪреЗ рд╡рд┐рднрд╛рдЬрди рдХреЗрд▓реЗрд▓реЗ рдХреЕрд╢реЗ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рдПрдХ рдорд╣рд┐рдирд╛ рдЕрдЧреЛрджрд░ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рдВрдЪреА рдорд╛рд╣рд┐рддреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдХреЙрдореНрдмреЕрдЯ рд╕рд┐рд╕реНрдЯрдорд╕рд╣ рд╕реБрд╕рдВрдЧрддрддреЗрд╕рд╛рдареА рдЗрдЧреНрдирд╛рдЗрдЯ рдХреНрд▓рд╛рдпрдВрдЯ рдиреЛрдбрд▓рд╛ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдлреЙрд░реНрдордЪреА рдПрдХреВрдг рдЧрдгрдирд╛ рдХрд░рдгреЗ (рд╕реНрдЯреЛрдЕрд░ рдкреНрд░рдХрд╛рд░, рдЙрддреНрдкрд╛рджрди рдХреЛрдб, рджрд┐рд╡рд╕, рд╕рдВрдЦреНрдпрд╛_рдСрдл_рд╕реЗрд▓реНрд╕_рдкреЙрдЗрдВрдЯ) рдЖрдгрд┐ рддреЗ рдбреАрдмреАрдПрдордПрд╕рд╡рд░ рдкрд░рдд рдЕрдкрд▓реЛрдб рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

2. рд╕рд╛рд╣рд┐рддреНрдпрд╛рдЪрд╛ рдЕрднреНрдпрд╛рд╕

рдорд▓рд╛ рдЕрдЬреВрди рдХреЛрдгрддрд╛рд╣реА рдЕрдиреБрднрд╡ рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдореА рд╕реНрдЯреЛрд╡реНрд╣рд╡рд░реВрди рдирд╛рдЪрд╛рдпрд▓рд╛ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА рдЖрд╣реЗ. рдореНрд╣рдгрдЬреЗрдЪ, рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдЪреНрдпрд╛ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рддреВрди.

рд▓реЗрдЦ 2016 Apache Ignite рд╕рд╛рджрд░ рдХрд░рдд рдЖрд╣реЗ: рдкрд╣рд┐рд▓реА рдкрд╛рдпрд░реА рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдЪреА рд▓рд┐рдВрдХ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪ рд╡реЗрд│реА рдпрд╛ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдЪреНрдпрд╛ рдЕрд╕реНрдкрд╖реНрдЯрддреЗрд╕рд╛рдареА рдирд┐рдВрджрд╛ рдЖрд╣реЗ. рдореА рддреЗ рджреЛрди рд╡реЗрд│рд╛ рдкреБрдиреНрд╣рд╛ рд╡рд╛рдЪрд▓реЗ, рд╕реНрдкрд╖реНрдЯрддрд╛ рдпреЗрдд рдирд╛рд╣реА. рдореА рдЕрдзрд┐рдХреГрдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрд╣рд╛ рд╕реБрд░реВ рдХрд░рдгреЗ, рдЬреЗ
рдЖрд╢рд╛рд╡рд╛рджреАрдкрдгреЗ рд╡рдЪрди рджреЗрддреЛ тАЬрддреБрдореНрд╣реА рдХреНрд╖рдгрд╛рд░реНрдзрд╛рдд рддрдпрд╛рд░ рд╡реНрд╣рд╛рд▓!тАЭ рдореА рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╢реЛрдзрдд рдЖрд╣реЗ, рджреЛрди Apache Ignite Essentials рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд╣рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреЗ рдорд╛рдЭреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рдлрд╛рд░рд╕реЗ рдЙрдкрдпреБрдХреНрдд рдирд╡реНрд╣рддреЗ. рдореА рдкреНрд░рдердо рдНрдкреНрд▓рд┐рдХреЗрд╢рди рддрдпрд╛рд░ рдХрд░реВрди, рдорд╛рдирдХ рдлрд╛рдЗрд▓ тАЬexample-ignite.xmlтАЭ рд╕рд╣ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирд╡рд░реВрди рдЗрдЧреНрдирд╛рдЗрдЯ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рд▓рд╛рдБрдЪ рдХреЗрд▓реЗ. рдЕрд░реНрдЬрд╛рдЪреА рдЧрдгрдирд╛ рдХрд░рд╛ Maven рд╡рд╛рдкрд░реВрди. рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реВрдиреНрдп рдЙрдкрдпреЛрдЬрди рдХрд╛рд░реНрдп рдХрд░рддреЗ рдЖрдгрд┐ рд╡рд╛рдкрд░рддреЗ, рдХрд┐рддреА рд╕реБрдВрджрд░ рдЖрд╣реЗ!

рдореА рдкреБрдвреЗ рд╡рд╛рдЪрд▓реЗ, рдЖрдгрд┐ рддреЗрдереЗ рдЙрджрд╛рд╣рд░рдг рддрд╛рдмрдбрддреЛрдм affinityKey (рдЖрдзреА SQL рдХреНрд╡реЗрд░реАрджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ) рд╡рд╛рдкрд░рддреЗ рдЖрдгрд┐ рд░рд╣рд╕реНрдпрдордп BinaryObject рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░рддреЗ:

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

рдореА рддреЗ рд╡рд╛рдЪрд▓реЗ рдереЛрдбреЗрд╕реЗ: рдмрд╛рдпрдирд░реА рд╕реНрд╡рд░реВрдк - рдкреНрд░рддрд┐рдмрд┐рдВрдмрд╛рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА, рдирд╛рд╡рд╛рдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯрдЪреНрдпрд╛ рдлреАрд▓реНрдбрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ. рдСрдмреНрдЬреЗрдХреНрдЯ рдкреВрд░реНрдгрдкрдгреЗ рдбреАрд╕реАрд░рд┐рдпрд▓ рди рдХрд░рддрд╛ рдлреАрд▓реНрдбрдЪреЗ рдореВрд▓реНрдп рд╡рд╛рдЪреВ рд╢рдХрддреЗ (рдореЗрдорд░реА рдЬрддрди рдХрд░рддреЗ). рдкрдг рдЭрд┐рд░реЛ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдЕрд╕рд▓реНрдпрд╛рдиреЗ рд╡реНрдпрдХреНрддреАрдРрд╡рдЬреА BinaryObject рдХрд╛ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ? IgniteCache рдХрд╛ IgniteCache рд╡рд░ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ ? рддреЗ рдЕрдЬреВрди рд╕реНрдкрд╖реНрдЯ рдЭрд╛рд▓реЗрд▓реЗ рдирд╛рд╣реА.

рдореА рдорд╛рдЭреНрдпрд╛ рдХреЗрд╕рд╕рд╛рдареА рдХреЙрдореНрдкреНрдпреБрдЯ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд░реАрдореЗрдХ рдХрд░рдд рдЖрд╣реЗ. 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 рд░реЗрдХреЙрд░реНрдбрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдПрдХрддреНрд░рд┐рдд рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓, рддреНрдпрд╛рдирдВрддрд░ рдХреНрд▓рд╛рдпрдВрдЯ рдиреЛрдб рдЕрдВрддрд┐рдо рд╕рдореАрдХрд░рдг рдХрд░реЗрд▓.

рдореА рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╡рд╛рдЪрдд рдЖрд╣реЗ рдкреНрд░рдердо рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рдЧрдгрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдореА рдЙрдкрдорд╛ рдХрд░реВрди рдХрд░рддреЛ. рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбрд╡рд░ рдореА IgniteRunnable(), рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдЪрд╛рд▓рд╡рддреЛ:

  @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);

рд╕реНрдЯреЕрдХрдУрд╡реНрд╣рд░рдлреНрд▓реЛ рдореНрд╣рдгрддреЗ рдХреА рддреНрд░реБрдЯреАрдЪреЗ рдХрд╛рд░рдг рд╣реЗ рдЖрд╣реЗ рдХреА CentOs рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдХреЛрдгрддрд╛рд╣реА рд╕рд╛рдиреБрдХреВрд▓ SalesPoint рд╡рд░реНрдЧ рдирд╛рд╣реА. рдЖрдореНрд╣реА рдкреЛрд╣реЛрдЪрд▓реЛ. "рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрд╡рд░ рддреБрдордЪрд╛ рдЬрд╛рд╡рд╛ рдХреЛрдб рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА" рд╡рдЧреИрд░реЗ рдХрд╛рдп? рдХрд┐рдВрд╡рд╛ тАЬрддреБрдордЪрд╛ Java рдХреЛрдбтАЭ SalesPoint рдмрджреНрджрд▓ рдирд╛рд╣реА?

рдорд╛рдЭреЗ рдХрджрд╛рдЪрд┐рдд рдХрд╛рд╣реАрддрд░реА рдЪреБрдХрд▓реЗ рдЖрд╣реЗ - рдореА рдкреБрдиреНрд╣рд╛ рд╢реЛрдзрдгреЗ, рд╡рд╛рдЪрдгреЗ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рд╢реЛрдзрдгреЗ рд╕реБрд░реВ рдХрд░рддреЛ. рдереЛрдбреНрдпрд╛ рд╡реЗрд│рд╛рдиреЗ, рдорд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрддреЗ рдХреА рдореА рд╡рд┐рд╖рдпрд╛рд╡рд░реАрд▓ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╡рд╛рдЪрд▓реЗ рдЖрд╣реЗ, рдЖрддрд╛ рдирд╡реАрди рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА. рдореА рд╢реЛрдзрдд рдЕрд╕рддрд╛рдирд╛, рдорд▓рд╛ рдХрд╛рд╣реА рдордиреЛрд░рдВрдЬрдХ рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рд╕рд╛рдкрдбрд▓реНрдпрд╛.

рд╡реНрд╣реЕрд▓реЗрдВрдЯрд╛рдИрди рдХреБрд▓рд┐рдЪреЗрдиреНрдХреЛ, рдЧреНрд░рд┐рдбрдЧреЗрди рд╕рд┐рд╕реНрдЯреАрдореНрд╕рдЪреЗ рд▓реАрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ, рдЙрддреНрддрд░ StackOverflow рд╡рд░, рдПрдкреНрд░рд┐рд▓ 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.

рдЖрдгрдЦреА рдПрдХ рдЕрдзрд┐рдХреГрдд рдордд: рдбреЗрдирд┐рд╕ рдореЕрдЧреНрдбрд╛, рдЙрддреНрдкрд╛рджрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рдВрдЪрд╛рд▓рдХ, рдЧреНрд░рд┐рдбрдЧреЗрди рд╕рд┐рд╕реНрдЯрдореНрд╕.

Habr├й рд╡рд░ рд▓реЗрдЦ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕ рдмрджреНрджрд▓ рдбреЗрдирд┐рд╕ рдореЕрдЧреНрдбрд╛ рдпрд╛рдВрдЪреНрдпрд╛ рддреАрди рд▓реЗрдЦрд╛рдВрдЪрд╛ рд╕рдВрджрд░реНрдн: рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕ рднрд╛рдЧ I, рд╕реВрдХреНрд╖реНрдо рд╕реЗрд╡рд╛ рднрд╛рдЧ II, рд╕реВрдХреНрд╖реНрдо рд╕реЗрд╡рд╛ рднрд╛рдЧ III 2016-2017. рджреБрд╕рд▒реНрдпрд╛ рд▓реЗрдЦрд╛рдд, рдбреЗрдирд┐рд╕ рдиреЗ MaintenanceServiceNodeStartup.jar рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдб рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЪреЗ рд╕реБрдЪрд╡рд▓реЗ рдЖрд╣реЗ. рддреБрдореНрд╣реА xml рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЖрдгрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирд╕рд╣ рд▓рд╛рдБрдЪ рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рдирдВрддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЬрд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбрд╡рд░ рд╕реНрд╡рд╣рд╕реНрддреЗ рд╕рд╛рдиреБрдХреВрд▓ рд╡рд░реНрдЧ рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

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 рд╣реЗ рд╕рд░реНрд╡ рдЙрдкрд▓рдмреНрдз рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕рд░реНрд╡рд╛рдд рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ. рддреНрдпрд╛рдЪреНрдпрд╛ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдЧрд┐рдердмрдордзреНрдпреЗ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдЪреЗ рдкреВрд░реНрдгрдкрдгреЗ рддрдпрд╛рд░ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ, рдЬреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд╡реЕрдЯрд┐рдВрдЧрд╢рд┐рд╡рд╛рдп рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ.

рдореА рддреЗ рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдХрд░рддреЛ рдЖрдгрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди "рдбреЗрдЯрд╛ рдиреЛрдб" рдХрд┐рдВрд╡рд╛ "рдХреНрд▓рд╛рдпрдВрдЯ рдиреЛрдб" рд▓рд╛рдБрдЪ рдХрд░рдгрд╛рд░реА рд╕рд┐рдВрдЧрд▓ рдЬрд╛рд░ рдлрд╛рдЗрд▓ рдорд┐рд│рддреЗ. рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реБрд░реВ рд╣реЛрддреЗ рдЖрдгрд┐ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдЭрд┐рд░реЛ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯрдЪрд╛ рдкрд░рд╛рднрд╡ рдЭрд╛рд▓рд╛ рдЖрд╣реЗ.

рдЪрд╛рдЪрдгреА рдбреЗрдЯрд╛рдЪреНрдпрд╛ рдореЗрдЧрд╛рдмрд╛рдЗрдЯреНрд╕рдкрд╛рд╕реВрди рджрд╣рд╛рдкрдЯ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рд▓рдврд╛рдК рдбреЗрдЯрд╛рдордзреНрдпреЗ рд╕рдВрдХреНрд░рдордгрд╛рдиреЗ рджрд░реНрд╢рд╡рд▓реЗ рдХреА рдмрд╛рдпрдирд░реА рд╕реНрд╡рд░реВрдк рдПрдХрд╛ рдХрд╛рд░рдгрд╛рд╕рд╛рдареА рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗ. рдиреЛрдбреНрд╕рд╡рд░ рдореЗрдорд░реА рд╡рд╛рдкрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ рдЖрдгрд┐ рдпреЗрдереЗрдЪ рдмрд╛рдпрдирд░реАрдСрдмреНрдЬреЗрдХреНрдЯ рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рдард░рд▓реЗ.

4. рдирд┐рд╖реНрдХрд░реНрд╖

Apache Ignite рдкреНрд░рдХрд▓реНрдк рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдЪреНрдпрд╛ рдЕрд╕реНрдкрд╖реНрдЯрддреЗрдмрджреНрджрд▓ рдЖрд▓реЗрд▓реА рдкрд╣рд┐рд▓реА рдирд┐рдВрджрд╛ рдирд┐рд╖реНрдкрдХреНрд╖ рдард░рд▓реА; 2016 рдкрд╛рд╕реВрди рдереЛрдбреЗ рдмрджрд▓рд▓реЗ рдЖрд╣реЗрдд. рдирд╡рд╢рд┐рдХреНрдпрд╛рд╕рд╛рдареА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рднрд╛рдВрдбрд╛рд░рд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд░рдд рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдПрдХрддреНрд░ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдирд╛рд╣реА.

рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрд╛рдорд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ, рд╢реВрдиреНрдп рдЙрдкрдпреЛрдЬрди рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдкрд░рдВрддреБ рдХреЗрд╡рд│ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░рд╛рд╡рд░ рдЕрд╢реА рдЫрд╛рдк рд╣реЛрддреА. рдпрд╛рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА: BinaryObject рдЪрд╛ рд╡рд╛рдкрд░ рд░рд┐рдореЛрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕рд▓рд╛ рд╕рд╛рдиреБрдХреВрд▓ рд╡рд░реНрдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рд╢рд┐рдХрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ; рд╢реВрдиреНрдп рдЙрдкрдпреЛрдЬрди - рдЕрдВрддрд░реНрдЧрдд рдпрдВрддреНрд░рдгрд╛
рдЕрдкрд╛рдЪреЗ рд╕реНрд╡рддрдГ рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рд╕рдВрдкреВрд░реНрдг рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╕рд┐рд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреЗ рд╡рд┐рддрд░рдг рдХрд░рддреЗ.

рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдорд╛рдЭрд╛ рдЕрдиреБрднрд╡ рдирд╡реАрди Apache Ignite рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛