搞懂分布式技术3:初探分布式协调服务zookeeper

 

 

分布式核心组件:Zookeeper有什么用?

本文是什么是Zookeeper?的笔记,从使用者的角度描述了Zookeeper有什么用处,至于它内部是如何工作

解决在线服务列表同步问题

现在公司的IT系统早已经从单机转向了分布式,然而分布式系统带来了很多的问题。比如说

现在公司开发了一个RPC框架来给各组开发人员使用,为了支持高并发,OrderService部署了4份,也就意味着每个客户端保存了一份服务提供者的列表,但是这个列表是在配置文件中写死了的,意味着如果某台服务器down了,客户端并不知道,依然会尝试访问。

这样客户端和服务提供者是紧耦合,要解决这个问题,可以增加一个中间层

搞懂分布式技术3:初探分布式协调服务zookeeper_第1张图片

image.png

RPC指的是远程过程调用,就是部署在服务器A的应用要调用服务器B上的函数,由于不在一个内存空间,所以需要使用网络来表达怎么调用以及要调用的内容。RPC就是要像调用本地的函数一样去调远程函数。

那么如何设计这个中间层呢?

可以使用一个注册中心,它保存了能提供的服务的名称,以及URL。首先这些服务会在注册中心进行注册,当客户端来查询的时候,只需要给出名称,注册中心就会给出一个URL。

这个注册中心类似于一个上帝的角色,它可以了解全局有那些服务提供者,以及这些提供者的状态。

所有的客户端在访问服务前,都需要向这个注册中心进行询问,以获得最新的地址。

搞懂分布式技术3:初探分布式协调服务zookeeper_第2张图片

image.png

注册中心可以是树形结构,每个服务下面有若干节点,每个节点表示服务的实例。

注册中心和各个服务实例直接建立Session,要求实例们定期发送心跳,一旦特定时间收不到心跳,则认为实例挂了,删除该实例。

搞懂分布式技术3:初探分布式协调服务zookeeper_第3张图片

image.png

 

搞懂分布式技术3:初探分布式协调服务zookeeper_第4张图片

微信公众号

个人公众号:程序员黄小斜

微信公众号【程序员黄小斜】新生代青年聚集地,程序员成长充电站。作者黄小斜,职业是阿里程序员,身份是斜杠青年,希望和更多的程序员交朋友,一起进步和成长!专注于分享技术、面试、职场等成长干货,这一次,我们一起出发。

关注公众号后回复“2020”领取我这两年整理的学习资料,涵盖自学编程、求职面试、算法刷题、Java技术学习、计算机基础和考研等8000G资料合集。

技术公众号:Java技术江湖

微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站,专注于 Java 相关技术:SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程,偶尔讲点Docker、ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!

关注公众号后回复“PDF”即可领取200+页的《Java工程师面试指南》强烈推荐,几乎涵盖所有Java工程师必知必会的知识点。

你可能感兴趣的:(分布式系统,分布式系统理论与实践)