标签:tcp协议 服务端 pre add for 机器 效率 corba mit
RPC是什么RPC(Remote Procedure Call,远程过程调用)容许程序调用另一个地址空间的过程或者函数。
RPC的实现方式很多,可以基于常见的HTTP协议,也可以在TCP上层封装自己的协议,由于HTTP报头较为冗长,性能较差,基于TCP协议的RPC可以建立长连接,速度和效率明显。
在分布式系统中,最重要的就是各个服务之间的RPC调用。
客户端从一个服务注册服务表中查询,客户端利用负载均衡算法从多个服务实例中选择出一个,然后发出请求。
客户端通过向代理服务器提出请求,代理服务器通过负载均衡算法,查询服务器列表,实现服务转发。
服务发现关键的服务注册表,服务注册表提供管理请求api的功能,常用的:
单点模式。有单点故障问题。
为分布式。在一台机器运行多个Zookeeper实例,仍然有单点故障问题。
完全分布式。多台机器部署zk集群,适合线上环境使用。
tickTime=2000:客户端与服务端维护心跳的时间间隔
dataDir:zk保存数据的目录
clientPort:zk服务端口号
initLimit:zk服务器集群中Follower服务器连接到Leader服务器最长能忍受的心跳时间间隔数
syncLimit:Leader与Follower之间发送数据,最长不能超过多少个tickTime
server.n=A:B:n是数字,代表是第几台服务器,A/B代表zk服务的ip地址
brew install zookeeper
找到zk的安装目录,执行
./zkServer start-foreground
./zkCli
常用命令:
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
[zk: localhost:2181(CONNECTED) 1] create /server "baidu.com" //创建节点
Created /server
[zk: localhost:2181(CONNECTED) 2] get /server //获取节点
baidu.com
cZxid = 0x10
ctime = Wed May 29 13:30:31 CST 2019
mZxid = 0x10
mtime = Wed May 29 13:30:31 CST 2019
pZxid = 0x10
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 9
numChildren = 0
标签:tcp协议 服务端 pre add for 机器 效率 corba mit
原文地址:https://blog.51cto.com/13990437/2402125