zookeeper集群

ZooKeeper的典型应用场景

☆樱花仙子☆ 提交于 2020-02-28 21:12:12
ZooKeeper是一个高可用的分布式数据管理与协调框架 ZAB算法的实现,很好的保证了分布式系统数据一致性 数据发布/订阅 数据发布/订阅系统,即所谓 配置中心 发布者发布数据到ZooKeeper的一系列节点上,供订阅者订阅,达到动态更新数据的目的 实现数据的集中式管理和动态更新 发布/订阅系统一般有 推(Push) 和 拉(Pull) 两种模式 推(Push): 服务端主动将数据推送给客户端 拉(Pull): 客户端主动去服务端拉取最新数据,一般客户端采取定时轮询的策略 ZooKeeper才去的是 推拉结合的策略 客户端向服务端注册需要关注的节点,服务端数据发生变化的时候向客户端 推送watcher事件通知 , 客户端再主动去服务端拉取数据 负载均衡 常见的计算机网络技术,对多台计算机、CPU、磁盘驱动器等分配负载; 达到优化资源使用、最小化响应时间、最大化吞吐率、避免过载的目的 分为软负载和硬负载;ZooKeeper属于软件负载 比较典型的是DNS 服务: DNS是(Domain Name System)域名系统的缩写 可以看做是一个超大规模的分布式映射表(域名-->IP),方便人们通过域名访问互联网站点 实际开发中通常采用本地host 绑定来实现域名解析 基于ZooKeeper实现的动态域名解析方案(DDNS :Dynamic DNS): 域名解析由每个应用自己解决;

Zookeeper集群

。_饼干妹妹 提交于 2020-02-28 21:11:05
服务IP 规划用途 192.168.169.12 zookeeper 192.168.169.13 zookeeper 192.168.169.14 zookeeper 一,基本环境:(Zookeeper集群) 1.关闭防火墙,selinux 防火墙: systemclt stop firewalld systemctl disabled firewalld Selinux: 编辑:/etc/sysconfig/selinux 添加如下内容: :% s/enforcing/disabled/ 2.修改主机名: hostnamectl set-hostname 主机名,编辑/etc/hosts,SCP分发其他集群主机。 3.安装jdk 1.源码安装 2.在线安装 3.离线安装 在线安装: yum install java-1.8.0-openjdk-devel.x86_64 4.安装zookeeper cd /usr/local/src/ tar zxf zookeeper-3.4.14.tar.gz mv zookeeper-3.4.14 /usr/local/ ln -s /usr/local/zookeeper-3.4.14/ /usr/local/zookeeper 5.编辑vim zoo.cfg配置文件 cd /usr/local/zookeeper/conf/ cp

解释Apache ZooKeeper

别说谁变了你拦得住时间么 提交于 2020-02-28 19:33:28
我试图了解ZooKeeper,它是如何工作的以及它的作用。 有没有可与ZooKeeper相媲美的应用程序? 如果你知道,那么你如何向外行描述ZooKeeper? 我已经尝试过apache wiki,zookeeper sourceforge ......但我仍然无法与之相关。 我只是通过 http://zookeeper.sourceforge.net/index.sf.shtml 阅读,所以不是有更多这样的服务吗? 它只是复制服务器服务这么简单吗? #1楼 Zookeeper是一个集中式开源服务器,用于维护和管理分布式集群环境的配置信息,命名约定和同步。 Zookeeper通过提供低延迟和高可用性来帮助分布式系统降低管理复杂性。 Zookeeper最初是Hadoop的子项目,但现在它是Apache Software Foundation的顶级独立项目。 更多信息 #2楼 Zookeeper是最好的开源服务器和服务之一,有助于可靠地协调分布式进程。 Zookeeper是一个CP系统(参考CAP定理),它提供一致性和分区容差。 在所有节点上复制Zookeeper状态使其成为最终一致的分布式服务。 此外,如果追随者遗失了许多提案,任何新当选的领导人都会更新其关注者的遗失提案或国家快照。 Zookeeper还提供了一个非常易于使用的API。 这篇博文, Zookeeper Java

