我想建立一个聊天应用程序(基于PHP和nodejs),数据库将是DynamoDB。这个Web应用程序的数据将非常大(数十亿行),用户将超过1000万
要求:
- 用户可以访问网站并在那里聊天(包括网络和移动设备)
- 进入网络/聊天时,来自亚洲地区和美国地区的用户必须在该地区进行路由
区域将来会增加,现在我遇到了2个区域实例之间同步数据的问题,以及应用程序的性能。这是我找到的2个解决方案:
1.使用2个带有2个dynamodb的实例,然后使用Route 53来路由流量,但问题是我不知道nodejs服务器如何与2个数据库同步数据
2.使用2个带1个dynamodb的实例(但我不知道放置数据的区域,因为性能不佳)
还有一件事:我将使用S3存储资源,但我担心太多地区(未来)的加载速度。
有什么想法来改进这个解决方案吗?
答案 0 :(得分:0)
聊天平台上的大多数用户都会围绕特定区域。我认为你可以充分利用这两种解决方案。使用cross region replication同步两个DynamoDB表中的更改,每个区域一个。您可以使用自己的lambda函数或cross-region replication library来完成此操作。因此,您可以掌握在亚洲AWS区域中在亚洲创建帐户的用户,并掌握在北美AWS区域中创建的帐户。然后,在您设置的lambda函数上,仅将更改传播到未在另一个表中控制的项目(这样您就不会在相互写入的流中无限循环)。