Web 集群中有n 个节点。文件可以上传到任何节点,然后必须分发到每个其他节点。这种分布不必发生在事务中(事实上它不能发生,分布式事务不能扩展)并且一些延迟是可以接受的,尽管必须是最小的。可以任意解决冲突(通常是最后一次写入获胜),前提是该解决方案也分发到所有节点,以便最终所有节点都具有相同的文件集。可以动态添加和删除节点,而无需重新配置现有节点。必须没有单点故障,也不需要额外的盒子来解决这个问题(例如 RabbitMQ)
我正在考虑使用 consul.io 进行动态配置,以便每个节点都可以参考 consul 来确定其他哪些节点可用,并编写一个守护程序(Golang)来监视相关文件夹并使用 ZeroMQ 与其他节点通信。
感觉就像我会重新发明轮子一样。这是一个常见问题,我希望已经有我不知道的可用解决方案?或者也许我的方法是错误的,还有另一种方法可以解决这个问题?