zookeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中,应用系统一致性问题的,例如怎样避免同时操作同一数据而造成脏读的问题。
zookeeper本质上是一个分布式的小文件存储系统。提供类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效的管理。从而用来维护和监控存储数据的状态变化。通过监控这些数据状态的变化,从而达到基于数据的集群管理。诸如:统一命名服务(dubbo),分布式配置管理(sorl的配置集中管理)、分布式消息队列(sub/pub)\分布式锁、分布式协调等功能。
zookeeper集群中的角色,leader(是事务请求的唯一调度和处理者,保证集群事务处理的顺序性,同时是集群内部各个服务器的调度者),follower处理客户端非事务性的请求,转发事务请求给leader,参与集群leader选举投票
observer观察者,针对访问量比较大的集群还可以增加观察者的角色,观察者只负责处理非事务的请求,并将事务性的请求转发给leader,不参数leader的选举

zookeeper的特性:
全局数据一致性
可靠性
顺序性
数据更新原子性
实时性

zookeeper的shell操作
ls /查看根目录下的目录情况
ls 路径 (/是根目录,查看某路径下的文件情况)
get 路径 获取该路径下的内容及详细信息
create -s 路径 内容 创建一个顺序目录,它是有编号的
create -e 路径 内容 创建一个临时目录 当该客户端关闭后就消失了
create 路径 内容 创建的是一个永久的路径
create -e -s 创建一个临时的顺序化节点

set 路径 内容 修改目录的值

delete 路径 删除目录

rmr 路径 递归的删除目录 因为有子目录的目录不能被直接删除,可以被递归删除

dubbo是一个提供远程服务调用的分布式框架
节点角色的说明
provider:暴露服务的服务提供方
consumer:调用远程服务的服务消费方
register:服务注册的注册中心
container:服务运行的容器
monitor:统计服务的调用次数和时间的监控中心

调用过程
服务容器负责启动,加载,运行服务的提供者
服务提供者在启动的时候向注册中心注册自己提供的服务
服务消费者在启动的时候向注册中心订阅自己所需的服务
注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
服务消费者从提供者列表中基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
服务消费者和提供者,在内存中累计调用次数和调用时间,每分钟发送一次统计数据到监控中心

zookeeper 三个端口(默认)的含义
2181为客户端提供服务的
2888集群内机器通讯使用(leader监听此端口)
3888选举leader使用

zookeeper集群的搭建过程
1.首先将压缩文件上传到linux服务器
2.解压缩至指定的文件夹
3.创建data目录
4.进入conf文件夹中将zoo_sample.cfg改名为zoo.cfg
5.修改zoo.cfg中的datadir为自己新建的data的目录
6.在data目录下创建一个myid文件,并依次写入1,2,3代表服务器id
7.将集群中的服务器清单添加在zoo.cfg下方 server.服务器id=ip地址:2888:3888
server.2=ip地址:2888:3888
server.3=ip地址:2888:3888

zookeeper集群能容忍的是宕机不超过半数

solrCloud是基于solr和zookeeper的分布式搜索方案
为什么要搭建solrCloud集群 因为可以实现高可用,高并发,扩展存储

zookeeper集群在solrcloud中的作用
1.集中管理solr集群配置文件
2.solr集群管理(选举主从)

solrCloud集群搭建的准备工作
1.准备4台安装好solr的tomcat(即在tomcat中的webapp里面解压了solr.war并将solr需要的jar包放到了tomcat的jar包中) 以及准备好solrhome 并配置好各自的solrhome(在tomcat的webapp里面的solr文件夹的conf-》web.xml里配置solrHOME的地址)

搭建solrcloud集群
1.让tomcat能找到zookeeper集群
进入bin/catalina.sh 在注释的JAVA_OPTS下面加 JAVA_OPTS=“-DzkHost=ip1:2181,ip2:2181,ip3:2181”
2.让solrCloud找到它的tomcat的ip和端口 在每个solrhome下的solr.xml

3.让zookeeper统一管理solr的配置文件,需要把solrhome下的collection1/conf目录上传至zookeeper 即上传solr的索引库配置文件,传一份就可以

传的话需要借助于solr中一个脚本,先将solr压缩包上传解压至linux,进入example/scripts/cloud-scripts目录
执行上传命令
./zkcli.sh -zkhost 192.168.25.140:2181,192.168.25.140:2182,192.168.25.140:2183 -cmd upconfig
-confdir /usr/local/solrhomes/solrhome-1/collection1/conf -confname myconf
注意:一定是在zookeeper集群启动的情况下上传

solr集群中某一个节点启动失败,我们可以先看看tomcat日志有没有报错,没有的话,将log4j.properties的配置文件放入到solr的web_INFO里面的classes目录里,查看solr的详细启动日志,发现了错误原因

redisCluster redis集群 是在redis3.0之后才出现的集群版本

redisCluster的分布式存储机制-槽 共有16384个槽,存入的key先经过crc16算法计算出一个值,该值模上16384得出一个值 然后根据得出的值存入到对应的节点中

redisCluster的容错机制-投票
当超过半数的master节点连接故障节点超时的话,会自动启动故障转移操作,故障节点对应的从节点自动升级为主节点

如果集群中某个节点的主节点挂掉后,它没有从节点,那么整个集群就进入fail状态

集群的准备工作
1.安装C语言环境 及安装ruby rubygems
2.上传redis压缩文件至linux系统
3.解压文件
4.make
5.make install 安装每个redis节点
6.拷贝redis.conf到每个redis节点的bin目录下

