zookeeper集群

Zookeeper在分布式架构中的应用

半世苍凉 提交于 2019-11-27 20:31:43
Zookeeper 是一个高性能、高可靠的分布式协调系统,是 Google Chubby 的一个开源实现。 Zookeeper 能够为分布式应用提供一致性服务,提供的功能包括: 配置维护、域名服务、分布式同步、组服务等。它 以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader (领导者),只有leader才能提交proposer。 很多工作中用过的组件如Dubbo、kafka、Solr、Hadoop、HBase等都需要依赖Zookeeper。 近日了解到 Kafka 正在酝酿重大更新,可能会提供自管理的元数据仲裁机制以消除对 Zookeeper 的依赖,社区呼吁也相当强烈。那么一般而言 Zookeeper 在分布式系统中扮演什么角色?目前 Zookeeper 都应用在哪些分布式架构中?本文从 Zookeeper 可以聊起,盘点那些离不开 Zookeeper 的分布式技术架构! 一. Zookeeper 概述 Zookeeper 是一个高性能、高可靠的分布式协调系统,是 Google Chubby 的一个开源实现。 Zookeeper 能够为分布式应用提供一致性服务,提供的功能包括: 配置维护、域名服务、分布式同步

(28)zookeeper集群的搭建

六月ゝ 毕业季﹏ 提交于 2019-11-27 19:18:32
搭建一个3机器的集群,即zookeeper要安装在3台主机中,每台主机要安装好jdk。 1.上传zookeeper文件并解压 2.修改环境变量 vi /etc/profile 添加内容: export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.4.5 export PATH=$PATH:$ZOOKEEPER_HOME/bin 重新编译文件: source /etc/profile 注意: 3 台 zookeeper 都需要修改 3.修改zookeeper的配置文件 cd zookeeper-3.4.5/conf cp zoo_sample.cfg zoo.cfg # 拷贝一份 zoo_sample.cfg ,命名为 zoo.cfg vi zoo.cfg zoo.cfg文件的内容如下: tickTime:心跳检测的周期 initLimit:初始化花费多少个心跳时间 syncLimit:发出请求到获取响应间的最大时差,若超出该时差就认为请求没有得到对方的响应,对方可能挂了 dataDir:数据目录,保存数据 clientPort:客户端访问zookeeper的端口 添加内容: dataDir=/home/hadoop/zookeeper-3.4.5/data dataLogDir=/home/hadoop/zookeeper-3.4.5/log

什么是zookeeper

我的未来我决定 提交于 2019-11-27 19:10:31
zookeeper 是一个分布式服务框架,是Apache Hadoop 的一个子项目,主要用来解决分布式应用中经常遇到的一些数据管理问题, 如:数据发布订阅、负载均衡、统一命名服务、master选举、状态同步服务、集群管理服务、配置管理、分布式队列、分布式锁 设计目标: 1、简单的数据结构:共享的树形结构,类似文件系统,存储于内存中 2、可以构建集群:避免单点故障,3-5台就可以组装成集群,超过半数可以对外提供服务 3、顺序访问:对于每个读请求,zk会分配一个全局的递增编号,利用这个特性可以实现高级协调服务 4、高性能:基于内存操作,服务于非事物请求,适用于读操作为主的业务场景 来源: https://www.cnblogs.com/huyang0726/p/11373548.html

Dubbo

