zookeeper集群

springboot分布式(zookeeper+Dubbo)

我只是一个虾纸丫 提交于 2020-02-08 16:53:12
文章目录 springBoot 分布式zookeeper+Dubbo 一、基础知识 单一应用架构 垂直应用架构 分布式架构 流动计算架构 什么是RPC? 二、Dubbo 什么是Dubbo 为什么使用Dubbo 调用关系说明 Dubbo环境搭建 window下安装dubbo-admin SpringBoot + Dubbo + zookeeper 服务提供者(provider) 服务消费者(consumer) springBoot 分布式zookeeper+Dubbo 一、基础知识 什么是分布式系统 1 、分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统 2 、分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。 3 、分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。 为什么提倡分布式架构 随着互联网规模和需求越来越大,传统的单体应用已经不能支撑 单一应用架构 将网站所有东西打包在一个应用中,将其部署,减少部署成本,此时ORM成为重点 优点:适合小网站,访问量不大的情况下 缺点: 性能扩展比较难 协同开发问题 不利于升级维护 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时

微服务的注册与发现

我怕爱的太早我们不能终老 提交于 2020-02-08 06:02:12
目录 简介 实现服务注册组件 设计服务注册表数据结构 搭建应用程序框架 定义服务注册表接口 使用 ZooKeeper 实现服务注册 服务注册模式 实现服务发现组件 搭建应用程序框架 实现服务发现 服务发现优化方案 服务发现模式 参考 简介 先来回顾下整体的微服务架构 在发布微服务时,可连接 ZooKeeper 来注册微服务,实现“服务注册”。当浏览器发送请求后,可使用 Node.js 充当 service gateway,处理浏览器的请求,连接 ZooKeeper,发现服务配置,实现服务发现。 实现服务注册组件 Service Registry(服务注册表),内部拥有一个数据结构,用于存储已发布服务的配置信息。本节会使用 Spring Boot 与 Zookeeper 开发一款轻量级服务注册组件。开发之前,先要做一个简单的设计。 设计服务注册表数据结构 首先在 Znode 树状模型下定义一个 根节点 ,而且这个节点是持久的。 在根节点下再添加若干子节点,并使用服务名称作为这些子节点的名称,并称之为 服务节点 。为了确保服务的高可用性,我们可能会发布多个相同功能的服务,但由于 zookeeper 不允许存在同名的服务,因此需要再服务节点下再添加一层节点。因此服务节点则是持久的。 服务节点下的这些子节点称为 地址节点 。每个地址节点都对应于一个特定的服务,我们将服务配置存放在该节点中。

springcloud之服务注册与发现(zookeeper注册中心)-Finchley.SR2版

青春壹個敷衍的年華 提交于 2020-02-08 05:32:22
新年第一篇博文,接着和大家分享springcloud相关内容;本次主要内容是使用cloud结合zookeeper作为注册中心来搭建服务调用,前面几篇文章有涉及到另外的eureka作为注册中心,有兴趣的朋友会回顾下上几篇文章。 springcloud版本说明 docker快速启动一个zookeeper服务 zk-server服务提供者 zk-client服务消费者 启动多个zk-server服务提供者 git源码地址: https://github.com/shenniubuxing3/springcloud-Finchley.SR2 springcloud版本说明 由于市面上其版本比较多,版本不一可能造成了读者尝试时版本问题,所以这里指明当前作者写文章时使用的cloud版本 springboot版本: 1 <parent> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-parent</artifactId> 4 <version>2.0.7.RELEASE</version> 5 <relativePath/> <!-- lookup parent from repository --> 6 </parent> springcloud版本: 1 <properties>

kafka集群搭建

