当前位置: 首页 > news >正文

做期货应关注什么网站网站建设收费标准好么

做期货应关注什么网站,网站建设收费标准好么,推荐做问卷的网站,wordpress动态背景插件一、ZooKeeper简介1. ZooKeeper是什么​ Apache ZooKeeper是一个开源的分布式服务框架#xff0c;为分布式应用提供协调服务#xff0c;用来解决分布式应用中的数据管理问题#xff0c;如#xff1a;配置管理、域名服务、分布式同步、集群管理等官网 https://zookeeper.apa…一、ZooKeeper简介1. ZooKeeper是什么​ Apache ZooKeeper是一个开源的分布式服务框架为分布式应用提供协调服务用来解决分布式应用中的数据管理问题如配置管理、域名服务、分布式同步、集群管理等官网 https://zookeeper.apache.org/ZooKeeper视频教程 http://edu.51cto.com/course/16190.html2. ZooKeeper组成​ 主要包括两部分文件系统、通知机制2.1 文件系统​ ZooKeeper维护一个类似Linux文件系统的数据结构用于存储数据数据模型结构是一种树形结构由许多节点构成每个节点叫做ZNode(ZooKeeper Node)每个节点对应一个唯一路径通过该路径来标识节点如 /app1/p_2每个节点只能存储大约1M的数据​ 节点类型有四种持久化目录节点 persistent客户端与服务器断开连接该节点仍然存在持久化顺序编号目录节点 persistent_sequential客户端与服务器断开连接该节点仍然存在此时节点会被顺序编号如000001、000002.....临时目录节点 ephemeral客户端与服务器断开连接该节点会被删除临时顺序编号目录节点 ephemeral_sequential客户端与服务器断开连接该节点会被删除此时节点会被顺序编号如000001、000002.....2.2 通知机制​ ZooKeeper是一个基于观察者模式设计的分布式服务管理框架ZooKeeper负责管理和维护项目的公共数据并授受观察者的注册(订阅)一旦这些数据发生变化ZooKeeper就会通知已注册的观察者此时观察者就可以做出相应的反应​ 简单来说客户端注册监听它关心的目录节点当目录节点发生变化时ZooKeeper会通知客户端​ ZooKeeper是一个订阅中心(注册中心)3. 应用场景3.1 配置管理​ 场景集群环境、服务器的许多配置都是相同的如数据库连接信息当需要修改这些配置时必须同时修改每台服务器很麻烦​ 解决把这些配置全部放到ZooKeeper上保存在ZooKeeper的某个目录节点中然后所有的应用程序(客户端)对这个目录节点进行监视Watch一旦配置信息发生变化ZooKeeper会通知每个客户端然后从ZooKeeper获取新的配置信息并应用到系统中。3.2 集群管理​ 场景集群环境下如何知道有多少台机器在工作是否有机器退出或加入需要选举一个总管master让总管来管理集群​ 解决在父目录GroupMembers下为所有机器创建临时目录节点然后监听父目录节点的子节点变化一旦有机器挂掉该机器与ZooKeeper的连接断开其所创建的临时目录节点被删除所有其他机器都会收到通知。当有新机器加入时也是同样的道理。​ 选举master为所有机器创建临时顺序编号目录节点给每台机器编号然后每次选取编号最小的机器作为master3.3 负载均衡​ ZooKeeper本身是不提供负载均衡策略的需要自己实现所以准确的说是在负载均衡中使用ZooKeeper来做集群的协调(也称为软负载均衡)​ 实现思路将ZooKeeper作为服务的注册中心所有服务器在启动时向注册中心登陆自己能够提供的服务服务的调用者到注册中心获取能够提供所需要服务的服务器列表然后自己根据负载均衡算法从中选取一台服务器进行连接当服务器列表发生变化时如某台服务器宕机下线或新机器加入ZooKeeper会自动通知调用者重新获取服务列表​ 实际上利用了ZooKeeper的特性将ZooKeeper用为服务的注册和变更通知中心二、ZooKeeper安装1. 安装​ ZooKeeper一般都运行在Linux平台​ 步骤解压zookeeper-3.4.13.tar.gzcd ~/softwaretar -zxf zookeeper-3.4.13.tar.gz配置# 创建存放数据文件的目录cd zookeeper-3.4.13/mkdir data# 创建配置文件cd confcp zoo_sample.cfg zoo.cfg # 默认使用的是zoo.cfg名称固定# 修改配置文件vi zoo.cfgdataDir../data # 指定数据存放目录启动zookeepercd bin./zkServer.sh start | stop | status | restart # 启动|停止|查看状态|重启客户端连接zookeeper./zkCli.sh # 启动客户端默认连接本机的2181端口或./zkCli.sh -server 服务器地址端口 # 连接指定主机、指定端口的zookeeperquit # 退出客户端2. 配置文件配置项含义说明tickTime2000心跳时间维持心跳的时间间隔单位是毫秒在zookeeper中所有的时间都是以这个时间为基础单元进行整数倍配置initLimit10初始通信时限用于zookeeper集群此时有多台zookeeper服务器其中一个为Leader其他都为FollowersyncLimit5同步通信时限在运行时Leader通过心跳检测与Follower进行通信如果超过syncLimit*tickTime时间还未收到响应则认为该Follower已经宕机dataDir../data存储数据的目录数据文件也称为snapshot快照文件clientPort2181端口号默认为2181maxClientCnxns60单个客户端的最大连接数限制默认为60可以设置为0表示没有限制autopurge.snapRetainCount3保留文件的数量默认3个autopurge.purgeInterval1自动清理快照文件和事务日志的频率默认为0表示不开启自动清理单位是小时dataLogDir存储日志的目录未指定时日志文件也存放在dataDir中为了性能最大化一般建议把dataDir和dataLogDir分别放到不同的磁盘上三、客户端操作1. 常用命令命令作用说明help查看帮助查看所有操作命令ls 节点路径查看指定节点下的内容 ls2 节点路径查看指定节点的详细信息查看所有子节点和当前节点的状态create 节点路径 内容创建普通节点如果内容中有空格则需要使用对双引号引起来get 节点路径获取节点中的值 create -e 节点路径 内容创建临时节点当连接断开后节点会被自动删除create -s 节点路径 内容创建顺序编号节点即带序号的节点delete 节点路径删除节点只能删除空节点即不能有子节点rmr 节点路径递归删除节点remove recursionstat 节点路径查看节点状态 set 节点路径 新值修改节点内容 2. 详解​ 查看指定节点的详细信息 ls2 /# 子节点名称数组[zookeeper] # -----------节点的状态信息也称为stat结构体-------------------# 创建该znode的事务的zxid(ZooKeeper Transaction ID)# 事务ID是ZooKeeper为每次更新操作/事务操作分配一个全局唯一的id表示zxid值越小表示越先执行cZxid 0x0 # 0x0表示十六进制数0# 创建时间ctime Thu Jan 01 08:00:00 CST 1970# 最后一次更新的zxidmZxid 0x0# 最后一次更新的时间mtime Thu Jan 01 08:00:00 CST 1970# 最后更新的子节点的zxidpZxid 0x0# 子节点的变化号表示子节点被修改的次数-1表示从未被修改过cversion -1# 当前节点的变化号0表示从未被修改过dataVersion 0# 访问控制列表的变化号 access control listaclVersion 0# 如果临时节点表示当前节点的拥有者的sessionId# 如果不是临时节点则值为0ephemeralOwner 0x0# 数据长度dataLength 0# 子节点数据numChildren 1​ 顺序编号节点顺序编号会紧跟在节点名称后面节点最终名称为节点名序号如/test0000000005顺序编号是一个递增的计数器顺序编号是由父节点维护从已有的子节点个数开始(包括临时节点和被删除的节点)如果子节点为空则从0000000000开始依次递增1在分布式系统中顺序编号可以被用于为所有的事件进行全局排序这样客户端就可以根据序号推断事件的顺序四、ZooKeeper集群1. 配置集群​ 步骤准备多台ZooKeeper服务器配置ZooKeeper服务器在每台服务器的conf/zoo.cfg文件中添加如下内容server.20192.168.4.20:2888:3888server.21192.168.4.21:2888:3888server.22192.168.4.22:2888:3888格式server.AB:C:DA表示这台服务器的编号ID是一个数字B表示服务器的IP地址或域名C表示这台服务器与集群中的Leader交换信息时使用的端口D表示执行选举Leader服务器时互相通信的端口创建myid配置文件在集群环境下需要在dataDir目录中创建一个名为myid的文件文件内容是当前服务器的编号ID即上面配置的Acd dataecho A的值 myidZooKeeper启动时会读取这个文件将里面的数字与zoo.cfg中配置的server.A进行比较从而判断这台服务器是哪个测试集群环境启动所有ZooKeeper服务器查看状态此时在某台服务器上执行更新操作时其他服务器也会同步2. 集群特性一个ZooKeeper集群中有一个领导者Leader和多个跟随者FollowerLeader负责进行投票的发起和决议更新系统状态Follower用于接收客户端的请求并向客户端返回结果在选举Leader过程中参与投票半数机制集群中只要有半数以上节点存活集群就能够正常工作所以一般集群中的服务器个数都为奇数全局数据一致集群中每台服务器保存一份相同的数据副本不论客户端连接到哪个服务器数据都是一致的更新请求顺序执行来自同一个客户端的更新请求按其发送顺序依次执行数据更新的原子性一次数据更新要么成功要么失败实时性在一定的时间范围内客户端能读取到最新数据3. 选举机制​ ZooKeeper在提供服务时会自动选举一个节点服务器作为Leader其他都是Follower​ 选举流程Server1启动给自己投票然后发送投票信息由于其它服务器都还没启动所以它发现的消息收不到任何反馈此时Server1为Looking状态Server2启动给自己投票同时与Server1通信交换选举结果由于Server2的id值较大所以Server2胜出但由于投票数没有过半此时Server1和Server2都为Looking状态Server3启动给自己投票同时与Server1和Server2通信交换选举结果由于Server3的id值较大所以Server3胜出此时票数已经过半所以Server3为LeaderServer1和Server2为FollowerServer4启动给自己投票同时与Server1、Server2、Server3通信交换选举结果尽管Server4的id较大但由于集群中已经存在Leader所以Server4只能为FollowerServer5启动同Server4类似只能为Follower​ 总结每个服务器在启动时都会选择自己然后将投票信息发送出去服务器编号ID越大在选择算法中的权重越大投票数必须过半才能选出Leader谁是Leader启动顺序的前集群数/21个服务器中id值最大的会成为Leader4. 监听机制4.1 监听节点值的变化# 在集群的A服务器监听某个节点值的变化get /yyy watch # 在集群的B服务器修改对应节点的值set /yyy myyyy # 此时A服务器会收到事件NodeDataChangedWATCHER::WatchedEvent state:SyncConnected type:NodeDataChanged path:/yyy监听Watch事件是一个一次性的触发器当数据改变时只会触发一次如果以后这个数据再发生改变则不会再次触发4.2 监听节点的子节点变化# 在集群的A服务器监听某个节点的子节点的变化 ls /yyy watch # 在集群的B服务器创建/修改/删除对应节点的子节点create /yyy/hello hello # 此时A服务器会收到事件NodeChildrenChangedWATCHER::WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/yyy五、Java访问ZooKeeperJava操作Zookeeper很简单只需要添加ZooKeeper客户端的依赖即可可以进行节点信息的获取、管理等。​ 步骤添加jar包org.apache.zookeeper zookeeper 3.4.13操作public static void main(String[] args) throws IOException, KeeperException, InterruptedException { //获取ZooKeeper的连接即创建ZooKeeper的客户端 String connectString 127.0.0.1:2181; //服务器地址 int sessionTimeout 3000; //超时时间单位为毫秒 Watcher watcher new MyWatcher(); ZooKeeper zkClient new ZooKeeper(connectString, sessionTimeout, watcher); Thread.sleep(2000); System.out.println(zkClient.getState()); /** * 操作ZooKeeper */ //查看指定节点下的内容 List children zkClient.getChildren(/
http://www.pierceye.com/news/590201/

