本来这个模块是不想显示出来的!
但是在测试的时候我发现一个问题
使用集群的时候不是需要给一个列表么
如果节点够多,就不太可能每个列表都配置
所以有时候就可能漏了!
比如1501,1502,1503,1504
如果运行一段时间后,
我关闭了1503,1504
经过PasteCluster内部重新选举后,就剩下1501,1502了
如果我1503,1504只配置了他们自己
这个时候启动1503!!!
就会造成2个集群,1501+1502 和1503
这个时候需要告诉1503还有一个节点1502
这个时候我们就需要有一个地方查看当前的集群列表
可以手动的添加节点
不需要删除节点,因为删除节点是Master的事情
在PasteCluster组件中,Master会隔一段时间检查各个节点的信息
有异常的,经过多次确认后,会从列表移除,然后同步给所有节点!
在PasteSpider中的PasteCluster组件的规则是
使用host和name来决定节点!
看配置信息
SloveToken:相当于安全密钥,防止别的集群乱入到当前系统,所以同一个集群这个配置一致!
ClusterHost:表示这个集群的节点列表,其实格式支持
多种方式
1.多个之间使用;隔开
2.每个支持多种格式
host,id,groupid,name
使用,隔开,注意如果没有的要用默认值,比如
http://172.11.2.3:7800,0,0,default
其中格式如下
字段 | 说明 | 示例 |
---|---|---|
host | 节点地址 | http://172.12.3.2:10290 |
id | ID,这个没啥用在PasteSpider系统中 | 0 |
groupid | 组id | 0 |
name | 节点名称 | group1 |
CurrentHost:当前节点的地址,对应上面的host
CurrentName:当前节点的名称,对应上面的name
我们已知,PasteSpider的任务需要服务器来执行
任务的分配规则是,创建任务的时候就知道是哪个服务器了,
然后读取服务器的节点名称
然后通过PasteCluster把任务发送给对应的节点
节点获得信息后,在对应得服务器上执行任务!
这个是给集群部署的时候使用的
你可以这么理解
每个PasteSpidre都有一个名字
就是在配置文件中的
注意看上面的就是
GroupName
在定义中需要和下面的配置的CurrentName一致
表示当前这个PasteSpider的节点名称
启用集群的缓存模式必须是redis!
对应的数据库就不能使用sqlite了!
这个节点需要维护或者管理哪些服务器,则需要把服务器的节点
配置一致
表示这个服务器是由这个节点维护的!
这里是指PasteSpider节点互通的地址
注意格式
格式为http://172.11.23.2:8900
注意最后面没有/,
然后节点之间要能互通,最好使用局域网IP访问
提升访问速度的同时也免流量费用!
一个节点维护几个服务器合适?
节点维护服务器得原则规则是什么?
如果服务器得模式不一(windows/linux/container)是否可以混用?
如果不使用私有仓库(docker registory)模式,系统是如何同步镜像的?