(一)分布式系统和zookeper简介

一、zookeeper简介

1、是一个中间件,提供协调服务

中间件,就是为两方或多方集成提供一些服务,供别人来使用的啦~

2、作用于分布式系统。发挥其优势,可以为大数据服务
3、支持java,提供java和c语言的客户端api

二、分布式系统

1、很多台计算机组成一个整体,一个整体一致对外并且处理同一请求
2、内部的每台计算机都可以互相通信( 主流通信机制:rest / rpc )
3、客户端到服务端的一次请求到响应结束会经历多台计算机

eg:比如说我在淘宝买件衣服会经历很多系统,但我作为一个用户不知道里面具体的细节,对我而言,这套系统是透明的,而对淘宝内部开发人员,这套系统就不是透明的了。我买件衣服这个请求会经历很多分布式系统,他们进行相互通信,进行计算,最后把计算结果汇总,反馈给我~

分布式图解一:



比如说红毛去访问一个分布式文件系统(俗称网盘),这个系统是部署在服务器A上,然后有一个服务器B作为备用服务器,这种模式成为HA主备;然后有多个文件服务器,用于分布式存储系统的文件。

分布式图解二:



下单流程为例:经历了页面计算机、商品服务计算机(检查商品库存啥的)、订单服务计算机、账单服务计算机等多台计算机这么个 从请求到响应的流程。

总结:

  • 分布式系统就是把原来的系统拆分成一个个的小系统,最后整合成一个庞大的系统;这个系统对用户是透明的,对我们开发人员是不透明的。
  • 那怎么拆呢?
    就是根据业务来分,先分成各种各样的业务,把业务模块化或细分,然后根据这些业务拆分为不同的服务或者说服务器里服务化,不同的服务也可以做集群,这样就可以做成一个分布式的集群系统。
  • 有啥好处呢?
    分布式集群系统会使我们的支持的负载大大增加,用户的请求会分配不到不同的系统里去。现在的互联网的趋势就是趋向于分布式的集群开发。那么这种面向服务的开发就俗称微服务。

三、分布式系统的瓶颈及zk的相关特性

(1)瓶颈:

当负载超过分布式系统的最大支持限度,就只能按照先来后到的顺序承载数据,此时,就涉及到了数据的一致性即 同步的问题,即一个典型的分布式锁的场景;
典型场景1:



)
典型场景2:

在高并发的场景,例如堵车的时候,就需要一个交警来协调车流量,而zookeeper就有这样的特性。

(2)zookeeper特性

①一致性:数据一致性,数据按照顺序分批入库;
②原子性:事务要么成功,要么失败,不会局部化;
③单一视图:客户端连接集群中的任一zk节点,数据都是一致的;
【 即用户无论连接的是哪个zookeeper节点,看到的数据都是一致的,即视图一致单一 】
④可靠性:每次对zk的操作状态都会保存在服务端;
【 相当于日志,可以在后期的摸个时间节点回滚数据,很可靠 】
⑤实时性:客户端可以读到zk服务端的最新数据;
【 在一个时间段内 】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容