根据设计期的架构思想和运行期的不同结构分为:
面向服务的架构
分布式服务架构
微服务架构
1、面向服务架构。以业务服务的角度和服务总线的方式,一般是webservice与ESB,考虑系统架构和企业IT治理;
2、分布式服务架构。基于去中心化的分布式服务框架与技术,考虑系统架构和服务治理;
3、微服务架构。微服务架构可以看作是面向服务架构和分布式服务架构的拓展,使用更细粒度的服务和一组设计准则来考虑大规模的复杂系统架构设计。
微服务架构和分布式架构是两种不同的架构设计方式,各有优缺点。我们在设计架构的时候一般如何选择呢?一来是根据我们的经验和技术,二来还是需要根据项目的要求特点。
第一、架构粒度
微服务架构:微服务架构将应用程序拆分为一组小型、独立的服务。每个服务专注于特定的业务功能,并通过轻量级的通信机制进行交互。每个服务都可以独立部署、扩展和维护。
分布式架构:分布式架构是指将一个大型系统划分为多个子系统或模块,这些子系统或模块可以在不同的物理或逻辑节点上运行。每个子系统或模块负责处理特定的功能,通过网络进行通信和协调。
第二、通信机制
微服务架构:微服务架构通常使用轻量级的通信机制,如HTTP、RESTful API或消息队列等,来实现服务之间的通信和协作。
分布式架构:分布式架构可以使用各种通信机制,包括远程过程调用(RPC)、消息传递、Web服务等,以实现模块之间的通信。
第三、数据管理
微服务架构:在微服务架构中,每个服务通常有自己的数据存储,可以选择适合自身需求的数据库或数据存储技术。每个服务负责管理自己的数据,并通过API向其他服务提供访问。
分布式架构:在分布式架构中,数据可能被分散存储在多个节点上,不同的模块可能使用共享数据库或共享文件系统来访问和管理数据。
第四、独立性和自治性
微服务架构:微服务架构鼓励每个服务的独立开发、部署和维护。每个服务都可以由不同的团队开发和管理,可以独立进行版本控制、扩展和更新。
分布式架构:分布式架构中的子系统或模块之间通常存在更紧密的耦合,它们可能由同一个团队开发和维护,并且可能需要协调一致的变更和部署。
总结,微服务架构更加注重服务的独立性和自治性,将应用程序拆分为小型服务;而分布式架构更注重系统的模块化和分布,将系统划分为多个子系统或模块。两者都可以实现系统的横向扩展、高可用性和灵活性,选择适合的架构取决于具体的需求和场景。
------------------------------
分布式:分散的是压力。
不同模块部署在不同的服务器上,解决网站高并发带来的问题
微服务:分散的是能力。
从概念理解,分布式服务架构强调的是服务化以及服务的分散化,微服务则更强调服务的专业化和精细分工;
从实践的角度来看,微服务架构通常是分布式服务架构,反之则未必成立。所以,选择微服务通常意味着需要解决分布式架构的各种难题。
微服务重在解耦合,使每个模块都独立。分布式重在资源共享与加快计算机计算速度。
微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。
微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。
参考:https://baijiahao.baidu.com/s?id=1761262051751549691&wfr=spider&for=pc
分布式架构: 分布式架构是指将一个大型系统分解成多个独立的子系统,并将这些子系统分布在不同的计算机节点上,通过网络协议相互通信,形成一个整体的系统。这种架构风格可以提高系统的可扩展性、可靠性和可用性。常见的分布式架构包括:SOA(面向服务的架构)、RPC(远程过程调用)、消息队列、分布式缓存等。分布式架构适合处理大数据量、高并发和高可用性的场景,比如电商、社交网络、金融交易等。
微服务架构: 微服务架构是一种基于分布式架构的新型软件架构风格,它将一个大型系统拆分成多个小型、轻量级的服务,每个服务都可以独立部署、扩展和维护。不同服务之间通过API进行通信,可以采用不同的编程语言和技术栈实现。微服务架构的特点是灵活性高、可扩展性好、维护成本低、快速迭代和部署。微服务架构适合处理快速变化、多样化的业务需求,比如在线教育、物联网、大数据分析等。
虽然分布式架构和微服务架构有很多共同点,但它们的设计思想和实现方式都有所不同,因此在选择架构风格时需要根据具体的业务需求和技术特点进行权衡。
分布式架构和微服务架构都是用于构建大型复杂系统的架构风格,它们之间有一些本质区别,主要体现在以下方面:
服务粒度不同:分布式架构通常采用较粗粒度的服务,每个服务可能包含多个功能。而微服务架构则采用更细粒度的服务,每个服务只提供一项或几项特定的功能。这种差异导致了微服务架构更加灵活,可以更方便地扩展和替换服务
2. 通信机制不同:分布式架构通常使用RPC(远程过程调用)或消息队列来实现服务之间的通信,而微服务架构则更多地采用HTTP和RESTful API来实现服务之间的通信。这种差异导致了微服务架构具有更好的跨语言和跨平台的兼容性。
3. 数据一致性处理不同:在分布式架构中,由于数据可能分布在不同的服务中,因此需要采用特殊的协调机制来确保数据一致性,如分布式事务。而在微服务架构中,由于每个服务只负责自己的一部分数据,因此可以采用更简单的数据一致性处理机制,如最终一致性。
4. 架构管理方式不同:在分布式架构中,通常需要对整个架构进行统一管理和部署,因此需要采用中心化的管理方式。而在微服务架构中,每个服务可以独立部署、管理和扩展,因此更适合采用去中心化的管理方式。
总的来说,分布式架构和微服务架构都有各自的优缺点,选择哪种架构应该根据具体的业务需求和技术特点进行权衡。
标签:服务,通信,分布式服务,模块,架构,分布式 From: https://www.cnblogs.com/klb561/p/18018076