为什么 Aeron 多播比原始 Tcp 实现慢得多

问题描述 投票:0回答:1

我正在测试 Aeron 与原始 TCP 服务器 - 客户端的多播。

Aeron 模型设置:

  • 每个节点上的MD进程
  • 开始 1 个出版物和 1 个订阅者

原始 Tcp 服务器客户端:

  • 服务器:1个线程推送100万条整型消息
  • 客户端:1个线程消耗

结果: Aeron UDP:大约需要 17 秒 原始 TCP:大约需要 8 秒

据我所知,UDP 多播方式应该比 TCP 更快,我是否遗漏了什么或被误解了?我应该检查或微调什么以使 Aeron 更快

TCP 服务器

        serverSocket = new ServerSocket(port);

        while(true) {
            Socket clientSocket = serverSocket.accept();
            Thread t = new Thread(){
                @Override
                public void run() {
                    try{
                        System.out.println("Starting new thread serving client");
                        out = new DataOutputStream(clientSocket.getOutputStream());
                        in = new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));
                        for (int i = 0; i < 1_000_000; i++) {
                            System.out.println("Server sending..." + i + "..!");
                            out.writeInt(i);
                        }
                    } catch (IOException e){
                        //
                    }
                }
            };
            t.start();

        }

TCP 客户端

        System.out.println("I'm client!");
        TcpClient client = new TcpClient();
        String serverHost = System.getProperty("host");
        try {
            client.startConnection(serverHost, 6666);
            DataInputStream in = client.in;
            long st = System.currentTimeMillis();
            int counter = 1_000_000;
            while(counter > 0) {
                int v = in.readInt();
//                System.out.println("v: " + v);
                counter--;
            }

            long pt = System.currentTimeMillis() - st;
            System.out.println("Process time of TCP raw: " + pt);
        } finally {
            client.stopConnection();
        }
java distributed-system aeron
1个回答
0
投票

我可以在几分之一秒内使用 Aeron 在两台机器之间推送 100 万条消息。您的基准可能会得到改进。尝试熟悉像 JMH 这样的框架并了解实际测量的内容。这里有 Aeron(和其他消息传递)基准 - https://github.com/real-logic/benchmarks.

© www.soinside.com 2019 - 2024. All rights reserved.