关注△mikechen的架构笔记△,十余年BAT架构经验倾囊相授
大家好,我是mikechen。
分布式和微服务经常接触,但是分布式和微服务区别有哪些,很多同学并不了解,下面详解4大分布式和微服务的区别@mikechen
最新mikechen原创超30万字《阿里架构师进阶专题合集》和《最全大厂面试题及答案总结》,请关注本公众号【mikechen的架构笔记】,后台回复:资料,即可领取。
分布式和微服务区别
微服务是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间采用轻量级的通信机制互相沟通,每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境。
简单的来说,微服务是一种架构风格,是架构设计层面的概念,而分布式是一种项目系统的部署方式,是部署层面的概念。
分布式系统:是指将一个整体的系统,拆分为多个独立的计算节点,通过网络相互通信和协调完成任务。
这些节点可以在不同的物理服务器、或虚拟机上运行,通常用于提高系统的可扩展性、和容错性。
分布式系统的目标:是解决大规模数据处理、和计算问题,核心在于如何在多个节点之间协调工作。
分布式和微服务应用区别
微服务架构是对系统进行更细粒度的拆分,侧重于模块解耦、和复用。
划分的目的是实现高内聚、低耦合,让不同的团队可以独立开发、和部署各自的服务。
比如:微服务的划分是基于业务功能,每个服务独立负责一个特定的业务能力,比如:用户管理、订单处理...等。
每个服务,可以拥有自己的数据库、业务逻辑、和API,服务之间通过API接口、或消息机制进行通信。
而分布式,主要用来解决网站高并发带来问题。
比如:不同模块部署在不同服务器上,对系统的水平拓展,分散单个服务器压力,增加系统吞吐量。
分布式和微服务部署区别
分布式是一种项目系统的部署方式,这里的服务器部署可以是单个的服务器,也可以是多个服务器集群。
分布式系统,通常需要专门的基础设施、和管理工具。
比如:分布式存储系统、分布式计算框架(如:MapReduce、Hadoop...等等)。
这些系统的开发、与部署,往往相对复杂,部署通常需要跨多个物理、或虚拟机器进行。
而微服务,更注重独立开发、和部署,每个服务都可以由不同的团队独立开发、测试、和部署。
比如,微服务通过:CI/CD(持续集成/持续交付),来构建部署。
并且,微服务架构,通常会利用容器化技术(如:Docker、Kubernetes...等等)进行服务部署、和管理,简化服务的部署过程。
分布式和微服务效率区别
微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低。
由于每个微服务都由独立的小团队负责,因此它敏捷性更高,微服务使得整个系统的迭代速度并行程度更高。
不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,运维的复杂度和性能,会随着服务的粒度更细而增加。
以上就是分布式和微服务的区别,希望对你掌握分布式和微服务有所帮助!
最后送大家一个福利:
送我原创超30万字阿里架构师进阶专题合集。
以及给大家整理最全大厂Java面试题及答案详解,包含:Java、多线程、JVM、Spring、MySQL、Redis、中间件...等必考题答案详解。
需要以上架构专题&面试答案的同学,加我微信即可领取!
添加时备注:资料