public RouteDiscoveryTests() { autoDiscoverySender = new Mock <IAutoDiscoverySender>(); scaleOutConfigurationProvider = new Mock <IScaleOutConfigurationProvider>(); scaleOutAddress = new SocketEndpoint("tcp://127.0.0.1:9090"); scaleOutConfigurationProvider.Setup(m => m.GetScaleOutAddress()).Returns(scaleOutAddress); config = new ClusterMembershipConfiguration { RouteDiscovery = new RouteDiscoveryConfiguration { ClusterAutoDiscoveryStartDelay = TimeSpan.FromSeconds(1), ClusterAutoDiscoveryStartDelayMaxMultiplier = 2, MaxAutoDiscoverySenderQueueLength = 100, MissingRoutesDiscoverySendingPeriod = TimeSpan.FromSeconds(5), MaxMissingRouteDiscoveryRequestQueueLength = 100, MissingRoutesDiscoveryRequestsPerSend = 10 } }; securityProvider = new Mock <ISecurityProvider>(); domain = Guid.NewGuid().ToString(); securityProvider.Setup(m => m.GetDomain(It.IsAny <byte[]>())).Returns(domain); logger = new Mock <ILogger>(); routeDiscovery = new RouteDiscovery(autoDiscoverySender.Object, scaleOutConfigurationProvider.Object, config, securityProvider.Object, logger.Object); }
public AutoDiscoverySenderTests() { rendezvousCluster = new Mock <IRendezvousCluster>(); rendezvousEndpoint = new RendezvousEndpoint("tcp://*:8080", "tcp://*:9009"); rendezvousCluster.Setup(m => m.GetCurrentRendezvousServer()).Returns(rendezvousEndpoint); socketFactory = new Mock <ISocketFactory>(); socket = new Mock <ISocket>(); socketFactory.Setup(m => m.CreateDealerSocket()).Returns(socket.Object); performanceCounterManager = new Mock <IPerformanceCounterManager <KinoPerformanceCounters> >(); var perfCounter = new Mock <IPerformanceCounter>(); performanceCounterManager.Setup(m => m.GetCounter(It.IsAny <KinoPerformanceCounters>())).Returns(perfCounter.Object); logger = new Mock <ILogger>(); config = new ClusterMembershipConfiguration { RouteDiscovery = new RouteDiscoveryConfiguration { MaxAutoDiscoverySenderQueueLength = 100 } }; autoDiscoverSender = new AutoDiscoverySender(rendezvousCluster.Object, socketFactory.Object, config, performanceCounterManager.Object, logger.Object); }
public AutoDiscoverySender(IRendezvousCluster rendezvousCluster, ISocketFactory socketFactory, ClusterMembershipConfiguration clusterMembershipConfiguration, IPerformanceCounterManager <KinoPerformanceCounters> performanceCounterManager, ILogger logger) { this.rendezvousCluster = rendezvousCluster; this.socketFactory = socketFactory; this.config = clusterMembershipConfiguration.RouteDiscovery; this.performanceCounterManager = performanceCounterManager; this.logger = logger; outgoingMessages = new BlockingCollection <IMessage>(new ConcurrentQueue <IMessage>()); }
public RouteDiscovery(IAutoDiscoverySender autoDiscoverySender, IScaleOutConfigurationProvider scaleOutConfigurationProvider, ClusterMembershipConfiguration clusterMembershipConfiguration, ISecurityProvider securityProvider, ILogger logger) { this.securityProvider = securityProvider; discoveryConfiguration = clusterMembershipConfiguration.RouteDiscovery; this.autoDiscoverySender = autoDiscoverySender; this.scaleOutConfigurationProvider = scaleOutConfigurationProvider; this.logger = logger; requests = new HashedQueue <MessageRoute>(discoveryConfiguration.MaxMissingRouteDiscoveryRequestQueueLength); }
public void Setup() { autoDiscoverySender = new Mock <IAutoDiscoverySender>(); scaleOutConfigurationProvider = new Mock <IScaleOutConfigurationProvider>(); scaleOutAddress = new SocketEndpoint("tcp://127.0.0.1:9090"); scaleOutConfigurationProvider.Setup(m => m.GetScaleOutAddress()).Returns(scaleOutAddress); config = new ClusterMembershipConfiguration(); securityProvider = new Mock <ISecurityProvider>(); domain = Guid.NewGuid().ToString(); securityProvider.Setup(m => m.GetDomain(It.IsAny <byte[]>())).Returns(domain); logger = new Mock <ILogger>(); routeDiscovery = new RouteDiscovery(autoDiscoverySender.Object, scaleOutConfigurationProvider.Object, config, securityProvider.Object, logger.Object); }
public AutoDiscoveryListener(IRendezvousCluster rendezvousCluster, ISocketFactory socketFactory, IScaleOutConfigurationProvider scaleOutConfigurationProvider, ClusterMembershipConfiguration membershipConfiguration, IPerformanceCounterManager <KinoPerformanceCounters> performanceCounterManager, ILocalSocket <IMessage> localRouterSocket, ILogger logger) { this.logger = logger; this.membershipConfiguration = membershipConfiguration; this.performanceCounterManager = performanceCounterManager; this.localRouterSocket = localRouterSocket; this.rendezvousCluster = rendezvousCluster; this.socketFactory = socketFactory; this.scaleOutConfigurationProvider = scaleOutConfigurationProvider; heartBeatReceived = new ManualResetEvent(false); newRendezvousConfiguration = new ManualResetEvent(false); }
public ClusterMonitor(IScaleOutConfigurationProvider scaleOutConfigurationProvider, IAutoDiscoverySender autoDiscoverySender, IAutoDiscoveryListener autoDiscoveryListener, IHeartBeatSenderConfigurationProvider heartBeatConfigurationProvider, IRouteDiscovery routeDiscovery, ISecurityProvider securityProvider, ClusterMembershipConfiguration clusterMembershipConfiguration, ILogger logger) { this.scaleOutConfigurationProvider = scaleOutConfigurationProvider; this.autoDiscoverySender = autoDiscoverySender; this.autoDiscoveryListener = autoDiscoveryListener; this.heartBeatConfigurationProvider = heartBeatConfigurationProvider; this.routeDiscovery = routeDiscovery; this.securityProvider = securityProvider; routeDiscoveryConfig = clusterMembershipConfiguration.RouteDiscovery; this.logger = logger; randomizer = new C5Random(); clusterRoutesRequestTimer = new Timer(_ => RequestClusterRoutes(), null, TimeSpan.FromMilliseconds(-1), TimeSpan.FromMilliseconds(-1)); }
public AutoDiscoveryListenerTests() { rendezvousCluster = new Mock <IRendezvousCluster>(); rendezvousEndpoints = new[] { new RendezvousEndpoint("tcp://*:8080", "tcp://*:9090"), new RendezvousEndpoint("tcp://*:8081", "tcp://*:9091") }; currentRendezvousIndex = 0; rendezvousCluster.Setup(m => m.GetCurrentRendezvousServer()).Returns(GetCurrentRendezvous()); rendezvousCluster.Setup(m => m.RotateRendezvousServers()).Callback(SetNextRendezvous); rendezvousCluster.Setup(m => m.Reconfigure(It.IsAny <IEnumerable <RendezvousEndpoint> >())) .Callback <IEnumerable <RendezvousEndpoint> >(SetNewRendezvous); socketFactory = new Mock <ISocketFactory>(); subscriptionSocket = new Mock <ISocket>(); socketFactory.Setup(m => m.CreateSubscriberSocket()).Returns(subscriptionSocket.Object); scaleOutConfigurationProvider = new Mock <IScaleOutConfigurationProvider>(); scaleOutAddress = new SocketEndpoint("tcp://*:7878", Guid.NewGuid().ToByteArray()); scaleOutConfigurationProvider.Setup(m => m.GetScaleOutAddress()).Returns(scaleOutAddress); membershipConfiguration = new ClusterMembershipConfiguration { HeartBeatSilenceBeforeRendezvousFailover = TimeSpan.FromSeconds(1) }; performanceCounterManager = new Mock <IPerformanceCounterManager <KinoPerformanceCounters> >(); var perfCounter = new Mock <IPerformanceCounter>(); performanceCounterManager.Setup(m => m.GetCounter(It.IsAny <KinoPerformanceCounters>())).Returns(perfCounter.Object); localRouterSocket = new Mock <ILocalSocket <IMessage> >(); logger = new Mock <ILogger>(); restartRequestHandler = new Mock <Action>(); gateway = new Barrier(1); autoDiscoveryListener = new AutoDiscoveryListener(rendezvousCluster.Object, socketFactory.Object, scaleOutConfigurationProvider.Object, membershipConfiguration, performanceCounterManager.Object, localRouterSocket.Object, logger.Object); }
public ClusterMonitorTests() { securityProvider = new Mock <ISecurityProvider>(); domain = Guid.NewGuid().ToString(); securityProvider.Setup(m => m.GetAllowedDomains()).Returns(new[] { domain }); securityProvider.Setup(m => m.GetDomain(It.IsAny <byte[]>())).Returns(domain); logger = new Mock <ILogger>(); routeDiscovery = new Mock <IRouteDiscovery>(); scaleOutAddress = new SocketEndpoint(new Uri("tcp://127.0.0.1:5000"), Guid.NewGuid().ToByteArray()); scaleOutConfigurationProvider = new Mock <IScaleOutConfigurationProvider>(); scaleOutConfigurationProvider.Setup(m => m.GetScaleOutAddress()).Returns(scaleOutAddress); autoDiscoverySender = new Mock <IAutoDiscoverySender>(); autoDiscoveryListener = new Mock <IAutoDiscoveryListener>(); heartBeatSenderConfigProvider = new Mock <IHeartBeatSenderConfigurationProvider>(); heartBeatUri = new Uri("tcp://127.0.0.1:890"); heartBeatSenderConfigProvider.Setup(m => m.GetHeartBeatAddress()).Returns(heartBeatUri); heartBeatInterval = TimeSpan.FromSeconds(5); heartBeatSenderConfigProvider.Setup(m => m.GetHeartBeatInterval()).Returns(heartBeatInterval); config = new ClusterMembershipConfiguration { RouteDiscovery = new RouteDiscoveryConfiguration { ClusterAutoDiscoveryStartDelay = TimeSpan.FromSeconds(1), ClusterAutoDiscoveryPeriod = TimeSpan.FromSeconds(2), ClusterAutoDiscoveryStartDelayMaxMultiplier = 2, MaxAutoDiscoverySenderQueueLength = 100 } }; clusterMonitor = new ClusterMonitor(scaleOutConfigurationProvider.Object, autoDiscoverySender.Object, autoDiscoveryListener.Object, heartBeatSenderConfigProvider.Object, routeDiscovery.Object, securityProvider.Object, config, logger.Object); }