月度归档:2017年02月
Kafka的安装与命令
说说Zookeeper中的ACL
Access Control List,简称ACL,即访问控制列表,在分布式系统中重要性是毋庸置疑的。
ZooKeeper原理及使用
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper提供的Client API的使用,第三部分介绍一些ZooKeeper典型的应用场景。
继续阅读
PHP中zookeeper的类与方法
__construct( $host = ‘‘, $watcher_cb = null, $recv_timeout = 10000)
$host:zookeeper的ip和端口,多组信息使用,分隔
$watcher_cb:全局监听函数,任何的监听都会执行该回调函数
$recv_timeout:会话超时,在zookeeper的服务器中可以设置 minSessionTimeout和maxSessionTimeout,限制客户端设置session的超时范围
Zookeeper中的命令
zookeeper中的命令不多,且比较简单,下面做一个完整的介绍。
安装PHP中的zookeeper扩展
PHP的安装以及配置都非常的简单,可以参考文章:Zookeeper的安装,今儿来看看PHP扩展的安装。
现在官方已经有0.3.2的版本了,查看 https://pecl.php.net/package/zookeeper
Zookeeper是什么
Google的三篇论文影响了很多很多人,也影响了很多很多系统。这三篇论文一直是分布式领域传阅的经典。根据MapReduce,于是我们有了Hadoop;根据GFS,于是我们有了HDFS;根据BigTable,于是我们有了HBase。而在这三篇论文里都提及Google的一个lock service—Chubby,哦,于是我们有了Zookeeper。
Zookeeper可以干什么
在Zookeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
这大概描述了Zookeeper主要可以干哪些事情:配置管理,名字服务,提供分布式同步以及集群管理。那这些服务又到底是什么呢?我们为什么需要这样的服务?我们又为什么要使用Zookeeper来实现呢,使用Zookeeper有什么优势?接下来我会挨个介绍这些到底是什么,以及有哪些开源系统中使用了。
ZooKeeper之ZAB协议
ZooKeeper为高可用的一致性协调框架,自然的ZooKeeper也有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法, ZAB(ZooKeeper Atomic Broadcast ) 全称为:原子消息广播协议;ZAB可以说是在Paxos(帕克索斯)算法基础上进行了扩展改造而来的,ZAB协议设计了支持崩溃恢复,ZooKeeper使用单一主进程Leader用于处理客户端所有事务请求,采用ZAB协议将服务器数状态以事务形式广播到所有Follower上;由于事务间可能存在着依赖关系,ZAB协议保证Leader广播的变更序列被顺序的处理,:一个状态被处理那么它所依赖的状态也已经提前被处理;ZAB协议支持的崩溃恢复可以保证在Leader进程崩溃的时候可以重新选出Leader并且保证数据的完整性;
什么时候需要自己搭建缓存服务
都说“程序等于数据结构加算法”,在软件的运行时刻,其实是数据加进程,进程离数据越“近”,越能得到高速的读写性能。
软件服务内部的多线程模型
回顾之前说过的,服务和服务之间的调用,可以分为同步调用(发起方等待结果)和异步调用(发起方不等待结果),同步调用的好处是写代码简单,坏处是有可能阻塞线程,造成线程资源浪费。我这里说“有可能”,是因为可以使用支持io异步的编程语言,来避免线程阻塞。
一种可扩展缓存架构
之前对于并发和异步讲得比较多,今天讲一下更常见的缓存应用架构。
我们先看一个简单的架构
zookeeper在分布式应用中的作用[转]
是不是要在标题的“作用”之前加上“重要”两个字,我犹豫了一下,zookeeper提供的功能是如此的重要,以至于如果你在应用中不使用它,早晚也会在你的应用中去实现zookeeper 的功能,所以,zookeeper值得你花(一点)时间去掌握。
Zookeeper的安装
RabbitMQ中的cluster的架构
今天对 RabbitMQ的cluster做个了结,感觉要学习的东西太多了,日后如果使用到了rabbit时,再来回顾吧。
RabbitMQ的cluster在普通模式下(注意是默认模式),吞吐大概在2w左右,但这种的模式不太实用,只要主节点一旦挂掉,整个集群就无法使用,这里不做过多的讨论。主要讨论它的镜像模式,这种模式需要设置vhost的策略(policy)
RabbitMQ中的权限控制
在刚开始看RabbitMq权限的时候,分不清楚角色和权限(permission)的区别和用法,今天把我对它们的理解做一个总结。