您现在的位置是:首页 > 行业发展

跟老鸟一起学习微服务设计——单体与微服务架构

智慧创新站 2024-11-17【行业发展】82人已围观

简介单体架构我们考虑一个整体系统,其中所有功能都一​次性部署。有两种类型的单片系统。单进程单体——所有代码都打包到一个进程中。单进程单体架构2.分布式单体——系统由多个服务组成,但无论出于何种原因,它都必须作为一个整体进行部署。分布式单体架构单体架构的优点易于开发和测试。作为单个部署单元进行部署。使用相...

单体架构

我们考虑一个整体系统,其中所有功能都一​次性部署。有两种类型的单片系统。

单进程单体——所有代码都打包到一个进程中。

单进程单体架构

2.分布式单体——系统由多个服务组成,但无论出于何种原因,它都必须作为一个整体进行部署。

分布式单体架构

单体架构的优点

易于开发和测试。

作为单个部署单元进行部署。

使用相同的部署单元轻松水平扩展。

需要较少的技术专业知识并共享相同的底层代码。

通过集中代码和内存实现高性能。

适用于小型应用。

单体架构的缺点

系统的复杂性随着时间的推移而增加。

新功能需要很长时间才能发布。

生产修补程序需要更长的时间。

当一个模块发生小的变化时,整个应用程序都必须更新。

由于与一种技术的密切关系,无法采用更新的技术来获得更好的性能。

单点故障。

由于高耦合,代码变得复杂,做KT变得越来越具有挑战性。

高度依赖了解整个代码库的关键开发人员

持续部署具有挑战性。

10.单个模块难以扩展。

11.模块之间的高度耦合会导致可靠性和可用性问题。

12.安全问题,因为所有部署都在一个地方。

微服务架构

微服务的概念是指附加到特定业务领域的独立、可部署的服务。微服务通过网络进行通信。微服务架构由多个协作的微服务组成,是一种面向服务的架构(SOA)。

微服务架构

微服务的基本特征是它们对技术的不可知论。使用一个或多个网络端点,微服务公开了它们封装的业务功能。它们还封装了数据存储和检索,通过定义良好的接口公开数据,使它们成为一种分布式系统。因此,数据库隐藏在服务边界内。让我们更详细地研究这些概念。

独立可部署性——我们的想法是我们可以对微服务进行更改并将其部署到生产中,而无需使用任何其他服务。我们的服务需要松耦合以确保独立部署。

围绕业务领域建模——每项服务仅满足业务需求的一个子领域,并负责该子领域。微服务应该遵守单一职责原则(SRP)。

拥有自己的数据——当一个微服务需要访问另一个服务持有的数据时,它应该向那个服务请求数据。微服务不应该共享数据库。

微服务的优点

领域知识和业务专长。

独立可扩展。

通过支持小型自治团队并行工作,加快软件开发速度。

快速响应变化的能力。

提高正常运行时间。

更轻松地适应新技术。

松耦合。

适合大规模应用。

明确定义微服务的团队所有权。

10.针对不同服务的可定制的安全性。

微服务的缺点

分布式系统引入了额外的复杂性。

部署复杂性。

监控更复杂。

增加资源消耗和更多服务器需要管理。

分布式服务之间的网络通信不是即时的,可能会导致延迟。

测试服务可能具有挑战性。

服务之间的数据一致性具有挑战性和复杂性。

很赞哦!(89)