嗨,我对我遇到的两个设置的性能,可靠性和增长潜力有疑问.我离Docker或集群专家很远,所以任何建议或提示都会非常感激.
运行的典型MEAN堆栈Web应用程序Node v6.9.4.没有什么花哨,标准的设置.
a)具有NGINX(反向代理)和NodeJS的标准Linux服务器
b)具有NGINX(反向代理)和NodeJS集群的标准Linux服务器.使用Node的Cluster模块
c)使用NGINX的负载均衡器将"Dockerized"NodeJS应用程序克隆3次(3个容器).这个想法归功于Anand Sankar
// Example nginx load balance config
server app1:8000 weight=10 max_fails=3 fail_timeout=30s;
server app2:8000 weight=10 max_fails=3 fail_timeout=30s;
server app3:8000 weight=10 max_fails=3 fail_timeout=30s;
// Example docker-compose.yml
version: '2'
services:
nginx:
build: docker/definitions/nginx
links:
- app1:app1
- app2:app2
- app3:app3
ports:
- "80:80"
app1:
build: app/.
app2:
build: app/.
app3:
build: app/.
Run Code Online (Sandbox Code Playgroud)
d)所有在一起."Dockerized"NodeJS应用程序(多个容器),在3个容器内部和顶部配置了Cluster - NGINX的负载均衡器.
如果我正确地得到这个,有3个NodeJS容器运行应用程序,其中每个这些应用程序副本支持NodeJS群集,应该会带来令人难以置信的性能.
3个容器x 4个工作者,应该意味着12个节点来处理所有请求/响应.如果这是正确的,唯一的缺点是在硬件,机器方面更强大,以支持这一点.
无论如何,我的逻辑可能是完全错误的,所以我正在寻找任何评论或反馈!
我的目标是拥有生产就绪,稳定的环境,可以承担一些负担.我们不会同时谈论数千个并发连接,等等.保持基础架构的可扩展性和灵活性是一个很大的"+".
希望这个问题有道理.对不起,很长的帖子,但我想保持清醒.
谢谢!