Fast-cast - 高性能的低延迟可靠多播消息


LGPL
跨平台
Java

软件简介

基于主题的高性能、可靠无代理 UDP 消息传递(“事件总线”)。可承受每秒高达 700 万个 70 字节的消息。

实现 NAK 协议所需的缓冲区不受影响,因此对 GC 的影响不大。如果配置得当,能保证可靠、有边界的低延迟。

要求 JDK 1.7 或更高版本

示例代码

基于快速序列化的对象组播(=广播)发布者:

public static void main(String arg[]) {
        FastCast.getFastCast().setNodeId("PUB"); // 5 chars MAX !!
        configureFastCast();
        FCPublisher pub = FastCast.getFastCast().onTransport("default").publish(
            new PublisherConf(1)            // unique-per-transport topic id
                .numPacketHistory(40_000)   // nuber of packets kept for retransmission requests
                .pps(5000)                  // packets per second rate limit. So max traffic for topic = 5000*2500 = 12.5 MB/second
        );
        // use a helper for fast-serialized messages
        ObjectPublisher opub = new ObjectPublisher(pub);
        RateMeasure measure = new RateMeasure("msg/s");
        while( true ) {
            measure.count();
            opub.sendObject(
                null,  // all listeners should receive (by specifying a nodeId, a specific subscriber can be targeted)
                "Hello "+System.currentTimeMillis(), // serializable object
                false  // allow for 'batching' several messages into one (will create slight latency)
            );
        }
    }