public RoutingModel(string serviceKey, IBusModel bus, IRpcModel rpc) { _serviceKey = serviceKey; _bus = bus; _rpc = rpc; _serviceHealthEndpoint = new Lazy <Task <string> >(InitializeHealthEndpointAsync); }
public BusinessLogic(IBusModel bus, IRpcModel rpc, Logger logger) { _bus = bus; _rpc = rpc; _tracker = new ServiceHealthTracker(rpc, logger); _router = new Router <RoutingData>(new CompositeRouteSelectionStrategy <RoutingData>( new MatchingRoutesSelectionStrategy <RoutingData>(), new TopScoringRoutesSelectionStrategy <RoutingData>(new RouteScoreComparer()), new WeightedRandomRouteSelectionStrategy <RoutingData>(x => _tracker.GetServiceCount(x.ServiceKey)) )); _logger = logger; }