예제 #1
0
 public MessageRouter(ISocketFactory socketFactory,
                      IInternalRoutingTable internalRoutingTable,
                      IExternalRoutingTable externalRoutingTable,
                      IScaleOutConfigurationProvider scaleOutConfigurationProvider,
                      IClusterServices clusterServices,
                      IServiceMessageHandlerRegistry serviceMessageHandlerRegistry,
                      IPerformanceCounterManager <KinoPerformanceCounters> performanceCounterManager,
                      ISecurityProvider securityProvider,
                      ILocalSocket <IMessage> localRouterSocket,
                      ILocalReceivingSocket <InternalRouteRegistration> internalRegistrationsReceiver,
                      IInternalMessageRouteRegistrationHandler internalRegistrationHandler,
                      IRoundRobinDestinationList roundRobinDestinationList,
                      ILogger logger)
 {
     this.logger                        = logger;
     this.socketFactory                 = socketFactory;
     this.internalRoutingTable          = internalRoutingTable;
     this.externalRoutingTable          = externalRoutingTable;
     this.scaleOutConfigurationProvider = scaleOutConfigurationProvider;
     this.clusterServices               = clusterServices;
     this.serviceMessageHandlerRegistry = serviceMessageHandlerRegistry;
     this.performanceCounterManager     = performanceCounterManager;
     this.securityProvider              = securityProvider;
     this.localRouterSocket             = localRouterSocket;
     this.localRouterSocket.SendRate    = performanceCounterManager.GetCounter(KinoPerformanceCounters.MessageRouterLocalSocketSendRate);
     this.localRouterSocket.ReceiveRate = performanceCounterManager.GetCounter(KinoPerformanceCounters.MessageRouterLocalSocketReceiveRate);
     this.internalRegistrationsReceiver = internalRegistrationsReceiver;
     this.internalRegistrationHandler   = internalRegistrationHandler;
     this.roundRobinDestinationList     = roundRobinDestinationList;
 }
예제 #2
0
 public KnownMessageRoutesActor(IExternalRoutingTable externalRoutingTable,
                                IInternalRoutingTable internalRoutingTable,
                                RouterConfiguration routerConfiguration)
 {
     this.externalRoutingTable = externalRoutingTable;
     this.internalRoutingTable = internalRoutingTable;
     this.routerConfiguration = routerConfiguration;
 }
 public NodeUnregistrationHandler(IClusterHealthMonitor clusterHealthMonitor,
                                  IExternalRoutingTable externalRoutingTable,
                                  ISecurityProvider securityProvider)
 {
     this.clusterHealthMonitor = clusterHealthMonitor;
     this.externalRoutingTable = externalRoutingTable;
     this.securityProvider     = securityProvider;
 }
 public ExternalMessageRouteRegistrationHandler(IExternalRoutingTable externalRoutingTable,
                                                ISecurityProvider securityProvider,
                                                IClusterHealthMonitor clusterHealthMonitor,
                                                ILogger logger)
 {
     this.externalRoutingTable = externalRoutingTable;
     this.logger               = logger;
     this.securityProvider     = securityProvider;
     this.clusterHealthMonitor = clusterHealthMonitor;
 }
예제 #5
0
 private MessageRouter CreateMessageRouter(IInternalRoutingTable internalRoutingTable = null,
                                           IExternalRoutingTable externalRoutingTable = null)
 => new MessageRouter(socketFactory.Object,
                      internalRoutingTable ?? new InternalRoutingTable(),
                      externalRoutingTable ?? new ExternalRoutingTable(logger.Object),
                      scaleOutConfigurationProvider.Object,
                      clusterServices.Object,
                      serviceMessageHandlerRegistry.Object,
                      perfCounterManager.Object,
                      securityProvider.Object,
                      localRouterSocket.Object,
                      internalRegistrationsReceiver.Object,
                      internalRegistrationHandler.Object,
                      logger.Object);
예제 #6
0
 public MessageRouter(ISocketFactory socketFactory,
                      IInternalRoutingTable internalRoutingTable,
                      IExternalRoutingTable externalRoutingTable,
                      RouterConfiguration routerConfiguration,
                      IClusterMonitor clusterMonitor,
                      IMessageTracer messageTracer,
                      ILogger logger)
 {
     this.logger = logger;
     this.messageTracer = messageTracer;
     this.socketFactory = socketFactory;
     localSocketIdentityPromise = new TaskCompletionSource<byte[]>();
     this.internalRoutingTable = internalRoutingTable;
     this.externalRoutingTable = externalRoutingTable;
     this.clusterMonitor = clusterMonitor;
     this.routerConfiguration = routerConfiguration;
     cancellationTokenSource = new CancellationTokenSource();
 }
예제 #7
0
        private IEnumerable <IServiceMessageHandler> CreateServiceMessageHandlers(IClusterConnectivity clusterConnectivity,
                                                                                  IExternalRoutingTable externalRoutingTable,
                                                                                  IInternalRoutingTable internalRoutingTable,
                                                                                  ISecurityProvider securityProvider)
        {
            yield return(new UnreachableNodeUnregistrationHandler(clusterConnectivity, externalRoutingTable));

            yield return(new ClusterMessageRoutesRequestHandler(clusterConnectivity, internalRoutingTable, securityProvider));

            yield return(new ExternalMessageRouteRegistrationHandler(externalRoutingTable, securityProvider, clusterConnectivity, logger));

            yield return(new MessageRouteDiscoveryHandler(clusterConnectivity, internalRoutingTable, securityProvider, logger));

            yield return(new MessageRouteUnregistrationHandler(clusterConnectivity, externalRoutingTable, securityProvider, logger));

            yield return(new NodeUnregistrationHandler(clusterConnectivity, externalRoutingTable, securityProvider));

            yield return(new NodeMessageRoutesRequestHandler(clusterConnectivity, internalRoutingTable, securityProvider));

            yield return(new PingHandler());
        }
예제 #8
0
 public UnreachableNodeUnregistrationHandler(IClusterHealthMonitor clusterHealthMonitor,
                                             IExternalRoutingTable externalRoutingTable)
 {
     this.clusterHealthMonitor = clusterHealthMonitor;
     this.externalRoutingTable = externalRoutingTable;
 }
예제 #9
0
 internal MessageRoutesActor(IExternalRoutingTable externalRoutingTable)
 {
     this.externalRoutingTable = externalRoutingTable;
 }
예제 #10
0
 public MessageRoutesActor(IExternalRoutingTable externalRoutingTable,
                           IInternalRoutingTable internalRoutingTable)
 {
     this.externalRoutingTable = externalRoutingTable;
     this.internalRoutingTable = internalRoutingTable;
 }