Stereo 2017-03-27
zookeeper的进程锁,多线程及负载原理的理解
zk这种进程锁和读写没有关系(意识到调用同一个方法时才启用(涉及共享时))
进程锁是进程之间的控制,但是在此基础上要上同步块还是读写锁需要应用单进程中的多线程
负载均衡原理:
每个服务注册启动的时候也创建一个服务节点(类似锁节点)
负载均衡的处理思想也类似锁的处理思想(也就是说节点标记决定是zk的核心思想)
利用ZooKeeper的强一致性,能够保证在分布式高并发情况下节点创建的全局唯一性,即:同时有多个客户端请求创建 /currentMaster 节点,最终一定只有一个客户端请求能够创建成功
在集群环境下,一定要考虑进程锁问题,不仅仅是负载均衡,zk恰恰处理了负载的同时处理了进程锁,所以在kp+nigix后还要由zk转发一次(普通文本用dubbo挂载),
求他软件activemq等由天然的集成入口(zk实现了进程之间线程之间的通信)
有了进程锁可以避免进程之间的多线程,进程内的多线成还是需要同步块/锁控制,这样可以不用数据库的悲观锁
dubbo实现了注入服务,zk实现了负载