public DefaultAddressResolver(IServiceRouteManager serviceRouteManager, ILogger<DefaultAddressResolver> logger, IAddressSelector addressSelector, IHealthCheckService healthCheckService)
 {
     _serviceRouteManager = serviceRouteManager;
     _logger = logger;
     _addressSelector = addressSelector;
     _healthCheckService = healthCheckService;
 }
 public DefaultAddressResolver(IServiceRouteManager serviceRouteManager, ILogger <DefaultAddressResolver> logger, IAddressSelector addressSelector, IHealthCheckService healthCheckService)
 {
     _serviceRouteManager = serviceRouteManager;
     _logger             = logger;
     _addressSelector    = addressSelector;
     _healthCheckService = healthCheckService;
 }
Beispiel #3
0
 public RetryCallMiddleware(ClientRequestDel next, IAddressSelector addressSelector, ILogger logger, int retryTimes)
 {
     _next            = next;
     _retryTimes      = retryTimes;
     _addressSelector = addressSelector;
     _logger          = logger;
 }
Beispiel #4
0
 public RetryCallMiddleware(ClientRequestDel next, IAddressSelector addressSelector, ILoggerFactory loggerFactory, int retryTimes)
 {
     _next            = next;
     _retryTimes      = retryTimes;
     _addressSelector = addressSelector;
     _logger          = loggerFactory.Create(this.GetType());
 }
Beispiel #5
0
 public DefaultAddressResolver(IServiceRouteManager manager, IAddressSelector selector, IHealthCheckService healthCheckService, ILogger <DefaultAddressResolver> logger)
 {
     _manager             = manager;
     _selector            = selector;
     _healthChecksService = healthCheckService;
     _logger = logger;
 }
 public DefaultAddressResolver(IServiceRouteManager serviceRouteManager, ILogger <DefaultAddressResolver> logger, CPlatformContainer container, IHealthCheckService healthCheckService)
 {
     _container           = container;
     _serviceRouteManager = serviceRouteManager;
     _logger             = logger;
     _addressSelector    = container.GetInstances <IAddressSelector>();
     _healthCheckService = healthCheckService;
 }
Beispiel #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EchoService" /> class.
 /// </summary>
 /// <param name="hashAlgorithm">The hash algorithm.</param>
 /// <param name="serviceRouteProvider">The service route provider.</param>
 /// <param name="container">The container.</param>
 /// <param name="serviceHeartbeatManager">The service heartbeat manager.</param>
 public EchoService(IHashAlgorithm hashAlgorithm, IServiceRouteProvider serviceRouteProvider,
                    CPlatformContainer container, IServiceHeartbeatManager serviceHeartbeatManager)
 {
     _hashAlgorithm           = hashAlgorithm;
     _addressSelector         = container.GetInstances <IAddressSelector>(AddressSelectorMode.HashAlgorithm.ToString());
     _serviceRouteProvider    = serviceRouteProvider;
     _serviceHeartbeatManager = serviceHeartbeatManager;
 }
Beispiel #8
0
 public DefaultAddressResolver(RegistryService registryService, IRegisterMetaDiscoveryProvider serviceProvider, IServiceRouteManager serviceRouteManager, ILogger <DefaultAddressResolver> logger, IAddressSelector addressSelector, IHealthCheckService healthCheckService)
 {
     _registryService     = registryService;
     _serviceProvider     = serviceProvider;
     _serviceRouteManager = serviceRouteManager;
     _logger             = logger;
     _addressSelector    = addressSelector;
     _healthCheckService = healthCheckService;
 }
 public DefaultAddressResolver(IServiceRouteManager serviceRouteManager, ILogger <DefaultAddressResolver> logger, CPlatformContainer container, IHealthCheckService healthCheckService)
 {
     _container           = container;
     _serviceRouteManager = serviceRouteManager;
     _logger                      = logger;
     _addressSelector             = container.GetInstances <IAddressSelector>(AppConfig.LoadBalanceMode.ToString());
     _healthCheckService          = healthCheckService;
     serviceRouteManager.Changed += ServiceRouteManager_Removed;
     serviceRouteManager.Removed += ServiceRouteManager_Removed;
     serviceRouteManager.Created += ServiceRouteManager_Add;
 }
Beispiel #10
0
 public RemoteServiceCaller(IClientServiceDiscovery serviceDiscovery, IAddressSelector addressSelector,
                            ITransportClientFactory transportClientFactory, ITypeConvertProvider typeConvertProvider,
                            IServiceTokenGetter serviceTokenGetter, ILogger logger, int retryTimes = -1)
 {
     _serviceDiscovery       = serviceDiscovery;
     _addressSelector        = addressSelector;
     _transportClientFactory = transportClientFactory;
     _typeConvertProvider    = typeConvertProvider;
     _serviceTokenGetter     = serviceTokenGetter;
     _logger     = logger;
     _retryTimes = retryTimes;
 }
