前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mac安装Zookeeper带来的Zookeeper简单介绍及思考

Mac安装Zookeeper带来的Zookeeper简单介绍及思考

作者头像
needrunning
发布2019-07-19 16:47:51
3.3K0
发布2019-07-19 16:47:51
举报
文章被收录于专栏:图南科技

什么是Zookeeper

在Zookeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services。

这大概描述了Zookeeper主要是一个分布式服务协调框架,实现同步服务,配置维护和命名服务等分布式应用。是一个高性能的分布式数据一致性解决方案。

Zookeeper是集中式存储和管理分布式系统的配置中心。

CP系统

Zookeeper是个CP(一致性+分区容错性)的,即任何时刻对Zookeeper的访问请求能得到一致的数据结果,同时系统对网络分割具备容错性;

但是它不能保证每次服务请求的可用性。也就是在极端环境下,ZooKeeper可能会丢弃一些请求,消费者程序需要重新请求才能获得结果。

brew安装zookeeper

brew search zookeepker

zookeeper 支持brew安装

安装

brew install zookeeper

安装成功后主要安装文件路径

/usr/local/Cellar/zookeeper/3.4.13

配置文件路径

/usr/local/etc/zookeeper

包含四个主要文件

Zookeeper的简单介绍-Zookeeper配置-图南科技

这里引申说明一下 windows系统和Linux及Mac系统的区别:配置文件与安装文件分离.这种思维方式的区别很有用

启动

$ zkServer start:

查看状态

$ zkServer status:

代码语言:javascript
复制
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Mode: standalone

这里的standalone指的是单机模式

PHP客户端

代码语言:javascript
复制
sudo pecl install zookeeper 。
【直接终端运行,mac的生产力的表现之一】
Build process completed successfullyInstalling '/usr/local/Cellar/php@7.2/7.2.18/pecl/20170718/zookeeper.so'install ok: channel://pecl.php.net/zookeeper-0.6.4Extension zookeeper enabled in php.inihttps://pecl.php.net/package/zookeeper
Zookeeper主要作用

它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。

ZNode

ZNode是Zookeeper中数据的最小单元,每个ZNode都可以保存数据,同时还可以挂载子节点,因此构成了一个层次化的命名空间,称为树。

ZooKeeper的简单介绍-ZNode-图南科技

Watcher数据变更通知

Zookeeper使用Watcher机制实现分布式数据的发布/订阅功能。

ZooKeeper的简单介绍-Watcher机制-图南科技

分布式协调的具体案例

来源于公众号javaEdge

如上图所示,系统A发送一个请求到MQ,然后系统B消费消息之后处理了。那系统A如何知道系统B的处理结果?

用ZK就可实现分布式系统之间的协调工作!

系统A发送请求之后可以在ZK上对某个节点的值注册监听器,一旦系统B处理完了就修改ZK那个节点的值,A立马就可以收到通知,完美解决~

以上是一种典型的实时通知与通信模型

不同的客户端都对ZooKeeper上同一个数据节点进行Watcher注册,监听数据节点的变化(包括数据节点本身及其子节点),如果数据节点发生变化,那么所有订阅的客户端都能够接收到相应的Watcher通知,并做出相应的处理

总结

本篇以PHP环境下Zookeeper扩展安装为起点,简单介绍了Zookeeper基本概念和使用场景,不是很完整。如果PHP和Zookeeper作为一个分布式系统的客户端而言,网上的使用案例非常有限,跟PHP环境下熔断组建的使用一样,案例非常少,稳定性不能保证。

从两方面来看这个事:一,业界基本没有这样的使用场景和技术案例,为什么没有,因为PHP语言生态不适合做这块,能做吗,或许能做,但是不适合,不是强项。二,如果有类似的需求,我们不应该选择PHP来做这块,因为整个业界都没有这样做的,我们应该把经历花在更有意义的选择上。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图南科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Zookeeper
    • CP系统
    • brew安装zookeeper
    • 安装
      • 配置文件路径
      • 启动
      • 查看状态
      • PHP客户端
        • Zookeeper主要作用
        • ZNode
          • 分布式协调的具体案例
          • 总结
          相关产品与服务
          微服务引擎 TSE
          微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档