This topic created in 2025 days ago, the information mentioned may be changed or developed.
我有一个使用 Flask 的 web 服务,运行端口为 8080 。
我想在生产环境部署多个实例,实例的数量可以很容易地增加和减少。对于服务客户来说,这些都不应该对它有任何影响。对于这个问题,我想到的是服务发现,服务实例会注册到注册中心,注册中心监控实例的状态,服务客户只需要知道注册中心即可。
因为默认端口为 8080,应该是一台服务器一个实例?还是多个实例,然后运行在不同的端口?因为我想显式地设置实例中的请求处理线程数量为 CPU 数量*一个常量,所以我更倾向于一台服务器一个实例。
想听听大家的意见以及最佳实践是怎样的。
Supplement 1 · Nov 20, 2020
谢谢大家的回复,我先去学习一下 Kubernetes 。
Supplement 2 · Nov 28, 2020
17 replies • 2020-11-20 15:26:55 +08:00
 |
|
2
ackfin01 Nov 20, 2020
一个实例一台服务器么。。多个实例放在一个服务器没有意义啊
|
 |
|
4
35aZ4P8mT576683q Nov 20, 2020 via Android
负载均衡是把 load 分摊到多个服务器,以解决单台服务器计算资源和网络带宽不足的问题 把一个实例克隆多份放到一台服务器,硬件资源还是那些,和一个实例多线程没有根本的区别吧
|
 |
|
5
yzbythesea Nov 20, 2020
envoy + client load balancing
|
 |
|
6
opengps Nov 20, 2020 via Android
一台服务器一个实例,这是云架构弹性伸缩的思路,大型网站几乎必备,可以配合弹性伸缩服务自动增减服务器组的数量。这个用法欢迎跟我沟通下,我做上云支持业务,沟通下互相提升! 一台服务器上多个实例,这是微服务的用法,很多初期用户不多的网站的常见做法
|
 |
|
8
XSugar Nov 20, 2020 via iPhone
考虑下 k8s 、可以忽略机器层
|
 |
|
9
THESDZ Nov 20, 2020
k8s 太重了,要是没那么多需求,dockerswarm+portainer 就行
|
 |
|
10
676529483 Nov 20, 2020
多个机器可以 k8s,一台机器可以 k3s,都不想搞允许重新发布可以 uwsgi/gunicorn 多 worker
|
 |
|
11
pepesii Nov 20, 2020
如果不用 k8s,就 nginx upstream 加上负载均衡策略和健康检测就好了 如果上 k8s,那就直接 ingress + deployment 搞定了
|
 |
|
15
cheng6563 Nov 20, 2020
嫌 k8s 太重的可以用 k3s,dockerswarm 功能太残了。 机器少不用容器的话就可以 nginx 一把梭
|
 |
|
17
lavvrence Nov 20, 2020
用 Docker 去运行你的单个实例,用 Kubernetes 去编排 Docker 。 掌握核心的 Service 、Deployment ( Pod )、Ingress 等概念就能做基本的编排了,后续学 HPA 的时候可以根据 CPU 的毫核指标等动态的扩缩你的实例。
|