喜欢而已 提交于 2019-11-27 18:34:03
1 、概念 Dubbo 是一个基于 java 的 RPC( Remote Procedure Call ) 框架。 1.1 、 RPC 远程过程调用,即在 A 系统中,远程调用 B 系统的某个方法或者函数。 1.1.1 、 PRC 需要解决的问题 ( 1 )、通讯问题 ( 2 )、寻址问题 ( 3 )、序列化与反序列化 调用过程中,数据的传输需要先序列化,得到数据进行反序列化。 1.2 、作用 在分布式环境下,透明化调用远程方法,就像调用本地方法一样调用远程方法,只需简单配置,没有任何 API 侵入。 2 、入门示例 2.1 、准备工作 安装 dubbo 注册中心。推荐使用 zookeeper 。 作用: ( 1 )存储提供方提供的服务的调用地址。 ( 2 )向调用方提供服务的地址。 2.1.1 、 Zookeeper 2.1.1.1 、概念 ZooKeeper 是一个开源的、分布式协调服务。 2.1.1.2 、作用 解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务 2.1.1.3 、特点 ZooKeeper 本身可以以 Standalone 模式安装运行,不过它的长处在于通过分布式 ZooKeeper 集群(一个 Leader ,多个 Follower ),基于一定的策略来保证 ZooKeeper 集群的稳定性和可用性

(26)zookeeper的功能与应用场景

偶尔善良 提交于 2019-11-27 17:58:52
Zookeeper概念简介: Zookeeper 是一个分布式 协调服务;就是为用户的分布式应用程序提供协调服务 A、zookeeper 是为别的分布式程序 ( 用户的分布式程序 ) 服务的 B、Zookeeper本身就是一个分布式程序 (只要有半数以上节点存活, zk 就能正常服务) C、Zookeeper 所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务…… D、 虽然说可以提供各种服务,但是 zookeeper 在底层其实只提供了两个功能 : 管理 ( 存储,读取 ) 用户程序提交的数据 ( 一般是状态数据 ) ; 并为用户程序提供数据节点监听服务; Zookeeper的应用场景: 1.计算机状态的实时监控 2.服务器主从选举 3.配置管理 三个场景中的第三方就是zookeeper,能够解决分布式场景中的各种问题。Zookeeper是高可靠性的第三方,内部是一个集群程序,集群中节点奇数台,只要半数以上节点存活,就可以提供正常服务。 来源: https://www.cnblogs.com/paradis/p/11371469.html

Solr之SolrCloud集群搭建

笑着哭i 提交于 2019-11-27 17:53:46
本机主要演示SolrCloud基于zookeeper集群搭建,多台zookeeper服务器具备系统高可靠性,高可用性,任意一台zookeeper服务器挂掉,系统会选举出一台服务器为leader。多台Solr,任意一台solr服务器挂掉,系统还是可以用的。solr安装包里面已经包含zookeeper,但是这样集成在一起,耦合度太高,不利于扩展。每一次重启tomcat,就相当于重启zookeeper了一遍,造成zookeeper集群不稳定,一般都是单独安装配置zookeeper集群,zookeeper集群最好有3个以上的主机,solr根据实际需求扩展。 一、安装zookeeper和solr 由于机器有限,这里我们使用zookeeper一台,solr二台机器演示。 zookeeper:192.168.100.90 solr:192.168.18.119 192.168.18.177 1.安装zookeeper 参考: linux上Zookeeper集群安装及监控 2.安装solr wget http://mirrors.cnnic.cn/apache/lucene/solr/5.2.1/solr-5.2.1.zip solr下载包中提供了Jetty服务器部署,直接bin/solr start启动即可,下面我们通过tomcat部署solr: 1)安装jdk1.7.0_60和apache

centos7自学之6-基于solr6.6的solrcloud集群搭建

丶灬走出姿态 提交于 2019-11-27 17:53:28
Solrcloud介绍 SolrCloud(solr集群)是Solr提供的分布式搜索方案。 当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud。 当索引量很大,搜索请求并发很高时,同样需要使用SolrCloud来满足这些需求。 不过当一个系统的索引数据量少的时候是没有必要使用SolrCloud的。 SolrCloud是基于Solr和Zookeeper的分布式搜索方案。 它的主要思想是使用Zookeeper作为SolrCloud集群的配置信息中心,统一管理solrcloud的配置,比如solrconfig.xml和schema.xml。 Solrcloud特点 1.集中式的配置信息 2.自动容错 3.近实时搜索 4.查询时自动负载均衡 Solrcloud结构 solrcloud为了降低单机的处理压力,需要由多台服务器共同来完成索引和搜索任务。实现的思路是将索引数据进行Shard分片,每个分片由多台服务器共同完成,当一个索引或搜索请求过来时会分别从不同的Shard的服务器中操作索引。solrcloud是基于solr和zookeeper部署,zookeeper是一个集群管理软件,solrcloud需要由多台solr服务器组成,然后由zookeeper来进行协调管理。 由于solrcloud一般都是解决大数据量、大并发的搜索服务,所以搭建solrcloud之前

