【问题标题】:Is it ok to share the same port across multiple endpoints on the same machine?可以在同一台机器上的多个端点共享同一个端口吗?
【发布时间】:2020-05-26 16:16:10
【问题描述】:

我在同一台机器上托管了 7 个进程(C# .NET Framework),每个进程都包装了一个 NServiceBus(网关)端点以与远程站点进程(基于 MSMQ 的传输,InMemroyPersistency)进行通信。 我想知道是否从性能/网络利用率方面来看,我应该拆分每个端点以使用它自己的端口还是它们都可以为网关 ReceiveChannel 定义共享同一个端口?

谢谢

【问题讨论】:

    标签: c# nservicebus


    【解决方案1】:

    默认情况下,网关使用HttpChannel,并发设置为1。假设您将每个通道的并发设置为适合您的用例的可行值,并且假设实现是非阻塞的,那么您仅受在后台使用的单个 HttpListener 可以处理多少吞吐量的限制。

    鉴于每个端点在处理/处理消息方面应该有自己的责任,因此可能需要履行自己的服务水平协议,您可能希望对如何公开这些端点有更多的控制权。从网关的角度来看,端口共享应该是可能的,我建议根据您对项目的要求运行负载测试以做出正确的权衡。

    【讨论】:

    • “仅受底层使用的单个 HttpListener 可以处理多少吞吐量的限制” - 是否有已知值?还是取决于其他环境参数?
    • 我真的找不到任何东西。根据注册表support.microsoft.com/en-us/help/820129/… 中的设置,幕后的 HTTP.sys 似乎进行了连接处理、带宽限制等
    猜你喜欢
    • 2021-02-17
    • 2011-06-01
    • 1970-01-01
    • 2012-07-21
    • 2012-06-23
    • 2023-03-03
    • 2013-07-11
    • 1970-01-01
    相关资源
    最近更新 更多