我正在开发一种解决方案,该解决方案要求每1秒为我的每个用户进行一次网络呼叫。我只是意识到,由于一台计算机的计算和网络限制,一旦我说超过60,000个用户,它将无法扩展。 (目前,我有20个用户:()
我认为最好的方法是在多个节点(EC2或lambda实例)之间分配负载。但是我不确定如何在不同的节点之间分配/拆分要处理的用户数据,因为数据作为数据库中的单个表存在。
如果我有固定数量的节点,那么我可能可以根据一些简单的硬编码公式进行拆分-例如对于两个节点,节点#1获取所有奇数数据,节点#2获取所有偶数数据。但这不会自动从节点故障转移中恢复/恢复,因此每次要添加/删除节点时,我都必须更改硬编码方法。
主人/工人模型可以在主人跟踪活着的工人数量,告诉工人要处理的数据范围以及工人在完成加工时通知的情况下工作。
这是考虑未来可扩展性的正确方法吗?是否存在可以真正动态和分布式地实现这一目标的模型,而无需掌握模型?
在这种用例中是否有任何python / node框架和/或任何云服务会有所帮助?
PS。我不希望很快将其增长到60,000。只是想在设计时考虑到将来的规模。