22 Kasım 2022 Salı

HazelcastClientAPI TcpClientConnection Sınıfı

Giriş
Şu satırı dahil ederiz
import com.hazelcast.client.impl.connection.tcp.TcpClientConnection;
ClientConnection arayüzünden kalıtır. ClientInvocationService tarafından kullanılır. TcpClientConnectionManager tarafından yaratılır.

Heart Beat
Client ve cluster sunucusu arasında bir heart beat mekanizması vardır. Örnek çıktı şöyle. Trafik yoksa bile heart beat çalışır eğer cevap gelmezse zaman aşımı süresi sonunda bağlantı kapatılır
[5.2.3] ClientConnection{alive=false, connectionId=3, channel=NioChannel{/192.168.178.24:51622->/34.214.55.240:30438}, remoteAddress=[10.0.48.198]:30000, lastReadTime=2023-07-18 11:14:37.854, lastWriteTime=2023-07-18 11:14:37.855, closedTime=2023-07-18 11:18:32.223, connected server version=null} closed. Reason: Heartbeat timed out

handleClientMessage metodu
Kod şöyle. Eğer gelen mesaj bir event ise - örneğin MapListener için gelen bir event ise - listenerService nesnesine teslim edilir.
@Override
public void handleClientMessage(ClientMessage message) {
  if (ClientMessage.isFlagSet(message.getHeaderFlags(), ClientMessage.BACKUP_EVENT_FLAG)) {
    responseHandler.accept(message);
  } else if (ClientMessage.isFlagSet(message.getHeaderFlags(),ClientMessage.IS_EVENT_FLAG)){
    ClientListenerServiceImpl listenerService = 
      ClientListenerServiceImpl) client.getListenerService();
    listenerService.handleEventMessage(message);
  else {
    responseHandler.accept(message);
   }
}
ClientListenerServiceImpl içinde bir Executor var. Bu executor gelen ClientMessage nesnesini işler.

Hiç yorum yok:

Yorum Gönder

THIRD-PARTY.txt Dosyası

Kullanılan harici kütüphanelerin sürümleri bu dosyada Dosyanın yolu şöyle hazelcast/licenses/THIRD-PARTY.txt