您现在的位置是:首页 > 行业发展
跟老鸟一起学习微服务设计——单体与微服务架构
智慧创新站
2024-11-17【行业发展】82人已围观
简介单体架构我们考虑一个整体系统,其中所有功能都一次性部署。有两种类型的单片系统。单进程单体——所有代码都打包到一个进程中。单进程单体架构2.分布式单体——系统由多个服务组成,但无论出于何种原因,它都必须作为一个整体进行部署。分布式单体架构单体架构的优点易于开发和测试。作为单个部署单元进行部署。使用相...
我们考虑一个整体系统,其中所有功能都一次性部署。有两种类型的单片系统。
单进程单体——所有代码都打包到一个进程中。
单进程单体架构
2.分布式单体——系统由多个服务组成,但无论出于何种原因,它都必须作为一个整体进行部署。
分布式单体架构
单体架构的优点易于开发和测试。
作为单个部署单元进行部署。
使用相同的部署单元轻松水平扩展。
需要较少的技术专业知识并共享相同的底层代码。
通过集中代码和内存实现高性能。
适用于小型应用。
单体架构的缺点系统的复杂性随着时间的推移而增加。
新功能需要很长时间才能发布。
生产修补程序需要更长的时间。
当一个模块发生小的变化时,整个应用程序都必须更新。
由于与一种技术的密切关系,无法采用更新的技术来获得更好的性能。
单点故障。
由于高耦合,代码变得复杂,做KT变得越来越具有挑战性。
高度依赖了解整个代码库的关键开发人员
持续部署具有挑战性。
10.单个模块难以扩展。
11.模块之间的高度耦合会导致可靠性和可用性问题。
12.安全问题,因为所有部署都在一个地方。
微服务架构微服务的概念是指附加到特定业务领域的独立、可部署的服务。微服务通过网络进行通信。微服务架构由多个协作的微服务组成,是一种面向服务的架构(SOA)。
微服务架构
微服务的基本特征是它们对技术的不可知论。使用一个或多个网络端点,微服务公开了它们封装的业务功能。它们还封装了数据存储和检索,通过定义良好的接口公开数据,使它们成为一种分布式系统。因此,数据库隐藏在服务边界内。让我们更详细地研究这些概念。
独立可部署性——我们的想法是我们可以对微服务进行更改并将其部署到生产中,而无需使用任何其他服务。我们的服务需要松耦合以确保独立部署。
围绕业务领域建模——每项服务仅满足业务需求的一个子领域,并负责该子领域。微服务应该遵守单一职责原则(SRP)。
拥有自己的数据——当一个微服务需要访问另一个服务持有的数据时,它应该向那个服务请求数据。微服务不应该共享数据库。
微服务的优点领域知识和业务专长。
独立可扩展。
通过支持小型自治团队并行工作,加快软件开发速度。
快速响应变化的能力。
提高正常运行时间。
更轻松地适应新技术。
松耦合。
适合大规模应用。
明确定义微服务的团队所有权。
10.针对不同服务的可定制的安全性。
微服务的缺点分布式系统引入了额外的复杂性。
部署复杂性。
监控更复杂。
增加资源消耗和更多服务器需要管理。
分布式服务之间的网络通信不是即时的,可能会导致延迟。
测试服务可能具有挑战性。
服务之间的数据一致性具有挑战性和复杂性。
很赞哦!(89)