你离开我真会死。 提交于 2020-02-08 03:56:17
环境准备 1.服务器概览 ip 操作系统 说明 安装内容 192.168.0.113 centos 7 master节点 jdk1.8, kafka_2.11-0.10.1.1, zookeeper-3.4.8.tar 192.168.0.114 centos 7 master节点 jdk1.8, kafka_2.11-0.10.1.1, zookeeper-3.4.8.tar 192.168.0.115 centos 7 master节点 jdk1.8, kafka_2.11-0.10.1.1, zookeeper-3.4.8.tar 2.服务器环境安装 jdk1.8 安装 参考:centos7 安装jdk 1.8 注意:三台服务均执行 #添加host 192.168.0.112 master.kafka 192.168.0.114 worker1.kafka 192.168.0.115 worker2.kafka #执行以下命令关闭防火墙 [root@node1 ~]systemctl stop firewalld && systemctl disable firewalld [root@node1 ~]setenforce 0 #将SELINUX的值改成disabled [root@node1 ~]vim /etc/selinux/config SELINUX

大数据之Zookeeper(上)

隐身守侯 提交于 2020-02-07 20:55:29
1 分布式概述 早起我们使用单体架构,即所有的服务都部署在一台服务器的一个进程中,随着互联网的发展,逐步演进为分布式架构,多个服务分别部署在不同机器的不同进程中。 2 Zookeeper概述 Zookeeper是一个开源的分布式协调服务,提供分布式数据一致性解决方案,分布式应用程序可以实现数据发布订阅、负载均衡、命名服务、集群管理分布式锁、分布式队列等功能。 Zookeeper提供了分布式数据一致性的解决访问,那么什么是分布式数据一致性? 如上图所示,有用户user在DB1中修改balance为900,如果user下一次read请求到DB2数据库的时候,此时DB1数据库的数据还没及时更新到DB2中,就会造成整个数据库集群数据不一致。 数据一致性分为强一致性和最终一致性,强一致性指的是如果数据不一致,就不对外提供数据服务,保证用户读写的数据始终是一致的。数据强一致性值需要通过锁机制即可解决,在案例中通过在DB2没有从DB1同步数据之前上锁,不对外提供读操作。只要当同步完成以后才对外提供服务。而最终一致性要求数据最终同步即可,没有实时要求。 3 CAP原则 CAP在分布式系统中主要指的是一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。 一致性:一致性指的就是强一致性。 可用性:系统提供的服务一直处于可用状态

ZooKeeper原理解析

♀尐吖头ヾ 提交于 2020-02-07 11:16:27
文章目录 1.ZooKeeper介绍 1.1文件系统 1.2监听机制 1.3监听工作原理 1.4ZooKeeper典型应用场景 1.4.1命名服务 1.4.2配置管理 1.4.3集群管理 1.4.4分布式锁 1.4.5队列管理 2.ZooKeeper特点 3.Zookeeper原理解析 3.1集群角色描述 3.2Paxos 算法概述(ZAB 协议) 3.2.1ZooKeeper的全新集群选主 3.2.2ZooKeeper的非全新集群选主 3.3数据同步 3.4ZooKeeper工作流程 3.4.4Leader工作流程 3.4.2Follower工作流程 3.4.3Observer工作流程 1.ZooKeeper介绍 ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如 分布式同步,配置管理,集群管理,命名管理,队列管理 。它被设计为易于编程,使用文 件系统目录树作为数据模型。服务端跑在 java 上,提供 java 和 C 的客户端 API。 1.1文件系统 ZooKeeper 的命名空间就是 ZooKeeper 应用的文件系统,它和 linux 的文件系统很像,也是树 状,这样就可以确定每个路径都是唯一的,对于命名空间的操作必须都是绝对路径操作

让你5分钟认识ZooKeeper的原理

冷暖自知 提交于 2020-02-07 11:15:10
前言 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。 1、简介 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。 2、基本概念 本节将介绍 ZooKeeper 的几个核心概念。这些概念贯穿于之后对 ZooKeeper 更深入的讲解,因此有必要预先了解这些概念。 2.1 集群角色 在 ZooKeeper 中,有三种角色: Leader Follower Observer 一个 ZooKeeper 集群同一时刻只会有一个 Leader,其他都是 Follower 或 Observer。 ZooKeeper 配置很简单,每个节点的配置文件(zoo.cfg)都是一样的,只有 myid 文件不一样。myid 的值必须是 zoo.cfg中server.{数值} 的{数值}部分。 zoo.cfg 文件内容示例: ZooKeeper 在装有 ZooKeeper