通过docker进行部署 Zookeeper、Kafka集群

£可爱£侵袭症+ 提交于 2020-02-28 17:03:02
最近需要本地搭建一个kafka服务进行,想了想还是docker拉一个镜像比较方便,记录下搭建的过程 1、安装虚拟机     个人比较喜欢virtualbox,给人一种很轻量级的感觉,Linux安装的Centos7.3最简版。之前比较迷Linux桌面,但是虚拟机资源实在有限,还是安装个简易版吧。 2、安装docker 添加Docker的存储库 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 安装Docker-ce yum install -y docker-ce 启动Docker systemctl start docker 测试运行 hello-world docker run hello-world 参考: https://blog.csdn.net/TangXuZ/article/details/100082144 3、安装docker-compose     其实如果单机部署的话,直接docker search kafka查询一个镜像,然后pull一个就可以了,如果部署一个伪集群,docker-compose的优势就十分明显了:     首先,需要安装python3-pip: yum install python-pip     然后,安装docker

5分钟带你体验一把 Kafka

余生颓废 提交于 2020-02-28 16:10:10
说在文章前面的话: 前置条件:你的电脑已经安装 Docker 主要内容: 使用 Docker 安装 使用命令行测试消息队列的功能 zookeeper和kafka可视化管理工具 Java 程序中简单使用Kafka 使用 Docker 安装搭建Kafka环境 单机版 下面使用的单机版的Kafka 来作为演示,推荐先搭建单机版的Kafka来学习。 以下使用 Docker 搭建Kafka基本环境来自开源项目:github.com/simplesteph… 。当然,你也可以按照官方提供的来:github.com/wurstmeiste… 。 新建一个名为 zk-single-kafka-single.yml 的文件,文件内容如下: version: '2.1' services: zoo1: image: zookeeper:3.4.9 hostname: zoo1 ports: - "2181:2181" environment: ZOO_MY_ID: 1 ZOO_PORT: 2181 ZOO_SERVERS: server.1=zoo1:2888:3888 volumes: - ./zk-single-kafka-single/zoo1/data:/data - ./zk-single-kafka-single/zoo1/datalog:/datalog kafka1: image:

Kafka设计解析(四):Kafka Consumer解析

送分小仙女□ 提交于 2020-02-28 16:00:22
High Level Consumer 很多时候,客户程序只是希望从Kafka读取数据,不太关心消息offset的处理。同时也希望提供一些语义,例如同一条消息只被某一个Consumer消费(单播)或被所有Consumer消费(广播)。因此,Kafka High Level Consumer提供了一个从Kafka消费数据的高层抽象,从而屏蔽掉其中的细节并提供丰富的语义。 Consumer Group High Level Consumer将从某个Partition读取的最后一条消息的offset存于ZooKeeper中( Kafka从0.8.2版本 开始同时支持将offset存于Zookeeper中与 将offset存于专用的Kafka Topic中 )。这个offset基于客户程序提供给Kafka的名字来保存,这个名字被称为Consumer Group。Consumer Group是整个Kafka集群全局的,而非某个Topic的。每一个High Level Consumer实例都属于一个Consumer Group,若不指定则属于默认的Group。ZooKeeper中Consumer相关节点如下图所示: 很多传统的Message Queue都会在消息被消费完后将消息删除,一方面避免重复消费,另一方面可以保证Queue的长度比较短,提高效率。而如上文所述

ZooKeeper 03 - ZooKeeper集群的脑裂问题 (Split Brain问题)

