Java 的分布式事件处理机制

2022-09-04 01:03:34

我正在寻找Java中一种相当快速的事件处理机制,以在不同主机上运行的不同JVM上生成和处理事件。

对于单个JVM中跨多个线程的事件处理,我发现了一些像Jetlang这样的好候选者。但是在寻找分布式等价物时,我找不到任何轻量级到足以提供良好性能的东西。

有谁知道任何符合该法案的实现?

编辑:输入数字来表示性能有点困难。但是,例如,如果使用事件实现检测信号机制,并且检测信号间隔为 5 秒,则检测信号接收器应在一两秒内收到发送的检测信号。

通常,轻量级实现可提供良好的性能。涉及Web服务器或任何类型的集中式集线器的事件处理机制需要强大的硬件(绝对不是轻量级的)来提供良好的性能,这不是我想要的。


答案 1

黑兹尔卡斯特主题是一个分布式的发布-订阅消息传递解决方案。

public class Sample implements MessageListener {

    public static void main(String[] args) { 
        Sample sample = new Sample();
        Topic topic = Hazelcast.getTopic ("default");  
        topic.addMessageListener(sample);       
        topic.publish ("my-message-object");
    }  
     
    public void onMessage(Object msg) {
        System.out.println("Message received = " + msg);
    } 
}

Hazelcast 还支持分布式队列、映射、集、列表上的事件。所有事件也都是有序的。

问候

-塔利普

http://www.hazelcast.com


答案 2

根据您的使用案例,Terracotta可能是一个很好的选择。


推荐