搭建zookeeper集群,无废话

*爱你&永不变心* 提交于 2020-02-07 00:40:43
1、集群规划 本次集群搭建采用伪集群,即在一台主机上分别使用三个端口进行搭建,接下来就不多废话,直接上步骤 文件夹 主机ip 端口 zk1 192.168.146.21 2181 zk2 192.168.146.21 2182 zk3 192.168.146.21 2183 2、复制三份zookeeper包 3、创建数据目录和日志目录 mkdir zk1 / data zk1 / log mkdir zk2 / data zk2 / log mkdir zk3 / data zk3 / log 4、创建myid文件 vi zk1 / data / myid 文件内容为1 vi zk2 / data / myid 文件内容为2 vi zk3 / data / myid 文件内容为3 如下所示 5、 修改配置文件 zk1 数据目录 # ookeeper的数据存放地址 dataDir= / home / zk - mq / cluster / zk - cluster / zk1 / data # zookeeper的日志目录 dataLogDir= / home / zk - mq / cluster / zk - cluster / zk1 / log # 连接的端口号 clientPort=2181 zk2数据目录 # ookeeper的数据存放地址 dataDir= / home

ZooKeeper面试题

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-06 21:35:05
前言 ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 ZooKeeper 的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 面试题 ZooKeeper 是什么? ZooKeeper 提供了什么? Zookeeper 文件系统 ZAB 协议? 四种类型的数据节点 Znode Zookeeper Watcher 机制 -- 数据变更通知 客户端注册 Watcher 实现 服务端处理 Watcher 实现 客户端回调 Watcher ACL 权限控制机制 Chroot 特性 会话管理 服务器角色 Zookeeper 下 Server 工作状态 数据同步 zookeeper 是如何保证事务的顺序一致性的? 分布式集群中为什么会有 Master? zk 节点宕机如何处理? zookeeper 负载均衡和 nginx 负载均衡区别 Zookeeper 有哪几种几种部署模式? 集群最少要几台机器,集群规则是怎样的? 集群支持动态添加机器吗? Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的? Zookeeper 的 java 客户端都有哪些? chubby 是什么,和 zookeeper 比你怎么看?

zookeeper简述和我对zookeeper的理解

六月ゝ 毕业季﹏ 提交于 2020-02-06 18:18:49
前面10来篇针对于redis进行了一系列的回顾和学习,接下来需要针对zookeeper做一些理论上的学习和集群搭建以及代码操作。 理论书籍有两本值得深入学习: 从Paxos到Zookeeper 分布式一致性原理与实践 zookeeper分布式过程协同技术详解 笔者有第一本书,但是没看完,我理解的zookeeper应该是分布式协同中间件,也就是说借助于网络框架,为集群以及分布式系统做配置管理和协议信息同步功能。 zookeeper可以用来很好的学习拜占庭将军问题,以及ACID,BASE理论,两阶段提交协议等相关理论和实践。 笔者对于zookeeper也不是很了解或者很懂,下面粗浅的说一下zookeeper的用处 1.zookeeper可以做很多服务中间件的协调组件,比如hadoop,kafka,hbase.可以协调不同集群节点的状态。 2.可以做很多服务中间的配置数据存储,比如集群节点存储,集群信息存储,dubbo. 3.可以做分布式锁或者分布式id生成器,这个是由于zookeeper的实现机制而带来的优势。 zookeeper在大型分布式系统中我们可能并不能明确的感受他的作用,比如我们要学dubbo,那为啥要先搭建zookeeper呢,这就是比较尴尬的地方,比如我要搭建kafka集群,也需要先搭建zookeeper集群,但是搭建完之后配置完数据之后就可以学习相关服务框架了