Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 3|回復: 0

分布式架构的基础和技术

[複製鏈接]

1

主題

1

帖子

5

積分

新手上路

Rank: 1

積分
5
發表於 18:13:44 | 顯示全部樓層 |閱讀模式
段时间以来,微服务一直是会议上的热门话题。在传统的软件系统中你会遇到总是遇到同样的问题。代码库变得混乱,新功能需要越来越多的时间来开发,并且扩展应用程序会消耗大量资源。微服务承诺在这里提供解决方案。 概念很简单:将应用程序划分为许多小的独立单元,以分解复杂性、独立扩展并提高可重用性。亚马逊、Netflix、Uber 等公司的微服务成功案例似乎证实了这一理论。 事实上,微服务架构有助于以优雅的方式解决这些问题。然而,在通往基于微服务的应用程序的道路上,存在全新的障碍。本文解释了该架构必须解决的一些问题并讨论了不同的方法。 微服务与单体服务 微服务是经典整体架构的替代方案。然而,在我们深入讨论之前,我们应该澄清什么是整体架构。


任何开发过应用程序的人很可能会选择整体架构。 巨石一词源自古希腊语 瑞士 电话号码 意思是“统一的石头”。维基百科说:“巨石是一个更通用的术语,指的是完全由同一类型的岩石组成的自然形成或加工的岩石块。” 单体应用是经典且直观的软件开发方式。在这里,应用程序被开发为基于技术堆栈的单元。此类示例包括PHP Laravel、Java Spring Boot或Node.js Express应用程序。软件内的技术边界是通过模块实现的,这些模块通过所选编程语言的自然功能连接,例如方法调用: 图 - 经典的整体式架构 经典的单体架构 整体式的缺点 这种方式简单易实现,但也有一些缺点,在开发后期尤为明显: 大泥球 随着时间的推移,单体应用程序可能会转变为“大泥球”。没有始终如一地追求应用程序各个部分的技术分离,或者应用程序变得太大以至于没有开发人员能够完全掌握和理解应用程序的情况。这会导致新功能的开发时间增加,并使开发人员感到沮丧。




语言依赖性 在单体应用程序中,您依赖于一开始选择的技术堆栈,即使它不是某些问题的理想解决方案。 Python 已成为机器和深度学习的“最先进”语言,但 Java、C# 和 PHP 往往在 Web 应用程序的后端语言中占据主导地位。对于纯粹的整体架构,您必须选择其中一种技术。 可扩展性有限 在网络领域,一旦达到一定数量的用户,就必须向上扩展应用程序,这是很正常的。无论您选择哪种技术,一旦收到一定数量的询问,一切就结束了。扩展单体应用非常简单;在一台或多台服务器上启动应用程序的多个实例。负载均衡器负责在不同实例之间分配请求。根据AKF Scale Cube, 这是在 X 轴上缩放。这种方法的缺点是成本高,因为包括数据库在内的整个应用程序都必须复制,这导致 RAM、CPU 和存储空间的资源消耗很高。



回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|自動贊助|z

GMT+8, 20:56 , Processed in 1.082846 second(s), 18 queries .

抗攻擊 by GameHost X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表
一粒米 | 中興米 | 論壇美工 | 設計 抗ddos | 天堂私服 | ddos | ddos | 防ddos | 防禦ddos | 防ddos主機 | 天堂美工 | 設計 防ddos主機 | 抗ddos主機 | 抗ddos | 抗ddos主機 | 抗攻擊論壇 | 天堂自動贊助 | 免費論壇 | 天堂私服 | 天堂123 | 台南清潔 | 天堂 | 天堂私服 | 免費論壇申請 | 抗ddos | 虛擬主機 | 實體主機 | vps | 網域註冊 | 抗攻擊遊戲主機 | ddos |