首页/新闻资讯/正文详情

10. 软件设计架构-微服务-部署和架构模式

发布时间:2026/11/4 7:16:31 来源:云帆数科 栏目:资讯中心
10. 软件设计架构-微服务-部署和架构模式
文章目录前言微服务部署微服务多实例部署微服务容器化部署微服务Serverless部署微服务容器编排部署微服务架构模式微服务聚合模式微服务共享模式微服务代理模式微服务异步消息模式前言微服务部署微服务部署是微服务非常重要的环节下面详解4种常见的微服务部署案例微服务多实例部署微服务多实例部署是微服务架构中最基础、最常见的部署模式通过为每个微服务部署多个运行实例。如下图所示比如在一台服务器上部署了用户服务 (User Service) 的两个实例。实例1server:port:8081spring:application:name:user-service实例2server:port:8082spring:application:name:user-service每个微服务实例必须监听不同的网络端口以避免端口冲突。然而需要注意单台服务器的资源限制、和潜在的单点故障风险。比如单台服务器的 CPU、内存和网络资源是有限的运行过多的实例可能会导致资源竞争反而降低性能。对于生产环境中的关键微服务建议考虑跨多台服务器的分布式部署。微服务容器化部署微服务容器化部署是一种将每个微服务、及其所有依赖项打包到独立容器中的部署方法。如下图所示可以使用Docker(最流行的容器化平台)用于构建、打包、分发和运行容器。Docker 将微服务及其运行环境JDK、依赖库等打包成镜像。dockerbuild-tuser-service:1.0.无论部署在哪台服务器上都能保持行为一致。dockerrun-d-p8080:8080--name user-service user-service:1.0大大减少了“开发能跑、测试能跑、线上跑不了”的问题。真正做到一次构建到处运行Build once, run anywhere。微服务Serverless部署微服务 Serverless 部署是一种将服务部署、和运行责任交给云平台的现代架构方式。微服务 Serverless 部署带来了与传统容器化部署不同的价值它进一步抽象了基础设施管理让开发者更专注于业务逻辑。Serverless 平台比如 AWS Lambda…等等负责底层的基础设施管理。开发者无需关心这些运维细节可以将更多精力投入到业务代码的编写。Serverless 部署通常根据实际的请求量自动弹性伸缩无需预先配置或管理实例。只为实际执行的计算资源付费闲置时不产生费用可以显著降低成本尤其对于流量波动较大的服务。微服务容器编排部署除此之外还可以结合容器化、与自动化编排比如K8S等来部署。如下图所示1. 用户请求2. │3. ┌─▼──────┐4. │Ingress│⇽⇽Nginx入口控制器5. └─┬──────┘6. │7. ┌─▼────────────┐8. │Service(ClusterIP)│⇽⇽微服务的内部服务发现9. └─┬────────────┘10. │11. ┌─▼────────────┐12. │Pod多个副本│⇽⇽每个Pod运行1个微服务实例13. └──────────────┘Kubernetes 可以自动化微服务的部署、更新和回滚过程大大简化了发布流程。Kubernetes 可以在各种环境中部署包括公有云、私有云和混合云。Kubernetes 解决了大规模微服务部署、和管理中的诸多挑战。微服务架构模式微服务是大型架构的基石下面详解4大主流微服务架构方案微服务聚合模式微服务聚合设计模式解决了如何从多个微服务中聚合数据以便客户端可以获得所需的完整信息而不需要多次请求不同的服务。此类模式主要用于简化客户端的操作减少与多个微服务交互的复杂性。如下图所示通过构建一个聚合服务又称聚合层或聚合微服务将多个微服务的响应数据进行聚合形成一个统一的结果返回给客户端。聚合服务通过调用多个微服务的 API收集它们的响应并进行整合。优点简化客户端请求客户端只需调用聚合服务不需要直接与多个微服务交互。减少服务间依赖聚合服务可以减轻微服务之间的耦合度服务间可以独立变化。缺点聚合服务可能成为性能瓶颈需特别关注聚合服务的可扩展性。如果聚合的服务很多可能需要额外的处理来确保高效聚合。微服务共享模式微服务提倡的是每个服务拥有自己的独立数据库比如数据库独立性原则以确保服务之间的高内聚性、和低耦合性。然而在某些情况下由于业务需求或技术限制多个微服务可能需要共享数据。如下图所示实际上在微服务架构的初期阶段很多企业可能会采用 共享数据库 模式来简化系统的开发和维护尤其是在微服务迁移的过渡阶段。这样做虽然简化了架构但却违反了微服务的原则因为它导致了微服务之间的紧密耦合。因此“共享数据库”模式通常被视为“过渡性”或“反模式”不是长期推荐的设计。微服务代理模式微服务代理是一种中间层用于处理服务之间的通信。如下图所示在这种模式下代理服务充当了其他微服务的代理接收客户端的请求并将其转发给后端服务进行处理。在 Sidecar 代理模式 中Sidecar 是与每个微服务实例配对部署的。每个微服务实例旁边都有一个独立的代理进程这些代理共同组成一个统一的服务网格。代理负责捕获并管理服务的入站和出站流量。代理通常会与服务网格的 控制平面 交互获取流量路由、负载均衡、访问策略等配置。优点解耦客户端和微服务之间的交互通过代理服务来处理。统一入口所有请求都经过代理易于管理、监控和控制。缺点代理服务需要额外的资源来处理请求可能成为性能瓶颈。微服务异步消息模式异步消息设计模式在微服务架构中非常重要它允许微服务通过消息队列、事件流等方式进行松散耦合的通信。如下图所示微服务通过发布事件来通知其他服务发生了某个状态变化。事件通常是业务变化或数据变化的通知例如订单创建、支付成功…等。优点服务解耦服务之间不需要直接调用只有事件通知机制。提高吞吐量通过异步处理减少了服务的同步依赖。缺点事件的顺序和一致性需要额外考虑容易出现“事件丢失”或“消息重复消费”的问题。本文的引用仅限自我学习如有侵权请联系作者删除。参考知识微服务部署案例详解(4大部署案例)微服务架构方案详解(4大架构模式)

