微服务多实例部署
在虚拟机或物理机上,每个微服务作为一个独立的进程运行,可通过部署多个实例实现横向扩展。

比如:订单服务部署 3 个实例,分别运行在 3 台虚拟机上。
- upstream order_service {
- server 10.0.0.1:8080;
- server 10.0.0.2:8080;
- server 10.0.0.3:8080;
- }
- server {
- listen 80;
- location /order/{
- proxy_pass http://order_service;
- }
- }
部署简单,易于理解,传统企业迁移微服务时常用。
但是,扩缩容速度慢,不利于高频次变更与短时弹性需求。
微服务容器化部署
容器化部署以 Docker 等容器技术为核心,将微服务打包为轻量级、可移植的容器。
运行在宿主机的容器运行时上,也可以在单机、或多主机环境通过自定义编排脚本启动容器。

- [宿主机]
- ├──[订单服务容器1]
- ├──[订单服务容器2]
- └──[用户服务容器]
一次构建,到处运行;资源隔离性好,启动速度快。
但是,容器数量多时,需要额外的编排与管理工具。
微服务容器编排部署
当微服务数量达到数十个甚至上百个时,手动管理 Docker 容器集群是不可行的。
Kubernetes (K8s) 是事实上的容器编排标准,它负责容器的自动部署、弹性伸缩、自愈能力和负载均衡。

- [K8s Node1]──Pod(Order)
- [K8s Node2]──Pod(Order)
- [K8s Node3]──Pod(User)
- │
- [K8s Service]
- │
- [Ingress/ API Gateway]
自动化程度高,具备自愈能力、弹性伸缩能力,适合大规模微服务集群。
但是,学习曲线高,集群搭建与维护复杂。
微服务Serverless部署
无服务器部署,将运行时和基础设施管理交给云厂商或平台服务,开发者只需关心函数或服务逻辑。

无需管理底层服务器,自动伸缩与高可用由平台负责。
适合:流量波动大,闲时流量低,需要极致的按需付费。

897

被折叠的 条评论
为什么被折叠?



