一个项目的分布式设计及遇到的问题
有一个项目设想使用以下描述的分布式解决方案。其分为三层结构:最高层为web前端,中间为调度层(或者叫做master,部署在一台主机上),最下面是执行层(或者叫slaver,有多个,地位相同,分布在不同的多个机器上,并行做同种类型的任务)。可以通过web向中间层发送任务消息,调度层根据特定的调度算法选择交给下面的执行层的某些主机去执行。执行层的主机可以并行处理同种类型的任务。
设想调度层监听一个端口,该端口接收来自web的消息。同时调度层可以控制执行层的各个主机程序,为各执行层主机分配任务,并可以接收来自执行层各主机的状态反馈信息。也就是说,调度层对于web相当于服务器;而对于执行层来说,调度层和执行层互为客户端和服务器端(调度层可以分配任务给执行层,执行层也可反馈状态信息给调度层,它们之间的消息传递借助于socket)
问题是:
(1)以上的设计是否可行?
(2)有没有类似的设计实现或者开源项目?
(3)还有就是执行层反馈给调度层的消息类型是多种多样的,设想是事先定义好各种类型的消息。因为通过socket获得的消息都是字符串,则必然要在消息处理端解析字符串还原成原始的消息内容(原始消息可能是结构体),有没有标准的数据格式可供使用,比如像SOIF?
烦请大牛指点……