分类归档

服务器教程

服务器知识、操作系统教程、服务器常用软件等

FWQ
服务器教程
Zookeeper中的命令
zookeeper中的命令不多,且比较简单,下面做一个完整的介绍。   进入命令行: # ./zkCli.sh -server 192.168.80.121:2181 使用help列出所有的命令,如下: stat path [watch] 使用 stat 命令可以输出节点的统计信息. #注意和get的区别 # stat /wanda/store cZxid = 0x10000008e ctime = Tue Feb 07 13:26:43 UTC…
2024-11-19 阅读全文 →
FWQ
服务器教程
PHP中zookeeper的类与方法
__construct( $host = ‘‘, $watcher_cb = null, $recv_timeout = 10000) $host:zookeeper的ip和端口,多组信息使用,分隔 $watcher_cb:全局监听函数,任何的监听都会执行该回调函数 $recv_timeout:会话超时,在zookeeper的服务器中可以设置 minSessionTimeout和maxSessionTimeout,限制客户端设置session的超时范围   $zookeeper = new Zookeeper("192.168.80.121:2181,192.168.80.122:2181, 192.168.80.123:2181",'globalWatcher',5000); $zookeeper->get('/redis','redisWatcher'); $zookeeper->get('/rabbit','rabbitWatcher'); function globalWatcher(){ echo "global watcher\n"; } function redisWatcher(){ echo "redis watcher\n"; $GLOBALS['zookeeper']->get('/redis','redisWatcher'); } function rabbitWatcher(){…
2024-11-19 阅读全文 →
FWQ
服务器教程
ZooKeeper原理及使用
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper提供的Client API的使用,第三部分介绍一些ZooKeeper典型的应用场景。 ZooKeeper基本原理 1、数据模型 如上图所示,ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每个ZNode都可以通过其路径唯一标识,比如上图中第三层的第一个ZNode, 它的路径是/app1/c1。在每个ZNode上可存储少量数据(默认是1M, 可以通过配置修改, 通常不建议在ZNode上存储大量的数据),这个特性非常有用,在后面的典型应用场景中会介绍到。另外,每个ZNode上还存储了其Acl信息,这里需要注意,虽说ZNode的树形结构跟Unix文件系统很类似,但是其Acl与Unix文件系统是完全不同的,每个ZNode的Acl的独立的,子结点不会继承父结点的,关于ZooKeeper中的Acl可以参考之前写过的一篇文章:说说Zookeeper中的ACL 2、重要概念 2.1 ZNode 前文已介绍了ZNode, ZNode根据其本身的特性,可以分为下面两类: Regular ZNode: 常规型ZNode, 用户需要显式的创建、删除 Ephemeral ZNode: 临时型ZNode, 用户创建它之后,可以显式的删除,也可以在创建它的Session结束后,由ZooKeeper Server自动删除 Tips:ZNode还有一个Sequential的特性,如果创建的时候指定的话,该ZNode的名字后面会自动Append一个不断增加的SequenceNo。 Tips:创建、删除、设置的PHP设置方法参考:PHP中zookeeper的类与方法、在命令行的操作方法参考:Zookeeper中的命令 2.2 Session Client与ZooKeeper之间的通信,需要创建一个Session,这个Session会有一个超时时间。因为ZooKeeper集群会把Client的Session信息持久化,所以在Session没超时之前,Client与ZooKeeper…
2024-11-19 阅读全文 →
FWQ
服务器教程
说说Zookeeper中的ACL
Access Control List,简称ACL,即访问控制列表,在分布式系统中重要性是毋庸置疑的。   概述 传统的文件系统中,ACL分为两个维度,一个是属组,一个是权限,子目录/文件默认继承父目录的ACL。而在Zookeeper中,node的ACL是没有继承关系的,是独立控制的。Zookeeper的ACL,可以从三个维度来理解:一是scheme; 二是user; 三是permission,通常表示为scheme:id:permissions, 下面从这三个方面分别来介绍: scheme scheme对应于采用哪种方案来进行权限管理,zookeeper实现了一个pluggable的ACL方案,可以通过扩展scheme,来扩展ACL的机制。zookeeper-3.4.4缺省支持下面几种scheme: world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的 auth: 它不需要id, 只要是通过authentication的user都有权限(zookeeper支持通过kerberos来进行authencation, 也支持username/password形式的authentication) digest: 它对应的id为username:BASE64(SHA1(password)),它需要先通过username:password形式的authentication ip: 它对应的id为客户机的IP地址,设置的时候可以设置一个ip段,比如ip:192.168.1.0/16, 表示匹配前16个bit的IP段 super: 在这种scheme情况下,对应的id拥有超级权限,可以做任何事情(cdrwa) 另外,zookeeper-3.4.4的代码中还提供了对sasl的支持,不过缺省是没有开启的,需要配置才能启用,具体怎么配置在下文中介绍。 sasl: sasl的对应的id,是一个通过sasl…
2024-11-19 阅读全文 →
FWQ
服务器教程
Kafka的安装与命令
官方的网站:http://kafka.apache.org 官方的下载:http://kafka.apache.org/downloads   选择使用scala2.11编译kafka最新稳定版本: kafka_2.11-0.10.1.1.tgz 安装 下载的是已经使用scala编译过的,可以直接使用。但在使用前需要安装zookeeper,安装zookeeper 参考:Zookeeper的安装、Zookeeper配置 配置zookeeper后,采用如下的代码启动: ./kafka-server-start.sh ../config/server.properties  & kafka的详细配置参考:kafka的配置 命令 在bin的目录下(除windows外)有众多的shell脚本,这些都是kafka的管理命令,是不是觉得有点多,下面 来逐个介绍下: connect-distributed.sh distributed的中文释义分布式, connect-standalone.sh kafka-acls.sh kafka-configs.sh kafka-console-consumer.sh kafka-console-producer.sh kafka-consumer-groups.sh kafka-consumer-offset-checker.sh kafka-consumer-perf-test.sh kafka-mirror-maker.sh kafka-preferred-replica-election.sh kafka-producer-perf-test.sh…
2024-11-19 阅读全文 →
FWQ
服务器教程
Haproxy的安装与启动
haproxy的官方地址:http://www.haproxy.org HAproxy的官方学习文档:http://cbonte.github.io/haproxy-dconv/1.7/intro.html   下载:http://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz # tar xzf haproxy-1.7.2.tar.gz # cd haproxy-1.7.2 # make PREFIX=/usr/local/haproxy/ TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 # make install PREFIX=/usr/local/haproxy/ 安装可参考:https://github.com/haproxy/haproxy-1.5 Tips 1:为什么目录中没有configure?先来熟悉下一般软件的安装过程 使用configure配置软件(例如:prefix=/usr/local/xxx),会生成 Makefile make,开始编译,把源代码编译成可执行二进制代码…
2024-11-19 阅读全文 →
FWQ
服务器教程
Haproxy中的log的设置原理解析
在理解Haproxy的Log设置原理之前,先来了解下Linux中的系统日志服务。系统日志服务和其他服务一样(如web服务nginx、httpd),也有启动、停止、配置等,运行原理这里不详细介绍了。   下面以centos7为例: 配置 配置文件:/etc/rsyslog.conf 配置目录:/etc/rsyslog.d/ 也是在rsyslog.conf中include下rsyslog.d下的所有文件 启动、重启、停止命令 systemctl start rsyslog systemctl stop rsyslog systemctl restart rsyslog 命令logger的使用: logger [options] [messages] options: -d, --udp  使用数据报(UDP)而不是使用默认的流连接(TCP) -i, --id 逐行记录每一次logger的进程ID…
2024-11-19 阅读全文 →
FWQ
服务器教程
Haproxy中的Log的相关配置详解
在官方的文档中:http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#log 定义Log的使用格式: log <address> [len <length>] [format <format>] <facility> [max level [min level]] #支持global、defaults、frontend、backend、listen Tips 1:log 支持多条,在配置中可以配置多条log,例如配置access,error 2个日志. Tips 2:日志的级别 emerg  alert  crit   err    warning notice info  debug,共8个…
2024-11-19 阅读全文 →
FWQ
服务器教程
HTTP协议中的14种请求方法
请求方法是请求一定的Web页面的程序或用于特定的URL。 可选用下列几种:   GET: 请求指定的页面信息,并返回实体主体。 HEAD: 只请求页面的首部。 POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。 PUT: 从客户端向服务器传送的数据取代指定的文档的内容。 DELETE: 请求服务器删除指定的页面。 OPTIONS: 允许客户端查看服务器的性能。 TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。 PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。 MOVE: 请求服务器将指定的页面移至另一个网络地址。 COPY: 请求服务器将指定的页面拷贝至另一个网络地址。 LINK: 请求服务器建立链接关系。 UNLINK: 断开链接关系。 WRAPPED:…
2024-11-19 阅读全文 →
FWQ
服务器教程
Haproxy中几种健康检查的使用
在Haproxy中有httpchk、ssl-hello-chk 下面来逐个介绍下这几种健康检查的使用,了解了这些就应该清楚知道怎么设置haproxy对后端服务的检查检查了。   一、option httpchk 从字面理解,我都能知道大概含义,http check,没错,这个设置表示开启后端服务器的http健康检查。下面来看下在haproxy中是如何设置的。 通用格式: option httpchk option httpchk <uri> option httpchk <method> <uri> option httpchk <method> <uri> <version> 在default、backend、listen使用,禁止在frontend使用。 method:可以指定http协议中的方法,可参考:HTTP协议中的14种请求方法,默认使用 OPTIONS,然使用OPTIONS  对后端服务器的性能影响最小。 uri:默认 /…
2024-11-19 阅读全文 →