相关推荐

本地RAG知识库问答系统实战:小白也能轻松上手大模型,含收藏功能!
本地RAG知识库问答系统实战:小白也能轻松上手大模型,含收藏功能!

本文介绍一个可直接运行的本地RAG知识库问答系统,使用Python、Streamlit构建Web页面,整合LangChain文本切分、ChromaDB向量库及Ollama本地大模型。系统支持TXT、Markdown、PDF文档,切分向量化后存入库,用户提问时检索Top-K片段并生… · 2026/11/4 7:16:31

小白程序员轻松入门大模型:2026最新完整学习路线图
小白程序员轻松入门大模型:2026最新完整学习路线图

本文提供了一份清晰的AI大模型四阶段学习路线,帮助零基础转行者和有经验的开发者系统学习。从Python与Web开发基础,到Prompt工程、RAG、Agent等AI大模型应用开发,再到算法原理深化与综合实战,每个阶段都有明确目标、核心内容和实战… · 2026/11/4 7:15:31

FDE:AI时代最抢手的岗位,年薪高达128万美元,小白也能抓住这个风口!
FDE:AI时代最抢手的岗位,年薪高达128万美元,小白也能抓住这个风口!

FDE(前沿部署工程师)作为连接AI技术与商业的桥梁,正成为AI人才市场的新宠。该岗位需求暴涨,薪资高企,尤其在硅谷和国内一线城市。FDE不仅需要技术能力,还需懂业务、能交付,是复合型人才的体现。… · 2026/11/4 7:15:31

antd-mobile 从 0 到 1:5 分钟跑通,4 个页面场景搭出你的第一个 H5
antd-mobile 从 0 到 1:5 分钟跑通,4 个页面场景搭出你的第一个 H5

antd-mobile 从 0 到 1:5 分钟跑通,4 个页面场景搭出你的第一个 H5 【免费下载链接】ant-design-mobile Essential UI blocks for building mobile web apps. 项目地址: https://gitcode.com/gh_mirrors/an/ant-design-mobile 做移动端 H5&#x… · 2026/11/4 11:09:45

三月七小助手:星穹铁道清体力与日常任务自动化实践笔记
三月七小助手:星穹铁道清体力与日常任务自动化实践笔记

三月七小助手:星穹铁道清体力与日常任务自动化实践笔记 【免费下载链接】March7thAssistant 日常交给三月七,开拓留给你。《崩坏:星穹铁道》开源自动化助手。 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 三月七小… · 2026/11/4 11:09:45

TA-Lib Python 蜡烛图形态识别完全指南:61 个 CDL 形态一次讲透
TA-Lib Python 蜡烛图形态识别完全指南:61 个 CDL 形态一次讲透

TA-Lib Python 蜡烛图形态识别完全指南:61 个 CDL 形态一次讲透 【免费下载链接】ta-lib-python Python wrapper for TA-Lib (http://ta-lib.org/). 项目地址: https://gitcode.com/gh_mirrors/ta/ta-lib-python 拿到一段 open/high/low/close 数据后&#x… · 2026/11/4 11:09:45

星穹铁道自动清体力:March7thAssistant 让每天上线的重复劳动变成后台任务
星穹铁道自动清体力:March7thAssistant 让每天上线的重复劳动变成后台任务

星穹铁道自动清体力:March7thAssistant 让每天上线的重复劳动变成后台任务 【免费下载链接】March7thAssistant 日常交给三月七,开拓留给你。《崩坏:星穹铁道》开源自动化助手。 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssi… · 2026/11/4 11:09:45

bandwhich 终端带宽监控工具:从源码编译到安装排错一次跑通
bandwhich 终端带宽监控工具:从源码编译到安装排错一次跑通

bandwhich 终端带宽监控工具:从源码编译到安装排错一次跑通 【免费下载链接】bandwhich Terminal bandwidth utilization tool 项目地址: https://gitcode.com/gh_mirrors/ba/bandwhich bandwhich 是一款终端带宽监控工具,能按进程、连接、远端 I… · 2026/11/4 11:09:45

优化Hermes Agent的并发编程模型:多线程与异步IO比较
优化Hermes Agent的并发编程模型:多线程与异步IO比较

优化Hermes Agent的并发编程模型:多线程与异步IO比较 在现代AI代理系统中,高效处理并发任务是提升性能的关键。Hermes Agent作为一款强大的AI代理框架,采用了多线程与异步IO相结合的并发编程模型,以应对复杂的任务处理需求。本文将… · 2026/11/4 11:08:43

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码