我有一个3层的应用程序。我的问题与aws上的spring boot rest api中间层和mongodb后端有关。我正在考虑在弹性beanstalk/单容器选项中运行mongodb docker容器,以扩展后端。
我的rest api将作为docker容器在单独的弹性beanstalk环境中运行。
我的理解是elastic beanstalk将根据需要扩展停靠的mongodb服务。
高级架构:
前端- Angular - s3静态网站托管
中间层-3 Spring boot rest服务-3个独立的环境,使用弹性bean stalk扩展的单个容器docker。
Backend - Mongodb -单Docker容器,弹性豆柄伸缩。
问题:
Qn:这会奏效吗?每一层都会扩展吗?rest服务能够连接到数据库吗?这个要多少钱?中间层和后端之间的延迟会不会太大?
Qn:这是不是出于任何原因而进行的一次大胆的追逐,这有一些我看不到的障碍?我对这种方法的研究几乎一无所获。会有人甚至不鼓励尝试这样做吗?:)
备注:
弹性豆茎似乎以稍高的成本提供了便利。我愿意接受它,因为我只是在测试。Kubernetes/docker swarm看起来过于复杂和耗时,因为我需要在短期内专注于应用程序功能。
我应该能够将卷映射到aws中的物理位置。我猜是弹性块存储或EFS。有什么利弊或更好的选择吗?
我意识到我可以使用瘦罐子来提高效率。
我使用部署在EC2上的mongodb对其进行了测试。我应该能够设置它来工作,启动配置和自动伸缩组。但我认为它会更昂贵,而且可能会有更多的工作。
发布于 2020-04-12 03:46:58
我不确定您所说的“使用弹性豆茎扩展的单个Docker容器”是什么意思,但如果您打算推出更多运行MongoDB的容器,实际情况要比这复杂一点。
虽然MongoDB确实水平扩展,但当在副本集拓扑中启动新节点时,它:
必须向副本集configuration
上的数据
有一些工具可以同时处理这两种需求,但仅仅调用另一个容器是不够的。
分片集群甚至更复杂,因为需要将节点分配到分片中,因此需要做出两个级别的管理决策。
我需要在近期专注于应用程序功能。
您可以考虑MongoDB地图集,它将为您处理所有这些。有可用的free tier。
https://stackoverflow.com/questions/61159730
复制相似问题