整体架构
本系统是基于rabbitmq的分布式架构, node可水平扩展,当当前计算资源无法满足业务量时,可以通过增加服务器来提高系统吞吐量. 每台服务器内可存在多个容器(docker),每个node内单独运行了一个worker和一个browser,它们成对出现。因此,node,worker,browser是我们系统约定的一对一对一出现的。下述用node指代。
每个node里可同时运行多个 profile, 本系统约定每个profile绑定了一个facebook账号。
本系统约定每个账号只能同时做一个任务,即只能同时拥有一个状态。
调用方式
本系统通过rabbitmq暴露对外提供一致的 api, 用户可以通过rabbitmq的rpc调用方式来调用本系统的api。 rabbitmq使用topic路由模式,调用方根据不同的routing key可调用不同的命令。
调用时的路由器为 report_exchange
routing key 约定为 node{nodeId}.{command},nodeId和command分别指节点id,和具体的操作指令, 如 node18.open指在 node id为18的节点上调用open命令。
TIP
具体的命令列表和参数请参考本文档的其他章节.
响应方式
通过 report_exchange 交换机,以 node{nodeId}.{type}为 routing key进行主动推送。
TIP
具体的响应类型可参考本文档的其他章节