2026/5/24 1:34:52
网站建设
项目流程
大型网站建设推广,vue网站引导页怎么做,赣州市铁路建设办公室网站,app代理推广平台分布式系统
简单理解
分布式系统 多台机器一起干活#xff0c;对外看起来像一台 想象一下#xff1a;你开了一家奶茶店。最开始你一个人搞定所有事——接单、做奶茶、收钱。但生意太好了#xff0c;一个人忙不过来#xff0c;于是你雇了3个员工#xff1a;一个专门接单…分布式系统简单理解分布式系统 多台机器一起干活对外看起来像一台想象一下你开了一家奶茶店。最开始你一个人搞定所有事——接单、做奶茶、收钱。但生意太好了一个人忙不过来于是你雇了3个员工一个专门接单一个专门做奶茶一个专门打包。虽然分工不同但顾客只看到“这家店”并不关心里面几个人在干活。这就是分布式系统的核心思想把一个大任务拆成多个小任务交给多台服务器或进程协作完成但对用户来说它还是“一个系统”。分布式系统是由多个独立计算机组成的网络这些计算机通过消息传递协同工作对外表现为一个统一的整体。或者这样理解想象一下一个大公司不同部门分布在不同的办公楼里每个部门各司其职但又需要互相配合完成公司整体业务——这就是分布式系统的核心思想。简单定义一个系统被拆分成多个部分部署在多台机器或服务器上这些部分通过网络通信协作对外提供统一的服务。分布式系统的关键特征多节点部署系统组件运行在不同的计算机或服务器上网络通信节点之间通过网络进行通信和数据交换资源共享各个节点可以共享计算、存储等资源并发处理不同节点可以同时处理任务提高效率分布式系统当你的系统满足以下条件之一时它就是一个分布式系统数据库主从复制一个数据库写数据多个数据库读数据应用集群部署同一个应用部署在多台服务器通过负载均衡分发请求前后端分离前端、后端、数据库分别部署在不同服务器缓存与数据库分离Redis缓存和MySQL数据库部署在不同机器常见的用户量大的系统比如淘宝、微信数据量太大单机存不下比如日志系统、大数据平台需要高可用不能因为一台机器挂了整个系统瘫痪只要你的系统部署在两台及以上服务器上并且需要协同工作就是分布式系统。面试官常问问题为什么用分布式单机性能有瓶颈CPU、内存、磁盘、网络提升可用性一台挂了其他还能撑横向扩展方便加机器就行“单台服务器能力有限就像一个人搬不动太重的东西。分布式系统可以把工作分摊给多台机器提高处理能力、可靠性和扩展性。”技术点高并发处理应对大量用户访问高可用性一台机器挂了其他还能继续服务横向扩展通过增加机器提升系统能力分布式系统有哪些挑战网络延迟 不可靠可能丢包、超时数据一致性问题CAP 理论分布式事务比如跨库转账服务发现与负载均衡“就像多部门协作沟通成本会增加。分布式系统面临网络延迟、数据一致性、节点故障等问题。”核心挑战网络问题延迟、丢包、超时数据一致性多个节点数据如何保持同步节点故障如何容错和自动恢复CAP 理论是什么CConsistency一致性 所有节点数据同步AAvailability可用性 每次请求都有响应PPartition tolerance分区容错性 网络分区时系统仍能工作三者最多只能同时满足两个。实际系统通常选 AP 或 CP。实际中通常要取舍比如电商库存系统优先保证一致性而用户评论系统可能优先保证可用性。”微服务架构简单理解微服务 把一个大应用拆成一堆小应用每个小应用独立开发、部署、运行继续用奶茶店举例以前你有一个“全能系统”——前台后厨仓库全在一个程序里。现在你把它拆成订单服务管下单库存服务管原料支付服务管收钱用户服务管会员每个服务都是独立的 Java 应用可以单独上线、扩缩容、用不同技术栈。它们之间通过 HTTP 或 RPC 通信。/微服务是分布式系统的一种具体实现方式。如果把传统单体应用比作一个“全能型手工作坊”那么微服务架构就像是一个“现代化专业工厂”每个车间服务专门负责一个生产环节。简单定义将一个大型应用拆分为一组小型、独立的服务每个服务围绕特定业务功能构建可以独立开发、部署和扩展。微服务架构是一种将单一应用程序划分为一组小型服务的方法每个服务运行在自己的进程中服务间通过轻量级通信机制如 REST、gRPC协作。核心思想单体应用 → 拆解 → 多个微服务一个巨人 一群专业小团队微服务架构系统模块边界清晰比如电商的订单、商品、用户团队规模大需要并行开发需要快速迭代、独立部署某个功能只要你的系统被拆成多个独立部署的服务且每个服务职责单一就是微服务架构。微服务架构的典型特征服务拆分按业务领域划分如用户服务、订单服务、商品服务独立部署每个服务可以单独部署不影响其他服务技术异构不同服务可以使用不同的技术栈独立数据库每个服务有自己的数据库或数据库表用户服务 商品服务 订单服务 支付服务 ↓ ↓ ↓ ↓ 独立部署 独立部署 独立部署 独立部署 ↓ ↓ ↓ ↓ 用户数据库 商品数据库 订单数据库 支付数据库面试官常问问题微服务 vs 单体架构单体开发简单但部署慢、扩展难、技术栈统一微服务灵活、可扩展但运维复杂、调试困难“微服务让系统更灵活。比如双十一时订单服务压力大可以单独给订单服务增加服务器而不需要扩容整个系统。”主要优点独立开发部署团队可以独立工作互不干扰技术栈灵活不同服务可用最适合的技术容错性更好一个服务出问题不影响整个系统易于扩展可以按需扩展某个具体服务微服务怎么通信同步HTTPREST、gRPC、Dubbo异步消息队列Kafka、RabbitMQ微服务有什么缺点或挑战“管理复杂度增加了。原本一个应用现在变成了几十个服务需要考虑服务通信、监控、部署等问题。”主要挑战运维复杂度需要管理大量服务实例分布式事务跨多个服务的数据一致性难以保证网络延迟服务间通信增加延迟测试难度需要测试服务间交互怎么保证微服务的数据一致性最终一致性通过消息队列补偿分布式事务Seata、TCC、Saga 模式Spring Cloud在微服务中起什么作用“Spring Cloud就像是微服务架构的‘工具箱’提供了各种标准解决方案。比如Eureka做服务注册发现服务之间如何找到对方Feign做服务调用服务之间如何通信Hystrix处理故障一个服务挂了怎么办。”微服务有哪些组件注册中心Nacos、Eureka、Consul配置中心Apollo、Nacos、Config网关Spring Cloud Gateway、Zuul链路追踪SkyWalking、Zipkin熔断限流Sentinel、Hystrix服务调用Feign、RestTemplate负载均衡Ribbon分布式系统 vs 微服务架构关系与区别方面分布式系统微服务架构核心概念多台机器协作按业务拆分独立服务拆分依据技术层面拆分业务领域拆分通信方式各种网络协议如 TCP、消息队列等通常 HTTP/REST 或 gRPC/RPC数据管理可能共享数据库每个服务独立数据库Database per Service典型场景数据库集群、应用集群电商系统、大型互联网平台总结分布式系统强调“多机协作”解决性能和可用性问题。微服务架构强调“业务拆分”解决开发和维护复杂度问题。分布式系统关注“在哪里运行”多台机器微服务架构关注“如何组织”按业务拆分