Working With Events
03/02/2023
Ignite, clusterโda meydana gelen รงeลitli iลlemler iรงin eventler oluลturabilir ve uygulamanฤฑzฤฑ bu iลlemler hakkฤฑnda bilgilendirebilir. Cache eventleri, node discovery eventleri, distributed task execution eventleri ve รงok daha fazlasฤฑ dahil olmak รผzere pek รงok event tรผrรผ vardฤฑr.
Enabling Events
Varsayฤฑlan olarak eventler devre dฤฑลฤฑdฤฑr ve uygulamanฤฑzda kullanmak istiyorsanฤฑz her bir event tipini doฤrudan etkinleลtirmeniz gerekir. Belirli event tรผrlerini etkinleลtirmek iรงin, bunlarฤฑ aลaฤฤฑda gรถsterildiฤi gibi IgniteConfiguration'ฤฑn includeEventTypes propertyโsinde belirtin:
var cfg = new IgniteConfiguration
{
IncludedEventTypes = new[]
{
EventType.CacheObjectPut,
EventType.CacheObjectRead,
EventType.CacheObjectRemoved,
EventType.NodeJoined,
EventType.NodeLeft
}
};
var ignite = Ignition.Start(cfg);Getting the Events Interface
Event iลlevselliฤi, cluster eventlerini dinlemek iรงin methodlar saฤlayan event interfaceโi aracฤฑlฤฑฤฤฑyla kullanฤฑlabilir. Event interfaceโi, bir Ignite instanceโฤฑndan aลaฤฤฑdaki gibi elde edilebilir:
var ignite = Ignition.GetIgnite();
var events = ignite.GetEvents();Event interfaceโi bir dizi node ile iliลkilendirilebilir. Bu, belirli bir node kรผmesinde meydana gelen eventlere eriลebileceฤiniz anlamฤฑna gelir. Aลaฤฤฑdaki รถrnekte, Person cacheโi iรงin verileri barฤฑndฤฑran node kรผmesi iรงin event interfaceโi elde edilir.
Listening to Events
Local veya remote eventleri dinleyebilirsiniz. Local eventler, listenerโฤฑn kayฤฑtlฤฑ olduฤu nodeโda oluลturulan eventlerdir. Remote eventler, diฤer nodelarda meydana gelen eventlerdir.
Gerรงek hayatta olay 1 kere bile gerรงekleลse, bazฤฑ eventler birden fazla nodeโda tetiklenebilir. รrneฤin, bir node kรผmeden ayrฤฑldฤฑฤฤฑnda, kalan her nodeda EVT_NODE_LEFT olayฤฑ oluลturulur.
Baลka bir รถrnek, bir cacheโe bir nesne koyduฤunuz zamandฤฑr. Bu durumda, put(โฆ) methodunun รงaฤrฤฑldฤฑฤฤฑ nodeโdan farklฤฑ olabilecek, nesnenin gerรงekten yazฤฑldฤฑฤฤฑ birincil partititonโu barฤฑndฤฑran dรผฤรผmde EVT_CACHE_OBJECT_PUT eventi gerรงekleลir. Ek olarak, event, yapฤฑlandฤฑrฤฑlmฤฑลsa cache iรงin yedekleme partitionlarฤฑnฤฑ tutan tรผm nodeโlarda tetiklenir.
Event interfaceโi, yalnฤฑzca local eventleri ve hem local hem de remote eventleri dinlemek iรงin methodlar saฤlar.
Listening to Local Events
Local eventleri dinlemek iรงin aลaฤฤฑda gรถsterildiฤi gibi localListen(listener, eventTypesโฆ) methodunu kullanฤฑn. Method, local nodeโda verilen tรผrde bir event her meydana geldiฤinde รงaฤrฤฑlan bir event listener kabul eder. Local listenerโฤฑn kaydฤฑnฤฑ silmek iรงin Invoke methodunda false dรถndรผrรผn.
Listening to Remote Events
IgniteEvents.remoteListen(localListener, filter, types) methodu, hem remote hem de local eventleri dinleyen bir listenerโฤฑ kaydetmek iรงin kullanฤฑlabilir. Local bir listenerโฤฑ, bir filtreyi ve dinlemek istediฤiniz event tรผrleri listesini kabul eder.
Filtre, local nodeโda dahil olmak รผzere event interfaceโi ile iliลkili tรผm nodeโlara daฤฤฑtฤฑlฤฑr. Filtreyi geรงen eventler local listenerโa gรถnderilir.
Methoda, listenerโฤฑn ve filtrelerin kaydฤฑnฤฑ silmek iรงin kullanฤฑlabilecek benzersiz bir tanฤฑmlayฤฑcฤฑ dรถndรผrรผr. Bunu yapmak iรงin IgniteEvents.stopRemoteListen(uuid) methodunu รงaฤฤฑrฤฑn. Listenerโฤฑn kaydฤฑnฤฑ silmenin baลka bir yolu da Apply() yรถnteminde false dรถndรผrmektir.
Batching Events
Bir cacheteki her etkinlik, bir event bildiriminin oluลturulmasฤฑna ve gรถnderilmesine neden olabilir. Yรผksek cache etkinliฤine sahip sistemler iรงin, her event iรงin bildirim almak aฤ aรงฤฑsฤฑndan yoฤun olabilir ve muhtemelen cache iลlemlerinin performansฤฑnฤฑn dรผลmesine neden olabilir.
Etkinlik bildirimleri birlikte gruplandฤฑrฤฑlabilir ve performans รผzerindeki etkiyi azaltmak iรงin toplu olarak veya belirli aralฤฑklarla gรถnderilebilir. ฤฐลte bunun nasฤฑl yapฤฑlabileceฤine dair bir รถrnek:
Storing and Querying Events
Eventleri meydana geldikleri nodeโlarda tutacak bir event deposu yapฤฑlandฤฑrabilirsiniz. Daha sonra uygulamanฤฑzdaki eventleri sorgulayabilirsiniz.
Event deposu, eventleri belirli bir sรผre boyunca tutacak, yalnฤฑzca en son eventleri tutacak veya belirli bir filtreyi karลฤฑlayan eventleri tutacak ลekilde yapฤฑlandฤฑrฤฑlabilir. Ayrฤฑntฤฑlar iรงin [MemoryEventStorageSpi](https://ignite.apache.org/releases/2.14.0/javadoc/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.html) javadoc'a bakฤฑn.
Aลaฤฤฑda bir event depolama yapฤฑlandฤฑrmasฤฑ รถrneฤi verilmiลtir:
Querying Local Events
Aลaฤฤฑdaki รถrnek, event deposunda saklanan local EVT_CACHE_OBJECT_PUT eventlerini nasฤฑl sorgulayabileceฤinizi gรถsterir.
Querying Remote Events
Aลaฤฤฑdaki รถrnek, remote event deposunda saklanan EVT_CACHE_OBJECT_PUT eventlerini nasฤฑl sorgulayabileceฤinizi gรถsterir.
Last updated