zookeeper集群

Dubbo+Zookeeper搭建,IDEA创建demo测试。

我只是一个虾纸丫 提交于 2019-12-05 04:58:57
博主有一台阿里的服务器,所以就写一下在服务器上搭建Dubbo+Zookeeper的过程和遇到的坑。 服务器:CentOS 7.4 JDK版本: 1.7 tomcat : apache-tomcat-8.5.30 dubbo版本:2.6.0 war包,可以去github上面下载项目自己打war包,后续我会上传并提供下载地址。 zookeeper版本: 3.5.3 - beta 可以去官网去下载。 后续我会上传并提供下载地址。 需要先配置好JDK。具体操作百度。 好了,开始搭建吧,博主直接输入命令,可能会有些命令不对,如果发现了就提醒一下, 在linux中创建zookeeper文件夹 mkdir /usr/local/services/zookeeper 解压 zookeeper到这个文件夹 tar -zxvf zookeeper-3.5.3-beta.tar 将解压的文件移动到新建的zookeeper里 mv zookeeper-3.5.3-beta.tar /usr/local/services/zookeeper 进入 zookeeper的conf里 cd /usr/local/services/zookeeper/zookeeper-3.5.3-beta/conf 复制zoo_sample.cfg文件重命名zoo.cfg cp zoo_sample.cfg zoo.cfg

window下zookeeper的下载启动和报错等问题

前提是你 提交于 2019-12-05 04:57:34
前言 在使用dubbo等需要用到zookeeper,之前window下本地部署,启动一直有问题,后面折腾了下才部署成功,此次记录下来,以备后用。 下载 百度或者google下zookeeper官网,里面就有下载的选项,还有其他的说明。简单下载下来就好了。 What is ZooKeeper? ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications. Each time they are implemented there is a lot of work that goes into fixing the bugs and race conditions that are inevitable. Because of the difficulty of implementing these kinds of services, applications

Zookeeper之启动常见错误及解决方法-yellowcong

亡梦爱人 提交于 2019-12-05 04:57:17
Zookeeper启动后,有时候没有真正的启动,那我们如何查找错误呢,就可以查看zookeeper目录下面的zookeeper.out文件,就可以查看到错误了。zookeeper.out文件比较的重要,对于错误的排查,是必不可少的,还有服务器上,如果连接不通,有可能是防火墙的问题 搭建的时候,数据存储的目录结构,每一个zookeeper里面,需要有logs(日志存储)和data(数据存储)目录、myid文件都是在data目录下面的。 My id 333 not in the peer list 这个问题的产生是因为服务的id,也就是myid里面配置的,服务的id,需要和zoo.cfg配置文件一致,不然报错 # The number of milliseconds of each tick tickTime= 2000 # The number of ticks that the initial # synchronization phase can take initLimit= 10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit= 5 # the directory where the snapshot is

2.ZooKeeper集群的安装

六眼飞鱼酱① 提交于 2019-12-05 04:56:11
前提 :①Linux服务器(3台) ②已安装JDK ③安装路径:/usr/local/bin目录下 目前3.5.5版本启动会报: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain , 因为3.5.5解压缩之后,zookeepr文件夹里面这个jar包没了(网友都有这问题,好像是解压缩之类的问题),此教程故由3.5.5降版本至3.4.14) 1.ZooKeeper的安装 1.官网下载ZooKeeper安装包 下载地址: https://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz 2.使用命令 rz 将ZooKeeper安装包上传至Linux服务器; 3.使用命令 tar -zxvf apache-zookeeper-3.4.14.tar.gz -C /usr/local/bin ,解压缩tar.gz包至 /usr/local/bin 目录下 4.解压后可删除tar.gz包 5.进入源码包,可以删除一部分数据 rm -rf *.txt *.md 文件 删除后目录如图所示: 6.接下来, cd conf ,修改配置文件 conf目录下,有一个zoo_sample.cfg文件,该文件为示例文件,复制该文件

zookeeper基础笔记

岁酱吖の 提交于 2019-12-05 04:48:29
一、安装 1.安装jdk 2.安装Zookeeper 3.单机模式(stand-alone):安装目录/conf 复制 zoo_sample.cfg 并粘贴到当前目录下,命名zoo.cfg. 二、目录结构 bin 存放系统脚本 conf 存放配置文件 contrib zk附加功能支持 dist-maven maven仓库文件 docs zk文档 lib 依赖的第三方库 recipes 经典场景样例代码 src zk源码 其中bin和conf是非常重要的两个目录,平时也是经常使用的。 三、bin目录 其中 zkServer 为服务器,启动后默认端口为 2181 zkCli 为命令行客户端 四、conf目录 Conf 目录为配置文件存放的目录, zoo.cfg 为核心的配置文件 这里面的配置很多,这配置是运维的工作,目前没必要,也没办法全部掌握。 clientPort :参数无默认值,必须配置,用于配置当前服务器对外的服务端口,客户端必须使用这端口才能进行连接 dataDir :用于存放内存数据库快照的文件夹,同时用于集群的 myid 文件也存在这个文件夹里(注意:一个配置文件只能包含一个 dataDir 字样,即使它被注释掉了。) dataLogDir :用于单独设置 transaction log 的目录, transaction log 分离可以避免和普通 log 还有快照的竞争

