负载平衡的分发器

NServiceBus经销商类似行为的标准负载平衡器。它是透明的扩展的关键消息处理在许多机器。

作为标准NServiceBus过程中,经销商维护所有NServiceBus的容错和性能特征,但设计不压倒任何职工的节点配置来接收工作。

什么时候使用它呢?

扩展(有或没有一个分销商)对所做的工作仅仅是有用的一台机器需要时间,因此帮助更多的计算资源。帮助,监控CriticalTime性能计数器端点和当你有需要添加的分销商。使用经销商在需要的时候扩展是由不容易改变代码,刚刚开始相同的端点在经销商和职工档案,本文解释了。

分销商是否适用只有当使用MSMQ传输交换消息。NServiceBus使用MSMQ作为默认的运输。经销商不需要使用等代理传输和RabbitMQ状态"置疑"时,因为它们共享相同的队列,即使有多个端点的实例运行。NServiceBus将确保只有其中一个的实例,在这种情况下,端点将处理信息。

为什么要使用它呢?

当开始使用NServiceBus时,您将看到,您可以很容易地运行多个实例相同的过程相同的输入队列。这可能看起来像外扩,但真的是没有运行多个不同的线程在相同的过程。你会发现你不能在多台计算机共享一个输入队列。

经销商在这个限制。

MSMQ V4呢?

MSMQ的版本4,2008年与Vista和服务器可用,可以执行远程事务接收。这意味着过程在其他机器上可以以事务的方式把工作从一个队列在不同的机器上。如果处理消息的机器崩溃,消息回滚到队列和其他机器可以处理它。

尽管分销商提供类似的功能甚至在Vista发布之前,还有其他原因使用它甚至在新的操作系统。“远程事务接收”的问题是,当多个工作节点时,它会随之变慢。这是由于管理的开销更多的事务,以及长时间,这些交易是开放的。

简而言之,扩展MSMQ V4的好处本身是相当有限的。

性能?

经销商做多个操作对于每个消息,它是处理(接收一个现成的消息形成一个工人,发送消息??工人工作,接收一个现成的消息后加工),其性能是有限的虽然做很少的工作,因此使用一个经销商的好处是更适合较长时间运行的工作单元(高I / O和http调用一样,写入磁盘)而不是非常短暂的工作单元(快速从数据库读取和分派消息使用 Bus.Send Bus.Publish)

为了了解你预期的性能可分为常规端点性能和除以4。

如果您需要规模小的工作单元你可能想考虑较小的垂直部分切片处理程序的功能和部署他们自己的终点。

它是如何工作的?

工作者节点将消息发送到经销商,告诉它当他们准备工作。这些消息到达经销商通过一个单独的“控制”队列:

那么经销商创建一个准备好了每个可用线程的消息:

经销商存储这些信息。当消息到达经销商时,它使用先前存储的信息来找到一个自由工作者节点,并向其发送消息。是免费的,如果没有工人节点重复前面步骤前的经销商等。

所有悬而未决的工作呆在经销商的队列(而不是建立在每个工人的队列),使能见度的消息实际上是等待多久。这是重要的遵守基于时间的服务水平协议(sla)。

监控的更多信息,请参阅监控NServiceBus端点.

关于Pub / Sub的更多信息在经销商的情况下看到的什么经销商对任何出版商节点一样

经销商配置

当主机在NServiceBus.Host.exe端点

如果您正在运行NServiceBus.Host.exe,下面的配置文件开始您的端点与分配器的功能:

开始你的端点作为经销商确保您安装NServiceBus.Distributor。MSMQ NuGet然后从命令行运行主机,如下:

NServiceBus.Host.exe NServiceBus.MSMQDistributor

或者使用一个版本早于NServiceBus的v4.3中:

NServiceBus.Host.exe NServiceBus.Distributor

NServiceBus。(MSMQ)经销商资料指示NServiceBus框架开始一个经销商在这个端点,等待工人争取。与NServiceBus。NServiceBus(MSMQ)主剖面。(MSMQ)经销商概要节点不执行一个工人。

您可以使用NServiceBus。(MSMQ)主开始一个分销商在端点与工人在其端点。开始你的端点作为主人确保您安装NServiceBus.Distributor。MSMQ NuGet然后从命令行运行主机,如下:

NServiceBus.Host.exe NServiceBus.MSMQMaster

或者使用一个版本早于NServiceBus的v4.3中:

NServiceBus.Host.exe NServiceBus.Master
当用到