Beispiel #11
0
 public RemoteServiceCaller(IClientServiceDiscovery serviceDiscovery,
                            IAddressSelector addressSelector,
                            ClientSenderFactory clientSenderFactory,
                            IServiceTokenGetter serviceTokenGetter,
                            ILogger logger)
 {
     _serviceDiscovery    = serviceDiscovery;
     _addressSelector     = addressSelector;
     _clientSenderFactory = clientSenderFactory;
     _serviceTokenGetter  = serviceTokenGetter;
     _logger      = logger;
     _middlewares = new Stack <Func <ClientRequestDel, ClientRequestDel> >();
 }
 public RemoteServiceCaller(IClientServiceDiscovery serviceDiscovery,
                            IAddressSelector addressSelector,
                            ClientSenderFactory clientSenderFactory,
                            IServiceTokenGetter serviceTokenGetter,
                            IJimuDiagnostic jimuApm,
                            ILoggerFactory loggerFactory)
 {
     _serviceDiscovery    = serviceDiscovery;
     _addressSelector     = addressSelector;
     _clientSenderFactory = clientSenderFactory;
     _serviceTokenGetter  = serviceTokenGetter;
     _logger      = loggerFactory.Create(this.GetType());
     _middlewares = new Stack <Func <ClientRequestDel, ClientRequestDel> >();
     _jimuApm     = jimuApm;
 }
Beispiel #13
0
 public RemoteServiceExecutor(IClientServiceDiscovery serviceDiscovery, IAddressSelector addressSelector,
                              IServiceTokenGetter serviceTokenGetter, ITransportClientFactory transportClientFactory,
                              ITypeConvertProvider typeConvertProvider, ILogger logger, ISerializer serializer,
                              IAuthorizationHandler authorizationHandler = null, ICache <string, List <ServerAddress> > cache = null, int retryTimes = -1)
 {
     _serviceDiscovery       = serviceDiscovery;
     _addressSelector        = addressSelector;
     _transportClientFactory = transportClientFactory;
     _typeConvertProvider    = typeConvertProvider;
     _serviceTokenGetter     = serviceTokenGetter;
     _authorizationHandler   = authorizationHandler;
     _cache      = cache;
     _logger     = logger;
     _retryTimes = retryTimes;
     _serializer = serializer;
 }
Beispiel #14
0
        /// <summary>
        /// 服务内部调用方法
        /// </summary>
        /// <param name="serverAddress">服务地址</param>
        /// <param name="sendMessage">请求内容</param>
        public static async Task <T> InternalCall <T>(List <ServerAddress> service, RemoteCallData sendMessage)
        {
            ContainerBuilder containerBuilder = new ContainerBuilder();

            Core.Client.IServiceHostClientBuilder builder = new ServiceHostClientBuilder(containerBuilder).UseRpcForTransfer()
                                                            .UsePollingAddressSelector(BalanceType.RoundRobin);
            using (Core.IServiceHost host = builder.Build())
            {
                IAddressSelector addressSelector = host.Container.Resolve <IAddressSelector>();
                ServerAddress    desc            = await addressSelector.GetAddressAsync(service);

                ITransportClient client = host.Container.Resolve <ITransportClientFactory>()
                                          .CreateClient(desc);

                RemoteCallBackData result = client.SendAsync(sendMessage).Result;
                return(JsonConvert.DeserializeObject <T>(result.Result.ToString()));
            }
        }
Beispiel #15
0
        public GRpcHttpClient(IOptionsSnapshot <DiscoveryOptions> optionsSnapshot, HttpClient httpClient, IAddressSelector addressSelector)
        {
            var url = addressSelector.Selector(optionsSnapshot.Value.ServiceName);

            httpClient.BaseAddress = new Uri(url);
            Client = httpClient;
        }
Beispiel #16
0
 public DefaultAddressResolver(IServiceRouteManager serviceRouteManager, ILogger <DefaultAddressResolver> logger, IAddressSelector addressSelector)
 {
     _serviceRouteManager = serviceRouteManager;
     _logger          = logger;
     _addressSelector = addressSelector;
 }
Beispiel #17
0
        /// <summary>
        /// 设置服务地址选择器。
        /// </summary>
        /// <param name="builder">Rpc服务构建者。</param>
        /// <param name="instance">地址选择器实例。</param>
        /// <returns>Rpc服务构建者。</returns>
        public static IRpcBuilder UseAddressSelector(this IRpcBuilder builder, IAddressSelector instance)
        {
            builder.Services.AddSingleton(instance);

            return(builder);
        }
        /// <summary>
        /// 设置服务地址选择器。
        /// </summary>
        /// <param name="builder">服务构建者。</param>
        /// <param name="instance">地址选择器实例。</param>
        /// <returns>服务构建者。</returns>
        public static IServiceBuilder UseAddressSelector(this IServiceBuilder builder, IAddressSelector instance)
        {
            builder.Services.RegisterInstance(instance);

            return(builder);
        }