在重新发明轮子之前,我正在寻找符合以下要求的开源项目的指针。
我考虑过以下解决方案: - ejabbered——更像是一个消息框架 - rabitmq——理论上可以实现该功能,但每次我访问其网站都会被抽象概念淹没。它似乎准备了做任何工作。我甚至无法确定它是否具有任何形式的持久性。
编辑添加:这是一个关于使用locker进行分布式锁定的幻灯片。看起来它解决了问题的关键部分(如果想要自己编写)。 http://www.slideshare.net/knutnesheim/locker-distributed-consistent-locking 进一步编辑:我真的想找比RabbitMQ更轻量级的东西。我知道它可以做我想要的事情,但学习它的成本似乎与自己完成相当,最终定制解决方案会更接近我真正需要的东西。
- 使用Erlang实现,尽管如果没有太多的附属问题(例如:依赖关系的迷宫),则可以使用Go或C。
- 在Erlang中有端点或客户端(例如:当我执行作业时,我希望运行Erlang代码。)
- 将作业分配给节点,并调用一些Erlang函数来执行作业。
- 以某种方式保留作业
- 没有主节点,没有单点故障
- 同质化架构
- 管理可能会积压的作业队列,而不会丢弃作业
- 重复执行作业是可以接受的
- 类似于Riak或Couchbase的操作配置文件(例如:启动一个节点,然后启动其他节点并将它们指向该节点。)
我考虑过以下解决方案: - ejabbered——更像是一个消息框架 - rabitmq——理论上可以实现该功能,但每次我访问其网站都会被抽象概念淹没。它似乎准备了做任何工作。我甚至无法确定它是否具有任何形式的持久性。
编辑添加:这是一个关于使用locker进行分布式锁定的幻灯片。看起来它解决了问题的关键部分(如果想要自己编写)。 http://www.slideshare.net/knutnesheim/locker-distributed-consistent-locking 进一步编辑:我真的想找比RabbitMQ更轻量级的东西。我知道它可以做我想要的事情,但学习它的成本似乎与自己完成相当,最终定制解决方案会更接近我真正需要的东西。