zookeeper集群

kafka集群搭建

一世执手 提交于 2020-02-20 08:45:33
首先搭建zookeeper集群: 拷贝zoo_sample.cfg为zoo.cfg(启动时会默认调用这个文件) 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 stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/var/zoodata # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients

zookeeper未授权访问漏洞

本秂侑毒 提交于 2020-02-19 22:01:10
0x00 漏洞介绍   ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 Zookeeper 的默认开放端口是2181。Zookeeper 安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用 Zookeeper,通过服务器收集敏感信息或者在 Zookeeper 集群内进行破坏(比如:kill命令)。攻击者能够执行所有只允许由管理员运行的命令。 0x01 环境安装 本次在Ubuntu18.04上安装 安装包链接: http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/ 1 #解压 2 tar -zxvf zookeepre-3.4.10.tar.gz 3 #进入配置文件目录 4 cd /zookeeper-3.4.10/conf 5 #将配置文件zoo_sample.cfg拷贝一份,命名为zoo.cfg 6 cp zoo_sample.cfg zoo.cfg 7 #打开zoo.cfg 配置单机模式 8 vi zoo.cfg 启动zookeeper cd到zookeeper底下的bin目录 #启动 .

基于zookeeper集群实现分布式锁的工程实践

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-18 04:35:35
上一篇实现了基于zookeeper集群实现的分布式配置中心的工程样例,并进行了总结,本篇进行基于zookeeper集群实现的分布式锁工程案例,当然也借鉴和参考了其他博客,这里先给出引用:https://blog.csdn.net/hongtaolong/article/details/88898875 一、定义上下文锁的抽象对象 package com . coderman . zookeeper . clusterdemo . distributelockdemo ; /** * @description: * @author: Fanchunshuai * @time: 2020/2/15 16:04 * 定义一个bean对象表示需要用锁的场景的上下文数据模型 * 分布式锁可能需要定义持久化节点和临时节点,以及临时顺序节点 * 这里假定持久化节点为:/group/appName * 临时节点为:/group/appName/lockPath * 临时顺序节点:/group/appName/lockPath0000000000001 */ public class LockConfigBean { /** * 集群节点目录一级分组 */ private String group ; /** * 集群中的应用名称 */ private String appName ; /** *

Zookeeper的使用场景和集群配置

爱⌒轻易说出口 提交于 2020-02-16 16:21:02
Zookeeper的介绍 ZK在分布式系统的应用 Zookeeper搭建 集群角色介绍 ZK的常用命令 一、Zookeeper的介绍 官方: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 二、ZK在分布式系统的应用 分布式配置中心 分布式job 服务注册与发现 存储数据 三、Zookeeper搭建 1)单机模式 官网下载: zookeeper官网 解压tar zxvf zookeeper-3.4.11.tar.gz 进入conf目录下:cp zoo_sample.cfg zoo.cfg 启动:进入bin目录下:sh zkServer.sh start 验证:在bin目录下:sh zkServer.sh status 或者使用jps -vm查看 连接:在bin目录下:sh zkCli.sh 2)集群模式(机器有限,使用伪分布式) 1、描述 伪分布式集群就是在一台机器部署多个zk应用,部署之前服务器需要有jdk环境。使用 java -version可以显示相关java信息才可以进行zookeeper搭建。 2、步骤 官网下载: zookeeper官网 解压tar zxvf

基于zookeeper实现配置中心功能的简单工程

