示例#1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="connectionString">Zookeeper连接字符串</param>
 /// <param name="loggerFactory">日志工厂</param>
 /// <param name="serviceProxyCreator">服务代理构造器</param>
 /// <param name="nodeClientManager">NodeClient管理器</param>
 public ServiceSubscriber(string connectionString,
                          ILoggerFactory loggerFactory,
                          IServiceProxyCreator serviceProxyCreator,
                          INodeClientManager nodeClientManager) : this(new ZookeeperConfig() { ConnectionString = connectionString },
                                                                       loggerFactory, serviceProxyCreator, nodeClientManager)
 {
 }
示例#2
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="zookeeperConfig">Zookeeper配置</param>
        /// <param name="loggerFactory">日志工厂</param>
        /// <param name="serviceProxyCreator">服务代理构造器</param>
        /// <param name="nodeClientManager">NodeClient管理器</param>
        public ServiceSubscriber(ZookeeperConfig zookeeperConfig,
                                 ILoggerFactory loggerFactory,
                                 IServiceProxyCreator serviceProxyCreator,
                                 INodeClientManager nodeClientManager)
        {
            BasePath = zookeeperConfig.BasePath;
            logger   = loggerFactory.CreateLogger <ServiceSubscriber>();
            this.serviceProxyCreator = serviceProxyCreator;
            this.nodeClientManager   = nodeClientManager;

            ZooKeeper.LogLevel = System.Diagnostics.TraceLevel.Error;

            try
            {
                client = new ZookeeperClient(new ZookeeperClientOptions()
                {
                    ConnectionString           = zookeeperConfig.ConnectionString,
                    ConnectionTimeout          = zookeeperConfig.ConnectionTimeout,
                    OperatingTimeout           = zookeeperConfig.OperatingTimeout,
                    EnableEphemeralNodeRestore = true,
                    ReadOnly       = zookeeperConfig.ReadOnly,
                    SessionId      = zookeeperConfig.SessionId,
                    SessionPasswd  = zookeeperConfig.SessionPasswd,
                    SessionTimeout = zookeeperConfig.SessionTimeout
                });
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"Connect zookeeper failed. ConnectionString={zookeeperConfig.ConnectionString}");
                throw ex;
            }

            logger.LogDebug($"Connect zookeeper success. ConnectionString={zookeeperConfig.ConnectionString}");
        }