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.

chevron-right๐Ÿ’ก Java Code (.net code is not available)hashtag

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:

chevron-right๐Ÿ’ก Java Code (.net code is not available)hashtag

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.htmlarrow-up-right) 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