回眸只為那壹抹淺笑 提交于 2020-02-15 08:07:27
上一篇文章说到了一些zookeeper的应用场景,本篇将是对这些场景进行代码模拟实战的开篇文章。之前已经在本地搭建起了zk集群,并进行了一些api实践,因此本章主要讲述如何使用zk客户端模拟一个配置中心,推送变更的场景。 初始化配置bean package com . coderman . zookeeper . clusterdemo . configdemo ; import java . io . Serializable ; /** * @description: * @author: Fanchunshuai * @time: 2020/2/13 15:04 * zookeeper目录规则:/group/ip/appName * 这里的对象需要实现序列化 */ public class ServerConfigBean implements Serializable { /** * 集群节点目录一级分组 */ private String group ; /** * 集群节点数据内容 */ private String nodeData ; /** * 集群ip */ private String ip ; /** * 集群中的应用名称 */ private String appName ; public String getGroup ( ) { return

Mysql + canal + zookeeper环境搭建

一世执手 提交于 2020-02-14 23:19:29
Mysql + canal + zookeeper环境搭建 一、mysql集群搭建 1. mysql基本环境 操作系统: Linux version 2.6.32-431.el6.x86_64 数据库:MySQL Community Server 5.7.20 主节点IP:10.60.81.157 主节点IP:10.60.81.158 从节点IP:10.60.81.159 2. 安装mysql 2.1.官网下载MySQL mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar 2.2. 三个节点都安装: 2.2.1.三个节点查看是否安装mysql rpm -qa | grep mysql rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.x86_64 (有则删除) 2.2.2. 三个节点都安装mysql tar –xvf mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar rpm -ivh mysql-community-common-5.7.20-1.el6.x86_64.rpm rpm -ivh mysql-community-libs-5.7.20-1.el6.x86_64.rpm rpm -ivh mysql-community-client-5.7.20-1.el6.x86_64

大数据的基础环境搭建之zookeeper的安装

北城以北 提交于 2020-02-11 19:09:06
1、ZooKeeper 概述 Zookeeper 是一个分布式协调服务的开源框架。 主要用来解决分布式集群中 应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题。 ZooKeeper 本质上是一个分布式的小文件存储系统。 提供基于类似于文件系 统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维 护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达 到基于数据的集群管理。 诸如: 统一命名服务(dubbo)、分布式配置管理(solr的配置集中管理)、分布式消息队列(sub/pub)、分布式锁、分布式协调等功能。 2、zookeeper的架构图 Leader: Zookeeper 集群工作的核心 事务请求(写操作) 的唯一调度和处理者,保证集群事务处理的顺序性; 集群内部各个服务器的调度者。 对于 create, setData, delete 等有写操作的请求,则需要统一转发给leader 处理, leader 需要决定编号、执行操作,这个过程称为一个事务。 Follower: 处理客户端非事务(读操作) 请求, 转发事务请求给 Leader; 参与集群 Leader 选举投票 2n-1台可以做集群投票。 此外,针对访问量比较大的 zookeeper 集群, 还可新增观察者角色。 Observer: 观察者角色,观察

分布式锁

懵懂的女人 提交于 2020-02-10 18:29:04
https://www.cnblogs.com/austinspark-jessylu/p/8043726.html 分布式锁的几种实现方式 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。 在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案。 针对分布式锁的实现,目前比较常用的有以下几种方案: 基于数据库实现分布式锁 基于缓存(redis,memcached,tair)实现分布式锁 基于Zookeeper实现分布式锁

Zookeeper的选举机制原理

血红的双手。 提交于 2020-02-10 15:42:17
三个核心选举原则: (1)Zookeeper集群中只有超过半数以上的服务器启动,集群才能正常工作; (2)在集群正常工作之前,myid小的服务器给myid大的服务器投票,直到集群正常工作,选出Leader; (3)选出Leader之后,之前的服务器状态由Looking改变为Following,以后的服务器都是Follower。 zookeeper选举 来源: CSDN 作者: devcy 链接: https://blog.csdn.net/devcy/article/details/104247149

zookeeper配置文件

蹲街弑〆低调 提交于 2020-02-10 11:19:54
zookeeper的默认配置文件为zookeeper/conf/zoo_sample.cfg,需要将其修改为zoo.cfg。其中各配置项的含义,解释如下: zookeeper的三种端口号: 2181:客户端连接Zookeeper集群使用的监听端口号 3888:选举leader使用 2888:集群内机器通讯使用(Leader和Follower之间数据同步使用的端口号,Leader监听此端口) 1.tickTime:Client-Server通信心跳时间 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。 tickTime=2000 2.initLimit:Leader-Follower初始通信时限 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。 initLimit=5 3.syncLimit:Leader-Follower同步通信时限 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。 syncLimit=2 4.dataDir:数据文件目录 Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。