zookeeper

zookeeper

// 启动zookeeper
zkServer.sh start
// 查看zookeeper状态
zkServer.sh status 

1、角色      状态

  • leader leading
    follower following
    observer observering
    looking–观望(leader挂掉了或者集群刚启动)

  • 2、原子广播 1

    • 通过投票确定某一件事能不能做 (过半原则—zookeeper最好是奇数)
      • 提交请求到follower,follower会将请求发送给leader
      • leader将请求下发给所有的follower,follower来判断,并将结果返回给leader
      • leader将请求写入的文件分发到所有的follower------(最终一致性–及时在写入的过程中有节点连接不上,当恢复的时候还会把节点上写入数据,保证最终的数据各个节点都一样)

3、zab协议

广播模式–选举出来leader,对外提供服务
恢复模式—选举leader,也就是4大状态存在

4、选举机制 2

  • id----serverid(设置的myid)
    zxid-----(股份)
    逻辑时钟------每个一个周期回加1(根据逻辑时钟判断我当前选举的状态)

5、

  • 因为zookeeper是不接受写请求—他有自己的文件系统
    znode
    持久、临时、持久顺序、临时顺序(-e 临时, -s顺序, 默认是持久)

启动

zkCli.sh -server ip:port(2181默认端口)
help查看相应的操作命令
quit 退出


6、通过eclipse创建连接

//	timeout是设置过期时间,watcher是监听器
 Zookeeper zk=new zookeeper("ip:2181" ,timeout,watcher)
		
		//    /name指定在"/"下创建一个znode节点name,节点初始内容是abc
		zk.create("/name", "abc".getBytes(),  
				// 是将所要ADMIN之外的权限授予每个人       指定创建的节点是持久节点
				Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
		
		// 查看指定节点的内容
		byte[] data = zk.getData("/name", true, null);
		// 将获取的内容转换为字符串
		String db = new String(data);
		System.out.println(db);
		
		// 删除指定节点
		//client.delete("/name", 1);
		Thread.sleep(Long.MAX_VALUE);
	}

设置监听机制:(当的znode发生变化的时候,监听一下,但是只能监听一次)

  • 1、设置 setData getChildren
    2、启动 delete exits create、getData

7、zookeeper的特性:

  • 最终一致性
    原子
    可靠
    实时
    顺序
    单一视图

注意点:

  • 1、在启动集群时候关闭防火墙
    2、myid对应
    3、三台节点同时启动,启动之后再有节点挂掉无所谓

  1. 比如说某公司 leader相当于总裁,follower相当于股东,下面有许多部门,部门里还有许多员工,有天公司接到一个订单,首先股东知道后通知总裁,总裁再把所有股东叫到一起开会,然后商量出这笔订单要不要接,然后把讨论的结果向总裁汇报 ↩︎

  2. 选举机制:比如公司的总裁死了,但是公司不能没人管,所以通过各个股东选举出来一个新的总裁,一直选举,每选举一次就zxid加1,直到选举出来 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值