ZooKeeper启动成功,却无法查看status——记一次Zookeeper“异常”

我只是一个虾纸丫 提交于 2019-12-05 04:47:19
今天在使用storm时,需要启动zookeeper依赖集群。于是使用命令启动zookeeper集群,使用命令 bin/zkServer.sh start [root@master bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /usr/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@master bin]# jps 2936 Jps 2924 QuorumPeerMain 为了查看zookeeper在master节点上是否启动成功,使用jps命令查看相关进程是否启动,如上图QuorumPeerMain进程已成功启动。此时,小厨突然想看看master节点上zookeeper的状态,到底是leader还是follower,确保节点成功启动。使用命令 bin/zkServer.sh status, 此时却意外的出现了异常。如下图 [root@master bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/zookeeper/zookeeper-3.4.10/bin/

解决Zookeeper无法启动的问题

你离开我真会死。 提交于 2019-12-05 04:46:46
今天在启动zookeeper集群的单个zookeeper节点时总是报如下错误 [root@zookeeper1 zookeeper-3.4.5]# bin/zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg Error contacting service. It is probably not running. [root@zookeeper1 zookeeper-3.4.5]# 于是尝试解决它,首先要想到的是是否安装了JDK,因为zookeeper的运行需要JVM环境,可以使用java和java -version命令来验证,如下所示,可以看到JDK已经正确安装。 [root@zookeeper1 zookeeper-3.4.5]# java 用法: java [-options] class [args...] (执行类) 或 java [-options] -jar jarfile [args...] (执行 jar 文件) 其中选项包括: -d32 使用 32 位数据模型 (如果可用) -d64 使用 64 位数据模型 (如果可用) -server 选择 "server" VM 默认 VM 是 server. -cp

ZooKeeper安装配置

僤鯓⒐⒋嵵緔 提交于 2019-12-05 04:33:37
1.什么是ZooKeeper? Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。 注意,这是一个协调平台,不是管理平台。类似于红绿灯,可以协调帮助道路通畅。 ZooKeeper起到了一个协调各个框架的作用。它并不是直接为我们的数据提供服务。 ZooKeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,他负责存储和挂历大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,ZooKeeper就将负责通知已经在ZooKeeper上注册的那些观察者做出相应的反应。 所以,ZooKeeper = 文件系统 + 通知机制 2.ZooKeeper集群特点 1)Zookeeper:一个领导者(leader),多个跟随者(follower)组成的集群。 2)Leader负责进行投票的发起和决议,更新系统状态 3)Follower用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票 4)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。 5)全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的。 6)更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行。 7)数据更新原子性,一次数据更新要么成功,要么失败。 8)实时性

基于zookeeper实现分布式锁

隐身守侯 提交于 2019-12-05 04:26:14
前言:2016春节之后一直比较忙,因此博客N个没有更新,现在也是忙里偷闲,偷偷的更新一篇! 一、分布式锁介绍 分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。 二、架构介绍 在介绍使用Zookeeper实现分布式锁之前,首先看当前的系统架构图 解释: 左边的整个区域表示一个Zookeeper集群,locker是Zookeeper的一个 持久节点 ,node_1、node_2、node_3是locker这个持久节点下面的 临时顺序节点 。client_1、client_2、client_n表示多个客户端,Service表示需要互斥访问的共享资源。 三、分布式锁获取思路 1. 获取分布式锁的总体思路 在获取分布式锁的时候在locker节点下创建临时顺序节点,释放锁的时候删除该临时节点。客户端调用createNode方法在locker下创建临时顺序节点, 然后调用getChildren(“locker”)来获取locker下面的所有子节点,注意此时不用设置任何Watcher。客户端获取到所有的子节点path之后,如果发现自己在之 前创建的子节点序号最小,那么就认为该客户端获取到了锁。如果发现自己创建的节点并非locker所有子节点中最小的,说明自己还没有获取到锁, 此时客户端需要找到比自己小的那个节点,然后对其调用exist()方法

zookeeper原理学习

孤街浪徒 提交于 2019-12-05 04:24:27
zookeeper: 1、 定义: zookeeper是一个分布式、开源的分布式应用程序协调服务。 2、 zookeeper的信息记录方式: 1). zk采用树形结构目录结构记录信息。树的深度没有限制(但实际中,不可能建立很深的树结构),每一个节点称为node 2). 每个znode都有一个名称,为了避免出现字符集编码问题,不要使用中文作为znode的名称,另外,同一个znode下的子级znode名称不允许重复 3). 一个znode允许存储最多1MB大小的数据信息 4). znode根据创建性质的不一样,可分为四种行为类型不一样的znode。它们是PERSISTENT、PERSISTENT_SEQUENTIAL、EPHEMARAL、EPHEMARAL_SEQUENTIAL 5). PERSISTENT:持久化节点,创建这个节点的客户端在与zk服务的连接断开后,这个节点也不会被删除(除非使用api强制删除) 6). PERSISTENT_SEQUENTIAL:持久化顺序编号节点,当客户端请求创建这个节点A后,zk会根据parent-znode的zxid的状态,为这个A节点编写一个全目录唯一的编号(这个编号只会一直增长)。当客户端与zk服务的连接断开后,这个节点也不会被删除 7). EPHEMARAL:临时目录节点,创建这个节点的客户端在与zk服务的连接断开后,这个节点会被删除 8)