集群、分布式、微服务概念和区别理解

2024-04-13  本文已影响0人  pan_peter

区别

集群通常指多个计算节点组成的一个整体,目的是提高系统的可用性和性能。
分布式系统是由多个独立的计算节点组成的系统,这些节点通过网络通信和协作,共同完成某个任务或提供某个服务。
微服务是一种特定的架构风格,强调将系统拆分成小而自治的服务单元,每个服务单元都有明确的边界和职责。

特征 集群 (Cluster) 分布式系统 (Distributed System) 微服务 (Microservices)
定义 多个计算节点连接在一起,作为一个整体协同工作 多个独立的计算节点通过网络通信和协作,完成任务或提供服务 将应用程序拆分成小型、独立的服务单元,每个单元围绕特定功能构建
目的 提高系统的可用性、可扩展性和性能 提高系统的可扩展性、可靠性和性能 提高系统的灵活性、可维护性和可扩展性
构成节点 多个计算节点(服务器) 多个独立的计算节点(服务器、容器、虚拟机等) 多个小型、独立的服务单元
通信方式 通常通过专用的内部网络或协议进行通信 通过网络通信和协作 通过轻量级的通信机制进行交互
负载均衡和容错 可实现负载均衡和容错能力 可实现负载均衡和容错能力 可实现负载均衡和容错能力
设计目标 提高系统的可用性和性能 提高系统的可扩展性、可靠性和性能 提高系统的灵活性、可维护性和可扩展性
例子 Web 服务器集群、数据库集群等 分布式文件系统、分布式数据库等 电子商务平台、社交媒体应用等

举例说明

Java中运行Jar包+nginx+MySQL的示例

集群

集群( 集群是指将多台服务器集中在一起, 每台服务器都实现相同的业务,做相同的事;但是每台服务器并不是缺 一不可,存在的主要作用是缓解并发能力和单点故障转移问题)

那就让一堆服务器都运行jar包,来处理Java业务

分布式系统

分布式服务是指多台服务器集中在一起,服务是分散部署在不同的机器上; 每台机器都实现总体中的不同业务,做不同的事情

比如说,让一台服务器运行nginx,一个服务器运行Jar包,一个服务器运行MySQL

微服务

微服务的概念和分布式比较相似,微服务是一种架构风格;简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能;每个微服务仅关注于完成一件任务并很好地完成该任务,这个服务可以单独部署运行;

在JAVA业务场景中,你可以将Java应用拆分成多个小而自治的服务单元,每个服务单元都有明确的边界和职责。比如,可以拆分成用户服务、订单服务、支付服务等。
每个微服务可以打包成一个独立的Jar包,

并使用nginx作为反向代理来统一对外提供服务,
同时通过MySQL等数据库进行数据存储和交互。

总结

先有分布式——再有集群!

分布式是对应用的拆分——粒度较大!
微服务是对业务的拆分——粒度较小!

d35997ea69444296a10cc7eb1622f34b_3.png
上一篇 下一篇

猜你喜欢

热点阅读