一、分布式是更广泛的概念,指将计算分布在多个物理节点上的系统。
解决单个物理服务器性能的瓶颈,把功能模块拆分到不同的节点中,强调系统的高可用性、高性能、可扩展性的系统。
不一定是按业务功能划分,可能只是为了提高性能或资源分担,但模块可能较大。
应用场景:分布式数据库—数据高可用存储、分布式缓存—提升数据访问速度
分布式计算框架—大规模数据计算、分布式文件系统—海量数据的存储
特点:
1、多节点:通常涉及多个节点的配置,每个节点,可以是一个独立的计算机、或独立的服务器、或者独立的云服务器...等等,它们之间通过分布式网络通信,运维集群的监控、容错和资源管理
2、分布式数据:数据分散存储在多个节点上,每个节点只存储一部分数据,最后可以通过分布式计算汇总。
3、并行处理:多个节点,可以同时处理不同的任务或请求,从而,提高系统的整体处理能力。
高并发典型特征:系统能够同时处理大量请求的能力,大量并行处理、性能优化、资源调度与管理、响应时间和吞吐量。
分布式可以帮助实现高并发,而高并发又需要分布式来支撑。
二、微服务是专注于业务模块化,将应用程序划分为多个独立的小服务,每个服务围绕单一的业务
功能构建,服务之间通过轻量级协议(如:HTTP、gRPC)进行通信,更聚焦于业务层面。
核心:是通过模块化设计提高系统的灵活性、独立性,以便能独立开发、部署、测试和扩展。
每个微服务,通常负责特定的业务功能,并且有自己独立的数据库和接口
需求:适合快速变化的业务,方便单个服务的快速迭代和独立演进
应用场景:电商—用户管理、商品服务、订单处理拆分为不同的微服务
金融—支付、风险控制、账户管理,独立部署和管理
强调将系统,按业务功能切分为更细粒度的服务,每个服务尽量独立和自治。
部署:更加灵活,利用容器技术实现资源隔离和可移植性,通常打包为容器镜像,容器封装了服务运行所需的所有依赖,确保服务可以在任何环境中稳定运行。高度依赖CI/CD流水线,使用Jenkins、GitLab CI等工具实现自动化的代码构建、测试和发布。强调自动化运维