集群的配置
1.修改redis.conf的端口号 设置为后台程序 开启集群能力
2.启动每一个redis节点
3.上传redis-3.0.0.gem ,安装 ruby用于搭建redis集群的脚本。
4.使用 ruby 脚本搭建集群
进入redis源码目录中的src目录(有redis-trib.rb脚本) 执行下面的命令
./redis-trib.rb create --replicas 1 192.168.25.140:7001 192.168.25.140:7002 192.168.25.140:7003
192.168.25.140:7004 192.168.25.140:7005 192.168.25.140:7006

redis集群存储数据的话,在任意节点都可以查询到集群中存储的数据,但是keys * 只能查询到本节点存储的key

查看集群状态,可以使用刚才的ruby脚本 check 任一节点ip:端口号

或者在集群客户端内执行 cluster nodes 命令

dubbo zookeeper相关推荐

  1. Dubbo+zookeeper使用方法以及注意事项

    Dubbo+zookeeper使用方法以及注意事项 最近在一个项目中想做一个数据库查询的服务,目的是将数据库查询这块从程序中脱离出来,形成一个公共的服务平台,大家都可以调用,经过考虑决定选用Dubbo ...

  2. (五)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建根项目

    上一篇我们介绍<springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven模块规划>,从今天开始,我们将对代码的每一个构建做详细的记录,能够帮助大家 ...

  3. Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔 ...

  4. JEESZ架构、分布式服务:Dubbo+Zookeeper+Proxy+Restful

    分布式 分布式服务:Dubbo+Zookeeper+Proxy+Restful 分布式消息中间件:KafKa+Flume+Zookeeper 分布式缓存:Redis 分布式文件:FastDFS 负载均 ...

  5. 分布式系统设计原理与方案Dubbo+Zookeeper+Spring整合

    2019独角兽企业重金招聘Python工程师标准>>> 一直在思考分布式系统设计的问题,业务对象原封不动的情况下部署在客户端和服务器端,可以根据配置文件选择是连接服务器还是连接本地的 ...

  6. 精华【分布式、微服务、云架构dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!...

    2019独角兽企业重金招聘Python工程师标准>>> 框架简介--主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件.数据权限组件.数 ...

  7. dubbo+zookeeper+dubbo管理控制台实践demo

    2019独角兽企业重金招聘Python工程师标准>>> 1,安装并启动zookeeper注册服务,这里使用的是3.4.6版本. 下载解压后,在zookeeper-3.4.6/conf ...

  8. dubbo+zookeeper与提供者、消费者之间端口通信问题(No provider available for the service)

    一.异常信息分析 Failed to check the status of the service com.sihai.service.ItemService. No provider availa ...

  9. zookeeper 密码_「附源码」Dubbo+Zookeeper 的 RPC 远程调用框架

    技术博文,及时送达 作者 | 码农云帆哥 链接 | blog.csdn.net/sinat_27933301 上一篇:从零搭建创业公司后台技术栈 这是一个基于Dubbo+Zookeeper 的 RPC ...

  10. 从头开始搭建一个dubbo+zookeeper平台

    2019独角兽企业重金招聘Python工程师标准>>> 本篇主要是来分享从头开始搭建一个dubbo+zookeeper平台的过程,其中会简要介绍下dubbo服务的作用. 首先,看下一 ...

最新文章

  1. 李开复:白手起家的10个步骤
  2. 判断两个时间在15分钟内_为什么敷面膜的使用时间要15—20分钟,这个时间怎么算出来的?...
  3. HarmonyOS之深入解析服务卡片的使用
  4. 获取用户列表为空_Python中最常见的10个列表操作
  5. c++ sendmessage 鼠标 坐标是相对自身吗_【科普】你真的足够了解五轴加工吗?看完豁然开朗!...
  6. OC第七节——内存管理
  7. 计算机控制系统课件百度云,技术员给你防止百度网盘和谐的方法
  8. 移动手机组态软件UI设计思路探讨
  9. 免费数据集 公开数据集下载 网站
  10. Ubuntu20.04 虚拟机 联网
  11. python花瓣飘零_【动态网页】python3爬取花瓣网图片
  12. Koo叔说Shader—Shader简介
  13. 我心中的linux,和我如何用GNU linux工作!【强帖,精彩,真精彩】
  14. Timingdesigner入门 基础 教程
  15. 提升页面转化率100招
  16. 岁月的剪影【七月My way】
  17. 苹果内购噩梦条款3.1.1,知道这些小细节才不会被拒审
  18. 计算机考试题库判断题,计算机等级考试、期末计算机考试复习题库--1.判断题...
  19. 兔子繁衍问题(C语言)
  20. 好机会!IT工程师恭喜了!纳入工信部-工业互联网人才库!8月31日报名截止

热门文章

  1. POJ2987-Firing
  2. Navi title偏移问题 一般发生在模拟器
  3. 一双皮鞋的AI改造计划——白洞战报
  4. RXJAVA从入门到精通
  5. 模拟退火(Simulated Annealing, SA)算法简介与MATLAB实现
  6. winrar解压7z分卷
  7. 单片机RS485通信接口、控制线、原理图及程序实例
  8. openlayers官方教程(一)Introduction
  9. 通付盾是谁?通付盾能做什么?在做什么?
  10. 快递批量查询,还有比这更简单的办法吗?