ubuntu系统启动脚本
2009-06-17 15:08
141 查看
引子?
云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群。服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信息如何推送到各个节点?并且保证信息的一致性和可靠性?众所周知,分布式协调服务很难正确无误的实现,它们很容易在竞争条件和死锁上犯错误。如何在这方面节省力气?Zookeeper是一个不错的选择。
Zookeeper背后的动机就是解除分布式应用在实现协调服务上的痛苦。本文在介绍Zookeeper的基本理论基础上,用Zookeeper实现了一
个配置管理中心,利用Zookeeper将配置信息分发到各个服务节点上,并保证信息的正确性和一致性。
Zookeeper是什么?
引用官方的说法:“Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步,配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端
API”。
Zookeeper总体结构
Zookeeper服务自身组成一个集群(2n+1个服务允许n个失效)。Zookeeper服务有两个角色,一个是leader,负责写服务和数据同步,剩下的是follower,提供读服务,leader失效后会在follower中重新选举新的leader。Zookeeper逻辑图如下,
客户端可以连接到每个server,每个server的数据完全相同。
每个follower都和leader有连接,接受leader的数据更新操作。
Server记录事务日志和快照到持久存储。
大多数server可用,整体服务就可用。
Zookeeper数据模型
Zookeeper表现为一个分层的文件系统目录树结构(不同于文件系统的是,节点可以有自己的数据,而文件系统中的目录节点只有子节点)。数据模型结构图如下,
圆形节点可以含有子节点,多边形节点不能含有子节点。一个节点对应一个应用,节点存储的数据就是应用需要的配置信息。
Zookeeper 特点
顺序一致性:按照客户端发送请求的顺序更新数据。原子性:更新要么成功,要么失败,不会出现部分更新。
单一性 :无论客户端连接哪个server,都会看到同一个视图。
可靠性:一旦数据更新成功,将一直保持,直到新的更新。
及时性:客户端会在一个确定的时间内得到最新的数据。
Zookeeper运用场景
数据发布与订阅 (我的业务用到这个特性,后面会有详细介绍)应用配置集中到节点上,应用启动时主动获取,并在节点上注册一个watcher,每次配置更新都会通知到应用。
名空间服务
分布式命名服务,创建一个节点后,节点的路径就是全局唯一的,可以作为全局名称使用。
分布式通知/协调
不同的系统都监听同一个节点,一旦有了更新,另一个系统能够收到通知。
分布式锁
Zookeeper能保证数据的强一致性,用户任何时候都可以相信集群中每个节点的数据都是相同的。一个用户创建一个节点作为锁,另一个用户检测该节点,如果存在,代表别的用户已经锁住,如果不存在,则可以创建一个节点,代表拥有一个锁。
集群管理
每个加入集群的机器都创建一个节点,写入自己的状态。监控父节点的用户会受到通知,进行相应的处理。离开时删除节点,监控父节点的用户同样会收到通知。
本文出自 “Miles Away” 博客,谢绝转载!
相关文章推荐
- ubuntu系统中nginx启动脚本
- Ubuntu系统创建开机启动脚本
- Ubuntu/Debian与REDHAT系统启动脚本之对照
- Ubuntu Server系统下快速安装LAMP生产环境脚本
- Ubuntu 10.04 修改启动菜单默认系统的的方法
- oracle linux 5 中随系统自动启动停止数据库oracle 11g R2的脚本
- 修改win10和ubuntu双系统启动顺序
- Linux 下系统启动执行脚本
- MAC 系统的启动过程和系统启动时运行shell 脚本
- ubuntu 12.10 grub 启动双系统修改
- Ubuntu下添加开机启动脚本(转载)
- Ubuntu下添加开机启动脚本
- CentOS7设置自定义开机启动脚本,添加自定义系统服务
- linux脚本—ubuntu开机启动
- 在Ubuntu16.04中将启动和关闭Hadoop的命令行写成脚本文件
- 关于win7和ubuntu 14.04双系统启动修复的几点总结
- [ubuntu]修改GRUB的默认启动系统
- 解决live CD方式启动Ubuntu系统不能启动openssh-server服务
- U盘启动 Ubuntu 等系统,修复 PBR 引导的简单解决方法
- 重装新的windows系统ubuntu系统启动菜单不见的修复方法