ubuntu安装zookeeper原生 C API

zookeeper简介

zookeeper是一个在分布式环境中,为应用提供一致性协调服务的一种中间件。是Google的Chubby一个开源的实现,是大数据生态中的重要组件。
zookeeper可以在分布式环境中监视各个节点的状态,并根据节点的状态进行下一步合理操作。,对外提供简单易用、高效、稳定的接口。



zookeeper数据组织方式

在这里插入图片描述

zk的数据组织方式类型linux的文件系统类型,以一颗多叉树的形式,每个节点称为znode,与文件系统不同的是,这些节点都可以设置关联的数据,文件系统中只有文件节点可以存放数据而目录节点不行,每个znode节点默认可存放数据上限为1M。



zookeeper的watcher机制

zk client 可以向zk server上注册一个回调,表示对某个节点上的变化感兴趣,当节点数据发生变化,或节点删除,zk server会主动告知zk client 并触发所注册的回调进行业务上的操作等等。

提示:以下是本篇文章正文内容,下面案例可供参考

zookeeper 应用场景

  • 主从切换,master节点选举, 主节点down掉后, 从节点就会接手工作, 并且保证这个节点是唯一的,从而保证集群的高可用
  • 统一配置文件管理, 即只需要部署一台服务器, 则可以把相同的配置文件同步更新到其他所有服务器, (例修改了redis统一配置)
  • 统一命名服务
  • RPC服务配置中心
    数据发布与订阅, 类似消息队列MQ
  • 分布式锁,分布式环境中协调不同主机进程之间的同步
  • 集群管理, 保证集群中数据的强一致性

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。


zk 编译原生C API

ubuntu 系统

~/zookeeper-3.4.10/src/c$ sudo ./configure
~/zookeeper-3.4.10/src/c$ sudo make
~/zookeeper-3.4.10/src/c$ sudo make install

可能产生的make编译错误

./configure之后,然后make,发现出现如图问题
在这里插入图片描述

ubunutu的 gcc版本是8.3.0,编译检测性非常高

zookeeper源码编译生成C函数接口,在./configure后生成的Makefile文件中,默认是将警告当成错误的,因此导致上图中的警告,总是以错误形式展现,编译失败

解决方案
将自己系统gcc的版本降低一些,比如7.3版本
将生成的Makefile文件中的设置的把警告当成错误去掉,然后在进行编译,编译过程中可能出现警告,但是不影响编译生成可执行文件
个人使用方法二

进入到生成的Makefile中,修改上述问题

删掉后面的 -Werror,让它不要把警告当成错误
在这里插入图片描述

然后再次执行make命令,编译make文件,会出现如下图的警告,但是不影响编译

最后在执行下面的命令,将生成的头文件和库添加到/usr中

sudo make install

原生ZkClient API存在的问题

Zookeeper原生提供了C和Java的客户端编程接口,但是使用起来相对复杂,几个弱点:

1.设置监听watcher只能是一次性的,每次触发后需要重复设置
2.znode节点只存储简单的byte字节数组,如果存储对象,需要自己进行序列化

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

necesse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值