Web クラスターにはn 個のノードがあります。ファイルは任意のノードにアップロードでき、その後、他のすべてのノードに配布する必要があります。この分散は、トランザクションで発生する必要はありません (実際、分散トランザクションはスケーリングされません)。最小限である必要がありますが、多少の遅延は許容されます。最終的にすべてのノードが同じファイルのセットを持つように、解決がすべてのノードにも分散される場合、競合は任意に解決できます (通常、最後の書き込みが優先されます)。既存のノードを再構成することなく、ノードを動的に追加および削除できます。単一障害点があってはならず、これを解決するために追加のボックス (RabbitMQ など) は必要ありません。
私は動的構成に consul.io を使用して、各ノードが consul を参照して他のノードが利用可能かどうかを判断し、関連するフォルダーを監視し、ZeroMQ を使用して他のノードと通信するデーモン (Golang) を作成することを考えています。
でも、車輪を再発明するような気がします。これは一般的な問題であり、私が知らない解決策が既に利用可能であると思いますか? それとも、私のアプローチが間違っていて、これを解決する別の方法がありますか?