写在前面:
再谈架构演进:
1.单体架构->tomcat(war)
演进:水平拆分(服务拆分,(用户服务,订单服务,商品服务))
涉及问题:1).服务通信(webservice)
2).三态问题(成功、失败,超时等)
垂直拆分(集群)
涉及问题:1).地址维护
2).负载均衡机制
3).服务上下线感知(感知服务节点是否宕机 )
2.分布式架构
为了解决上述演进过程的各种问题,提供一个中间件,也就是我们的猪脚Zookeeper
一、什么是Zookeeper
1.历史:
起源于雅虎,为了解决共享资源锁竞争的问题,实现一个分布式锁,是一个分布式协调服务,协调服务的一个顺序性。
2.数据结构:
2.1树形目录结构,基于Key-Value的存储,可以作为注册中心来使用,每一个节点上注册一个服务。会有顺序性。
2.2节点特性:
同级节点唯一性、临时节点(在客户端建立的会话周期中,创建的的临时节点,会话结束后会自动删除)和持久化节点、有序节点和无序节点、临时节点下不能存在节点
3.部署方式
为了高可用,ZK一般采用集群部署,一主两从。而这里就产生了数据同步的问题。就CAP理论而言,zk采用了2pc的分布式事务解决方案以保证最终一致性。
二、zookeeper的安装部署
1.安装部署
1.1下载安装包:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/ 说明:下载3.5.5在启动时总是遇到如下问题
1.2解压zookeeper tar -zxvf zookeeper-3.4.14.tar.gz
1.3 拷贝一份配置文件 cp zoo_sample.cfg zoo.cfg (zk默认使用zoo.cfg配置文件)
1.4 启动服务端 sh zkServer.sh start
1.5 启动客户端 sh zkCli.sh -server localhost:2182
2.基本操作
help
create/delete/
三、zoo.fcg配置文件分析