solr学习(6.1)solrcloud集群的搭建

柔情痞子 提交于 2019-11-27 17:52:39
Solrcloud介绍:   SolrCloud(solr集群)是Solr提供的 分布式搜索方案 。   当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud。   当索引量很大,搜索请求并发很高时,同样需要使用SolrCloud来满足这些需求。   不过当一个系统的索引数据量少的时候是没有必要使用SolrCloud的。   SolrCloud是基于Solr和Zookeeper的分布式搜索方案。它的主要思想是使用Zookeeper作为SolrCloud集群的配置信息中心,统一管理solrcloud的配置,比如solrconfig.xml和schema.xml。 Solrcloud特点功能:    1)集中式的配置信息   2)自动容错   3)近实时搜索   4)查询时自动负载均衡 2. Solr 集群的系统架构 2.1. 物理结构 三个 Solr 实例( 每个实例包括两个 Core ),组成一个 SolrCloud 。 2.2. 逻辑结构 索引集合包括两个 Shard ( shard1 和 shard2 ), shard1 和 shard2 分别由三个 Core 组成,其中一个 Leader 两个 Replication , Leader 是由 zookeeper 选举产生, zookeeper 控制每个 shard 上三个 Core 的索引数据一致,解决高可用问题

初识Solr(二):Solr集群(SolrCloud)搭建

∥☆過路亽.° 提交于 2019-11-27 17:52:17
一、SolrCloud   SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的, 当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求 。    SolrCloud是 基于Solr和Zookeeper的分布式搜索方案 ,它的主要思想是使用 Zookeeper 作为 集群的配置信息中心 。 二、Zookeeper   顾名思义zookeeper就是动物园管理员,他是用来管hadoop(大象)、Hive(蜜蜂)、pig(小猪)的管理员, Apache Hbase和 Apache Solr 的分布式集群都用到了zookeeper;    Zookeeper:是一个分布式的、开源的程序协调服务,是hadoop项目下的一个子项目 Zookeeper的功能 1、配置管理   在我们的应用中除了代码外,还有一些就是各种配置。比如数据库连接等。一般我们都是使用配置文件的方式,在代码中引入这些配置文件。但是当我们只有一种配置,只有一台服务器,并且不经常修改的时候,使用配置文件是一个很好的做法。   但是如果我们配置非常多,有很多服务器都需要这个配置,而且还可能是动态的话使用配置文件就不是个好主意了。   

Kafka 系列(二)—— 基于 ZooKeeper 搭建 Kafka 高可用集群

谁说胖子不能爱 提交于 2019-11-27 17:42:55
一、Zookeeper集群搭建 为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群。 1.1 下载 & 解压 下载对应版本 Zookeeper,这里我下载的版本 3.4.14 。官方下载地址: https://archive.apache.org/dist/zookeeper/ # 下载 wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz # 解压 tar -zxvf zookeeper-3.4.14.tar.gz 1.2 修改配置 拷贝三份 zookeeper 安装包。分别进入安装目录的 conf 目录,拷贝配置样本 zoo_sample.cfg 为 zoo.cfg 并进行修改,修改后三份配置文件内容分别如下: zookeeper01 配置: tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper-cluster/data/01 dataLogDir=/usr/local/zookeeper-cluster/log/01 clientPort=2181 # server.1 这个1是服务器的标识,可以是任意有效数字