*爱你&永不变心* 提交于 2020-02-28 14:29:31
文章目录 1.ZooKeeper的主从机制 2 什么是ZooKeeper的脑裂 2.1 脑裂现象的表现 2.2 为什么会出现脑裂 3 ZooKeeper如何解决"脑裂" 3.1 3种可行的思路 3.2 ZooKeeper采用的方法 3.3 ZooKeeper的具体解决思路 参考资料 1.ZooKeeper的主从机制 Leader == Master, Follower == Slaver. 集群中的各个节点都会尝试注册为leader节点, 其他没有注册成功的则成为follower(随从)节点. 这些follower节点通过watcher(观察者)监控着leader节点: —— ZooKeeper内部通过心跳机制来确定leader的状态, 一旦leader节点出现问题, : 就能很快获悉并迅速通知其他follower节点, 这些follower节点得知消息之后将及时采取相关操作. 2 什么是ZooKeeper的脑裂 2.1 脑裂现象的表现 ZooKeeper集群中, 各个节点间的网络通信不良时, 容易出现脑裂(split-brain)现象: 集群中的节点监听不到leader节点的心跳, 就会认为leader节点出了问题, 此时集群将分裂为不同的小集群, 这些小集群会各自选举出自己的leader节点, 导致原有的集群中出现多个leader节点. —— 这就是脑裂现象. 2.2

5分钟带你体验一把 Kafka

倾然丶 夕夏残阳落幕 提交于 2020-02-28 13:12:25
Guide哥答应大家的 Kafka系列的第2篇原创文章。为了保证内容实时更新,我将相关文章也发送到了Gihub上!地址 :https://github.com/Snailclimb/springboot-kafka 相关阅读: 入门篇!大白话带你认识 Kafka! 前置条件:你的电脑已经安装 Docker 主要内容: 使用 Docker 安装 使用命令行测试消息队列的功能 zookeeper和kafka可视化管理工具 Java 程序中简单使用Kafka 使用 Docker 安装搭建Kafka环境 单机版 下面使用的单机版的Kafka 来作为演示,推荐先搭建单机版的Kafka来学习。 以下使用 Docker 搭建Kafka基本环境来自开源项目: https://github.com/simplesteph/kafka-stack-docker-compose 。当然,你也可以按照官方提供的来: https://github.com/wurstmeister/kafka-docker/blob/master/docker-compose.yml 。 新建一个名为 zk-single-kafka-single.yml 的文件,文件内容如下: version: '2.1' services: zoo1: image: zookeeper:3.4.9 hostname: zoo1 ports

zookeeper之zab协议

守給你的承諾、 提交于 2020-02-28 06:34:20
主从架构下,leader 崩溃,数据一致性怎么保证?leader 崩溃之后,集群会选出新的 leader,然后就会进入恢复阶段,新的 leader 具有所有已经提交的提议,因此它会保证让 followers 同步已提交的提议,丢弃未提交的提议(以 leader 的记录为准),这就保证了整个集群的数据一致性。 选举 leader 的时候,整个集群无法处理写请求的,如何快速进行 leader 选举?这是通过 Fast Leader Election 实现的,leader 的选举只需要超过半数的节点投票即可,这样不需要等待所有节点的选票,能够尽早选出 leader。 来源: oschina 链接: https://my.oschina.net/u/4167465/blog/3165121

zookeeper应用场景

流过昼夜 提交于 2020-02-28 00:49:12
前言 ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。 值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系列API接口(或者称为原语集),摸索出来的典型使用方法。 zookeeper典型应用场景 1 数据发布与订阅(配置中心) 发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。例如全局的配置信息,服务式服务框架的服务地址列表等就非常适合使用。 应用中用到的一些配置信息放到ZK上进行集中管理。这类场景通常是这样:应用在启动的时候会主动来获取一次配置,同时,在节点上注册一个Watcher,这样一来,以后每次配置有更新的时候,都会实时通知到订阅的客户端,从来达到获取最新配置信息的目的。 分布式搜索服务中,索引的元信息和服务器集群机器的节点状态存放在ZK的一些指定节点,供各个客户端订阅使用。 分布式日志收集系统。这个系统的核心工作是收集分布在不同机器的日志。收集器通常是按照应用来分配收集任务单元