如何设计一个优秀的分布式系统?重要因素、工具、策略都在这里
Opensource.com为开源软件提供了以下定义:“开源软件是带有源代码的软件,任何人都可以检查、修改和增强代码。”“而有些软件的源代码只有创建它的个人、团队或组织才能修改——并且保有对它的独占控制。人们称这种软件为‘专有’或‘闭源’软件。” 只有专有软件的原始作者才能合法地复制、检查和修改该软件。为了使用专有软件,计算机用户必须同意(通常通过接受首次运行该软件时显示的许可证),如果软件作者没有明确允许的话,他们不会对软件做任何的修改。微软Office和Adobe Photoshop都是专有软件的例子。 虽然开源软件在计算机早期就已经存在,但直到20世纪90年代,当完整的开源操作系统、虚拟化技术、开发工具、数据库引擎和其他重要功能出现时,它才走到了前台。开源技术通常是基于web和分布式计算的关键组件。其中,以下类别的开源软件很受欢迎:
分布式计算 强大的系统、快速的网络以及复杂软件可用性的结合,已经将主要的应用程序开发从单一转向了更加分布式的形式。然而企业已经意识到,有时候从头开始比尝试重构或分解旧的应用程序要更好。 当企业进行创建分布式应用程序的工作时,常常会发现一些有趣的副产品。一个设计得当的应用程序,它已经分解成单独的功能或服务,可以由单独的团队并行开发。 快速应用程序开发和部署(也称为DevOps)就是一种利用新环境的方法。 面向服务的架构 随着行业从客户端/服务器的计算模式,发展到更加分布式的方法,“面向服务的架构”一词出现了。这种方法基于分布式系统的概念、消息队列和交付中的标准,以及将XML消息传递作为共享数据和数据定义的标准方法。 各个应用程序的功能被打包成面向网络的服务,这些服务接收一条消息,请求它们执行特定的服务,在它们执行服务之后,将响应发送回请求该服务的函数。 这种方法还提供了另一个好处,即可以将给定的服务托管在网络的多个位置。这既提高了整体性能,又增强了可靠性。 除此之外,现在还有很多工作负载管理工具,它用于接收服务请求、检查可用容量、将请求转发给具有最大可用容量的服务,然后将响应发送回请求者。如果特定的服务器没有及时响应,工作负载管理器会简单地向服务转发另一个实例。它还会将没有响应的服务标记为失败,并且在它收到一条表明服务仍在运行的消息之前,不会向它发送额外的请求。 设计分布式系统的重要考虑因素 (编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |