加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

如何设计一个优秀的分布式系统?重要因素、工具、策略都在这里

发布时间:2019-06-20 02:28:41 所属栏目:建站 来源:Dan Kusnetzky
导读:副标题#e# 介 绍 今天的应用程序可以说是分布式系统开发中的一项奇迹。基于不同的系统架构,构成应用程序的每个功能或服务可能在不同的系统上执行,而系统位于不同的地理位置,使用不同的计算机语言编写。应用程序的组件可能托管在一个功能强大的系统上,该

令人惊讶的是,许多开发人员在知道具体需要什么之前就开始构建东西。通常情况下,这意味着他们构建了不必要的功能,浪费了时间。引用Yogi Berra的话就是:“如果你不知道自己要去哪里,你最终会去往别的地方”。

首先需要知道要做什么,已经有哪些工具和服务可用,以及使用最终解决方案的人应该看到什么。

交互和批处理

快速响应和低延迟常常是我们的需求,因此比较明智的做法是考虑在用户等待时应该做什么,以及可以将什么放入批处理过程中,而这些批处理执行在事件驱动或时间驱动的计划中。

在考虑了功能的初始分割之后,比较好的做法是计划何时需要执行后台、批处理进程、这些功能操作哪些数据、以及如何确保这些功能是可靠的、何时可用以及如何防止数据丢失。

功能应该托管在哪里

只有在详细计划了“完成什么”之后,才应该考虑“在哪里”以及“如何做”。开发人员有各自最喜欢的工具和方法,并且经常会调用它们,即使可能不是最佳的选择。Bernard Baruch说过:“如果你只有一把锤子,那么所有东西看起来都像钉子”。

了解企业开发的企业标准也很重要。仅仅因为工具目前很流行就选择它是不明智的。这个工具可以完成这些工作,但是需要记住的是,它构建的所有东西都需要维护。如果你构建了一些只有自己才能理解或者维护的东西,那么在你职业生涯的剩下时间中,你可能已经把自己束缚在这一功能上了。我自己也有过这种经历,自认为自己创建的功能工作正常、轻量而且可靠。但在我离开那家公司后的十年里,我不断地收到关于这些功能的电话,因为后来的开发人员无法理解这些功能是如何实现的,而我写的文件又早就被丢掉了。

在分布式解决方案中,每个功能或服务都应该分别考虑。该功能应该在企业数据中心?还是使用云服务提供商?还是两者兼有?另外还要考虑到在某些行业中存在法规要求,这些要求指导我们选择需要在何处以及如何维护和存储数据。

其他需要考虑的东西还包括:

  • 该功能的主机应该是什么类型的系统。有没有系统架构更合适该功能?系统应该基于ARM、x86、SPARC、Precision、Power,还是大型机?
  • 会有某种特定的操作系统为该功能提供了更好的计算环境吗?Linux、Windows、UNIX、System I,或是System Z会是更好的平台吗?
  • 某特定的开发语言是否更适合该功能?它是一种特定类型的数据管理工具吗?该用Flat文件、SQL数据库还是No-SQL数据库?还是说非结构化的存储机制更好?
  • 功能应该托管在虚拟机中还是容器中,方便迁移、自动化以及编排吗?

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读