2 Nisan 2023 Pazar

HazelcastAPI ITopic Arayüzü

Giriş
Şu satırı dahil ederiz
import com.hazelcast.topic.ITopic;
Publish/Subscribe yöntemi sağlar. Yayınlanan mesajı tüm aboneler alırlar

constructor - Reliable Topic
Örnek
Şöyle yaparız
HazelcastInstance hz = Hazelcast.newHazelcastInstance();

ITopic<Long> topic = hz.getReliableTopic("sometopic");
long messageId = ...;

topic.publish(messageId);
addMessageListener metodu
Örnek
Publisher için şöyle yaparız
public class Trader {
  private HazelcastInstance hazelcast;
  private ITopic<TradeMessage> tradeTopic;
    
  public Trader() {
    hazelcast = Hazelcast.newHazelcastInstance();
    tradeTopic = hazelcast.getTopic("trades");
  }
    
  public void trade(String symbol, int quantity, double price) {
    TradeMessage trade = new TradeMessage(symbol, quantity, price);
    tradeTopic.publish(trade);
  }
}
Listener için şöyle yaparız. Listener hem member hem de client tarafında takılabilir.
public class TradeListener implements MessageListener<TradeMessage> {
  private HazelcastInstance hazelcast;
  private ITopic<TradeMessage> tradeTopic;
    
  public TradeListener() {
    hazelcast = Hazelcast.newHazelcastInstance();
    tradeTopic = hazelcast.getTopic("trades");
    tradeTopic.addMessageListener(this);
  }
    
  public void onMessage(Message<TradeMessage> message) {
    TradeMessage trade = message.getMessageObject();
  }
}
Takılan her bir MessageListener nenesi için MessageRunner sınıfından kalıtan
ReliableMessageRunner veya 
ClientReliableMessageRunner 
yaratılır

MessageRunner belirtilen ringBuffer nesnesinden okuma işlemi başlatır. İşlemin sonucunu kendisine dışarıdan verilen Executor üzerinde çalıştırır

publish metodu
Örnek
Şöyle yaparız
ITopic topic = ...;
topic.publish(objectToStore);
removeMessageListener
Örnek
Şöyle yaparız
HazelcastInstance hazelcastInstance = ...;


ITopic topic = hazelcastInstance.getReliableTopic("topic_name");

String listenerId = topic.addMessageListener(new TopicListener());
topic.removeMessageListener(listenerId);
Şöyle yaparız
class TopicListener implements MessageListener {

  @Override
  public void onMessage(Message message) {}

}



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