zookeeper个人理解

来源:互联网 发布:涵曦瘦身霜有害知乎 编辑:程序博客网 时间:2024/06/06 06:33

1

2

2 安装

单机模式

解压,bin/zkserver.sh

配置文件更改 conf/zoo_sample.cfg conf/zoo.cfg

Ticktime 心跳

Dtatdir 数据和日志路径

Clientprot 端口

3 集群模式

除了改上面三个还有

initLimit:follower服务器返回给主节点的时间心跳个数,例如

ticktime=2000,initlimit=5,如果2000*5=10000=10s没返回结果就是连接失败

synclimit:请求应答心跳个数,和initlimit计算类似

server.a=b:c:d

a 机器号

b ip

c lead和机器交互端口

d 选举 lead挂了后的 lead通信用

然后:

Myid 文件存储a(服务名),启动时读取从而判断到底是哪个server,路径是datadir

Myid哪个机器就存哪个名字

 

4 伪集群模式

同一个机器通过配置不同的端口达到目的

 

3

package com.zookeeper.example; import java.util.ArrayList;import java.util.List;import com.sun.org.apache.bcel.internal.generic.NEW;import sun.security.krb5.internal.NetClient;public class ZookeeperSam {int num=20;}class Zookeeper{int num;int searchNum;int indexNum;String leadState;CGI cgi;LeadServiceMechine leadServiceMechine;BakLeadServiceMechine bakLeadServiceMechine;public void changeLeadService(){if(leadState=="down"){startLeadService(bakLeadServiceMechine);changeCGINetAndAdd(cgi);}}public void startLeadService(Service service){}public void changeCGINetAndAdd(CGI cgi){}public void run(){buildZNode("a");getChildren("a");getChildrenList();if(judgeChange()!=null){}}public void buildZNode(String str){ZNode zNode = new ZNode(str);nodes.add(zNode);}List<ZNode> nodes = new ArrayList<ZNode>();public void getChildren(String name){}public void getChildrenList(){}public ZNode judgeChange(){return null;}}class ZNode{public ZNode(){}public ZNode(String s){}}class CGI{}class Service{Net net;Address address;}class Net{}class Address{}class LeadServiceMechine extends Service{}class BakLeadServiceMechine extends Service{}class ServiceMechine{String state;//5/15//状态可以切换Zookeeper zookeeper;public void deal(){if(state=="index"){}if("search"==state){}}}class NameService{}class StateSyncService{}class ClusterManager{}class ConfigureManager{}


 

0 0
原创粉丝点击