分布式订阅与注册
在分布式环境中,为了保证高可用,一个服务通常会部署多份,消费者就需要从中选取一个来执行业务逻辑。比如dubbo
分布式配置中心
发布与订阅模型,发布者将数据发布到ZK节点上,供订阅都获取数据,实现配置的集中管理和动态更新。比如百度的disconf
命名服务
在分布式系统中,通过使用命名服务,客户端应用能够根据指定名字来获取资源或服务的地址,提供者等信息
分布式锁(一般使用Curator框架)
1.客户端连接zookeeper,并在/lock下创建临时的且有序的子节点,第一个客户端对应的子节点为/lock/lock-0000000000,第二个为/lock/lock-0000000001,以此类推
2.客户端获取/lock下的子节点列表,判断自己创建的子节点是否为当前子节点列表中序号最小的子节点,如果是则认为获得锁,否则监听/lock的子节点变更消息,获得子节点变更通知后重复此步骤直至获得锁(如何避免惊群效应的?)
3.执行业务代码
4.完成业务流程后,删除对应的子节点释放锁