相关文章:

  • wordpress中国网站排名如何加入广告联盟赚钱
  • 济宁网站建设培训学校wordpress导入表单
  • 做农产品交易网站阿里云已备案域名购买
  • 免费建站网站一级大录像不卡谁给我一个企业邮箱认证
  • 中国做网站东台做网站公司
  • 建设数据库网站需要哪些设备wordpress多功能主题 cosy
  • 苏州市郭巷建设局网站一家专门做鞋子的网站
  • 光明网站建设网站建设成果
  • 商业网站建设举例宝塔做两个网站6
  • 网站优化排名分享隐迅推前端开发入门培训
  • 曲周县建设局网站东莞保安公司电话
  • 合肥商城网站建设多少钱wordpress页面代码怎么改
  • 前期做网站宣传费用怎样做账企业网站建设的劣势
  • 网站建设企业哪家好做网站三大主流框架
  • 网站托管服务方案珲春建设局网站
  • 开发网站公司收入重庆多功能网站建设
  • 河北手机网站建设上海网站seo招聘
  • 厦门市建设局思明建设分局官方网站在谷歌上做外贸网站有用吗
  • 网站开发手机自适应直接在原备案号下增加新网站
  • 公司网站建设安全的风险网络工程师app
  • 网站app封装怎么做电商网页
  • 网站文章做排名wordpress菜单文本
  • 建站哪家好社区个人网站模板 免费
  • 东西湖区建设局网站如何生成网址链接
  • wordpress商城视频教程苏州推广关键词优化
  • 网站游戏正规网站建设安卓系统软件开发培训机构
  • 关于网站集约化建设的讲话周口seo公司
  • 长沙做网站的公司哪家最好服务公司取名
  • 网站缩略图制作宁波商城网站建设
  • 公司网站公众号维护怎么做湖南网站建设