文档章节

zk中ServerCnxnFactory连接管理工厂

writeademo
 writeademo
发布于 10/17 11:08
字数 237
阅读 12
收藏 0

作为ServerCnxn的工厂抽象类

 

属性

ZOOKEEPER_SERVER_CNXN_FACTORY

zookeeper.serverCnxnFactory

secure

在ServerCnxnFactory中SSL是否启用

sessionMap

session管理配置中信息(sessionId,ServerCnxn)

zkServer

ZooKeeperServer

 

 

方法 (存在很多抽象方法)

addSession(long sessionId, ServerCnxn cnxn)

添加session

removeCnxnFromSessionMap(ServerCnxn cnxn)

从工厂中移除Cnxn

closeSession(long sessionId, ServerCnxn.DisconnectReason reason)

关闭session

getLocalPort

 

getConnections

获取连接

getNumAliveConnections

获取存活的连接

getZooKeeperServer

获取zkServer

configure

配置

getMaxClientCnxnsPerHost

单个端口上最大连接

startup

启动服务

createFactory()

 

unregisterConnection(ServerCnxn serverCnxn)

去注册连接

registerConnection(ServerCnxn serverCnxn)

注册连接

 

public abstract void startup(ZooKeeperServer zkServer, boolean startServer) throws IOException, InterruptedException;


public static ServerCnxnFactory createFactory() throws IOException {
    //获取key对应值
    String serverCnxnFactoryName = System.getProperty(ZOOKEEPER_SERVER_CNXN_FACTORY);
    if (serverCnxnFactoryName == null) {
        //默认是NIO
        serverCnxnFactoryName = NIOServerCnxnFactory.class.getName();
    }
    try {
        //加载实例
        ServerCnxnFactory serverCnxnFactory = (ServerCnxnFactory) Class.forName(serverCnxnFactoryName)
                                                                       .getDeclaredConstructor()
                                                                       .newInstance();
        LOG.info("Using {} as server connection factory", serverCnxnFactoryName);
        return serverCnxnFactory;
    } catch (Exception e) {
        IOException ioe = new IOException("Couldn't instantiate " + serverCnxnFactoryName, e);
        throw ioe;
    }
}

 

 

© 著作权归作者所有

writeademo
粉丝 25
博文 690
码字总数 263243
作品 0
东城
私信 提问
使用 ZK 框架的富 Internet 应用程序

简介: ZK 是一个用 Java™ 代码编写的开源 Asynchronous JavaScript + XML (Ajax) 框架,使用该框架,您无需编写 JavaScript 代码就可以编写一个支持 Web 2.0 的富 Internet 应用程序。Doj...

红薯
2010/04/09
4.4K
8
ZooKeeper客户端Curator使用一 创建连接

如何创建一个ZK连接 工厂方法newClient() 首先,对于ZooKeeper的连接就是创建一个CuratorFramework实例的过程.一般会把CuratorFramework实例的创建交给工厂类CuratorFrameworkFactory,使用工厂...

孟飞阳
2018/07/06
91
0
ZooKeeper源码研究系列(3)单机版服务器介绍

1 系列目录 - ZooKeeper源码研究系列(1)源码环境搭建- ZooKeeper源码研究系列(2)客户端创建连接过程分析- ZooKeeper源码研究系列(3)单机版服务器介绍- ZooKeeper源码研究系列(4)集群...

乒乓狂魔
2015/08/13
2.7K
0
分析Zookeeper的一致性原理

zookeeper(简称zk),顾名思义,为动物园管理员的意思,动物对应服务节点,zk是这些节点的管理者。在分布式场景中,zk的应用非常广泛,如:数据发布/订阅、命名服务、配置中心、分布式锁、集...

憬薇
2018/04/13
0
0
采用zookeeper的EPHEMERAL节点机制实现服务集群的陷阱

在apush的集群管理中使用了zk的EPHEMERAL节点机制。 在编码过程中发现很多可能存在的陷阱,毛估估,第一次使用zk来实现集群管理的人应该有80%以上会掉坑,有些坑比较隐蔽,在网络问题或者异常...

饭菜两光
2017/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

电脑萌新向这看!荣耀笔记本装Win10系统攻略

     随着 Win10 系统功能的完善,越来越多的人想要为自己的电脑重装载一个 Win10 系统。但很多小伙伴对于重装系统也只是一知半解,不知道如何重装 win10 系统才是正确的。笔者认为,重装...

梅丽莎好
15分钟前
4
0
玩转阿里云 Terraform(四):Terraform 常用命令详解

通过前几篇文章的介绍,相信大家对Terraform已经有了大致的熟悉和了解,本文将从实践开始,向大家介绍Terraform的几个常见命令。 Terraform是一个面向客户端的工具,所以对所有资源的管理都是...

阿里云官方博客
18分钟前
5
0
GMAT数学满分目标 5条精华备考经验分享

GMAT数学对于大部分中国考生来说难度并不算太高。但伴随着近年来GMAT数学题难度逐渐提升的趋势,想要在GMAT数学部分保住高分满分的成绩以带动GMAT整体得分也变得越来越困难。下面小编就为大家...

bole6
23分钟前
4
0
elasticsearch 聚合之后获取桶的平均值avg_bucket或者stats_bucket

例子 GET /collect_data_store_goods_fact*/_search{ "query": { "match_all": {} }, "size": 0, "aggs": { "brand":{ "terms": { ......

之渊
29分钟前
5
0
一篇文章把你带入到JavaScript中的闭包与高级函数

在JavaScript中,函数是一等公民。JavaScript是一门面向对象的编程语言,但是同时也有很多函数式编程的特性,如Lambda表达式,闭包,高阶函数等,函数式编程时一种编程范式。 function dada(...

达达前端小酒馆
32分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部