初步认识zookeeper

作者: 上岸之路 | 来源:发表于2018-09-27 16:34 被阅读17次

问题的引入

随着服务的模块化分布式架构的衍出,集群化越来越严重

1.协议地址的维护

传统方式模块间互相调用通过webservice方式,但是存在好多个订单服务,用户模块调用订单服务通过http://****?wsdl路径访问一个订单服务就要好多个这种路径,那么怎么维护这个路径?

2.负载均衡机制

存在n个订单服务,不能指望一个订单服务处理所有请求

3.服务动态上下线感知

假如其中一个订单down掉怎么感知,从而不往这个服务发送请求?

这个时候我们就需要一个中间件所有订单服务注册到中间件上,用户模块只需要与中间件交互获取一个地址簿由中间件进行转发维护管理

这个中间件就是zookeeper(分布式协调服务)

本例

我们可以创建一个orderservice节点

节点下维护了所有订单地址

分布式请求牵扯到共享资源的访问,单进程模块我们可以用线程锁控制,但是分布式环境是多进程服务,就需要一个中间件来维护共享资源。zookeeper就起到这个作用

但是为了保证zookeeper的高可用我们基本上不会只用一个zookeeper,这就形成了一个zookeeper集群。假设所有的订单服务都往集群中注册,部分注册到zookeeperA中部分注册到zookeeperB中这就牵扯到zookeeper的同步问题

zookeeper集群角色leader,follower 所有的事务请求在leader所有的写请求在follower

当事务请求发生在leader时,leader要同步给follower(因为模块可以访问任意zookeeper,要保证数据一致性)

数据同步问题怎么解决呢?

CAP理论(2pc最终一致性解决),不可能大到强一致性,保证高性能高可用

中心化

我们上边讲到zookeeper集群是中心化的,即存在leader follower,那么什么是中心化?

假设我们项目团队是一个集群,那么我们的项目经理就是一个leader ,如果leader有问题了就没人派发任务了。

去中心化


所有人平等,例子全球互联网化,局部机房出问题并不会影响全部。

相关文章

  • 初步认识zookeeper

    什么是zookeeper zookeeper 是一个开源的分布式协调服务,由雅虎公司创建,是google chub...

  • [ZooKeeper]初步认识

    前言在学习任何技术知识的时候,一定要思考他的本质!3w原则想必都听过:why、what、how。大why,小wha...

  • 初步认识zookeeper

    问题的引入 随着服务的模块化分布式架构的衍出,集群化越来越严重 1.协议地址的维护 传统方式模块间互相调用通过we...

  • ZooKeeper 初步

    单实例安装 下载 zookeeper使用Java编写,依赖的JDK版本为1.6+,因此zookeeper的运行需要...

  • 初步认识

    初识C语言 开始 我从高三毕业假期开始涉及C语言学习,经过了九个月左右的学习,初步认识了这种语言的语法和具体特质。...

  • 给新人的ZooKeeper学习计划

    初步了解ZooKeeper ZooKeeper的学习,包括了产品级别的学习,和源码级别的学习。产品级别的学习,主要...

  • 认识Zookeeper

    zookeeper是一个类似hdfs(Hadoop分布式文件系统或HDFS是基于Java的分布式文件系统,允许您在...

  • Zookeeper系列(一) Zookeeper的原理学习

    一、ZooKeeper的背景 1.1 认识ZooKeeper ZooKeeper---译名为“动物园管理员”。动物...

  • Elastic-Job(一):Zookeeper概述及单机环境搭

    Elastic-Job学习的前置课程,先认识一下Zookeeper。 Zookeeper概述 Zookeeper可...

  • Zookeeper核心之ZAB协议

    前言 在zookeeper的上一篇文章中对zookeeper做了初步的了解,知道了他的基本命令,节点特性,以及集群...

网友评论

    本文标题:初步认识zookeeper

    本文链接:https://www.haomeiwen.com/subject/dytwgftx.html