当你自我主机你的端点,使用这个配置:

  • v5
  • V4
  • v3.3

    编辑

    var configuration = new BusConfiguration();
    
    // --------------------------------------
    // Running the Distributor and a Worker
    configuration.AsMSMQMasterNode();
    //or
    configuration.RunMSMQDistributor();
    // --------------------------------------
    
    // --------------------------------------
    // Running the Distributor only
    configuration.RunMSMQDistributor(false);
    // --------------------------------------
    

    在版本4和使用使用NServiceBus.Distributor。MSMQ NuGet.

    人员配置

    任何NServiceBus端点都可以作为一个工人节点运行。来激活它,创建一个处理程序相关的信息和保证 app.config经销商的文件包含路由信息。

    当主机在NServiceBus.Host.exe

    如果你举办与NServiceBus.Host端点。exe运行作为一个工人,使用这个命令行:

    NServiceBus.Host.exe NServiceBus.MSMQWorker
    

    或者使用一个版本早于NServiceBus的v4.3中:

    NServiceBus.Host.exe NServiceBus.Worker
    

    配置主节点服务器的名称所示 app.config的例子。注意 MasterNodeConfig部分:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <!-- Other sections go here -->
        <section name="MasterNodeConfig" type="NServiceBus.Config.MasterNodeConfig, NServiceBus.Core" />
      </configSections>
      <!-- Other config options go here -->
      <MasterNodeConfig Node="MachineWhereDistributorRuns"/>
    </configuration>
    

    读到的 DistributorControlAddress DistributorDataAddress路由与经销商部分。

    当用到

    如果你用到这里端点所需的代码与经销商争取端点。

  • v5
  • V4
  • v3.3

    编辑

    var configuration = new BusConfiguration();
    configuration.EnlistWithMSMQDistributor();
    

    在版本4和使用使用NServiceBus.Distributor。MSMQ NuGet.

    类似于自我托管,保证 app.config职工的包含 MasterNodeConfig指节主节点的主机名(经销商)正在运行。

    路由与经销商

    经销商为其运行时使用了两个队列的操作。的 DataInputQueue是客户端进程队列发送他们适用的消息。的ControlInputQueue就是工人的队列节点发送控制消息。

    使用价值以外的NServiceBus违约可以覆盖它们,如所示 UnicastBusConfig部分如下:

    <UnicastBusConfig DistributorControlAddress="[email protected]" DistributorDataAddress="[email protected]">
      <MessageEndpointMappings>
        <!-- regular entries -->
      </MessageEndpointMappings>
    </UnicastBusConfig>
    

    如果不存在这些设置,控制队列是假定的端点名称工人,连接的 [email protected]字符串。

    类似于标准NServiceBus路由,您不希望高优先级消息困在低优先级的消息,所以就像你有单独的NServiceBus过程不同的消息类型,你也设置不同的经销商实例(有单独的队列)不同的消息类型。

    在这种情况下,名称的队列和消息一样。例如, SubmitPurchaseOrder.StrategicCustomers.Sales。这是经销商的数据队列的名称和输入队列的每个工人。经销商的控制队列是最好的命名前缀为“控制”,如下:Control.SubmitPurchaseOrder.StrategicCustomers.Sales.

    当使用部署一个完整的发布/订阅的经销商,你看到的是一个分销商在每个用户平衡负载的事件被发表,如下:

    记住,经销商是专为负载平衡在一个网站,网站之间的所以不要使用它。在上面的图片中,发布者和订阅者都是在单个物理站点。关于使用NServiceBus在多个物理网站的信息,明白了网关.

    高可用性

    如果经销商宕机了,即使工人节点保持运行,他们不会收到任何消息。因此,重要的是要在集群上运行的经销商,有其队列配置为集群资源。

    因为经销商不做CPU或内存密集型的工作,通常可以把几个经销商过程在同一集群服务器。请注意网络IO经销商可能会成为瓶颈,所以考虑消息的大小和吞吐量上浆基础设施。

  • 时间: 2024-11-03 21:03:07

    负载平衡的分发器的相关文章

    Windows Server 2008 R2/2012 网络负载平衡NLB相关内容

    使用网络负载均衡技术可以实现一些应用程序的可用性和可伸缩性,常用的应用程序有:IIS.防火墙.VPN以及一些关键业务.每一个节点运行应用程序的一个副本.NLB在群集中的多个主机中分发传入的客户端请求.可以动态地添加主机,也可以将所有流量引导到指定的单个主机,这个主机就称为默认主主机.在一个群集中最多支持 32 台计算机. 当计算机意外出现故障或者脱机时,将断开与出现故障或脱机的服务器之间的活动连接.但是,如果您有意关闭主机,则可以在使计算机脱机之前,使用 drainstop 命令处理所有活动的连

    server 2016部署网络负载平衡(NLB)

    博文目录一.网络负载平衡概述二.NLB的群集操作模式三.使用NLB群集的注意事项四.部署NLB 一.网络负载平衡概述 网络负载平衡(Network Load Balancing,NLB)技术就是将访问压力均衡分布到多台服务器上,以此提高整个服务器集群的响应能力. 1.NLB Windows的网络负载平衡群集允许用户将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务,它们对外只需要提供一个IP地址(或域名).即使是在负载很重的情况下,也能做出快速响应,如

    pfsense Web服务器负载平衡配置示例

    在pfsense的网关和服务器中有两种类型的负载平衡功能.网关负载平衡可以通过多个WAN连接分发Internet绑定的流量.服务器负载平衡管理传入流量,因此它利用多个内部服务器进行负载分配和冗余,服务器负载平衡允许流量在多个内部服务器之间分配,它最常用于Web服务器和SMTP服务器.下面我们就以实例来介绍服务器负载平衡的设置. 下面介绍如何通过pfsense2.32配置Web服务器的负载平衡. 网络环境 服务器负载平衡示例网络环境 上图为示例网络环境.它由单个防火墙组成,使用其WAN IP地址池

    微软Azure云之企业Exchange 2016部署12&mdash;配置负载平衡

    上几节我们把Exchange2016邮箱系统配置完毕了,本节我们来配置开通需要对外的端口,并对这些端口进行负载均衡配置,如下图红框所示: 1.Exchange服务端口 Exchange2016需要对外开通以下的端口,来对外提供不同的服务: 其中最主要的事HTTPS(443)端口,以下服务需要用到此端口: 自动发现服务 Exchange ActiveSync Exchange Web 服务 (EWS) 脱机通讯簿 Outlook 无处不在 MAPI over HTTP in Exchange 20

    Windows Server 2008 R2 负载平衡入门篇

    一.简单介绍负载均衡 负载均衡也称负载共享,它是指负载均衡是指通过对系统负载情况进行动态调整,把负荷分摊到多个操作节点上执行,以减少系统中因各个节点负载不均衡所造成的影响,从而提高系统的工作效率.在常用的大型服务器系统当中都存在着负载均衡组件,常用的像微软的网络负载平衡NLB.甲骨文的Oracle RAC.思科的负载均衡(SLB),Apach+Tomcat 负载均衡,它们能从硬件或软件不同方面实现系统各节点的负载平衡,有效地提高大型服务器系统的运行效率,从而提升系统的吞吐量.本篇文章以微软的网络

    企业级负载平衡简介

    在之前的一篇文章<放好你的密码 - 从芝麻金融被攻破说起>中,一位读者在评论中提出了“如果整个过程速度比较慢登陆会有问题”这样一条评论.虽然说我对文章的正确性很有把握,但也仍需要仔细思考是否自己哪里没有说清楚.在这个思考过程中,我想起了一个非常值得一说的话题,那就是负载平衡. 在那篇文章中我们说到,要安全地管理好密码,计算密码哈希所使用的迭代次数应该尽可能地大,从而使得单次哈希计算的速度变长,增加恶意人员破解密码的难度.反过来,如果有一百个人或者一千个人同时执行登陆操作,那么这么繁琐的哈希计算

    windows server 2003 负载平衡的详细设置步骤(转载)

    声明:本文为转载. 当把一台服务器(包括Web服务器.FTP服务器或者流媒体服务器等等)放入网络中之后,随着客户端数量的不断增加,人们往往需要功能更强大.处理速度更快的服务器.为了解决这个问题,如果将原有的服务器替换成功能更强大.处理速度更快的服务器显然并不是值得称道的办法.但是如果能把新服务器添加到原有服务器的处理能力基础上而不是替换它,这种方案毫无疑问更容易被用户接受.网络负载平衡(Network Load Balancing,NLB)群集的出现正好实现了这一目的. 一.网络负载平衡介绍 N

    搭建2008 R2 IIS网络负载平衡

                 windows server 2008 R2 搭建 IIS 负载平衡 我们直接从实验入手,那样更容易理解,安装iis的步骤就跳过 首先,准备三台虚拟机,要求三台虚拟机能相互访问.本实验里的三台计算机名称分别是:文件服务器08s6,两个群集节点分别是08s5和083,网站的配置和主目录放在文件服务器08s6上.给每台虚拟机新建立一个相同的用户名(webuser)和密码(123.com).把webuser加入到 iis_iusrs 组. 三台虚拟机的ip: 08s6:192

    第7章 性能和可靠性模式 Load-Balanced Cluster(负载平衡群集)

    上下文 您已经决定在设计或修改基础结构层时使用群集,以便在能够适应不断变化的要求的同时保持良好的性能. 问题 在保持可接受的性能级别的同时,如何设计一个可适应负载变化的.可伸缩的基础结构层? 影响因素 在设计可伸缩的基础结构层时,请考虑下列影响因素: 对于任何指定的应用程序来说,单独的服务器会受到最大负载容量的限制.例如,如果单台服务器将 Web 页作为基于 Web 的应用程序的一部分提供给用户,而且用户或事务负载增加并超过了服务器的限制,则应用程序性能将降至预期值以下,在最坏的情况下还会变得不