什么是分布式系统?

什么是分布式系统?,第1张

分布式系统是建立在网络上的软件系统。 处理协助任务,然后整合结果。在分布式系统中,一组独立的计算机向用户呈现一个统一的整体,就像一个系统一样。系统具有多种通用的物理和逻辑资源,可以动态分配任务,分散的物理和逻辑资源可以通过计算机网络实现信息交换。系统中有一个分布式 *** 作系统,以全局方式管理计算机资源。通常,对于用户来说,分布式系统只有一个模型或范例。在 *** 作系统之上,一个软件中间件层负责实现这个模型。分布式系统的一个著名例子是万维网,在万维网中,一切看起来都像一个文档(网页)。在计算机网络中,这种统一性、模型和软件是不存在的。用户看到的是实际的机器,计算机网络并没有让这些机器看起来千篇一律。如果这些机器有不同的硬件或不同的 *** 作系统,那么这些差异对用户来说是完全可见的。如果用户想要在远程机器上运行程序,他必须登录到远程机器上并在该机器上运行程序。分布式系统和计算机网络系统的共同点是大部分分布式系统都是建立在计算机网络上的,所以分布式系统和计算机网络的物理结构基本相同。两者的区别在于分布式 *** 作系统和网络 *** 作系统的设计思想不同,这就决定了它们在结构、工作方式和功能上也是不同的。网络 *** 作系统要求网络用户在使用网络资源时首先了解网络资源。网络用户必须了解网络中每台计算机的功能和配置、软件资源和网络文件结构。如果用户想要读取网络中的共享文件,他们必须知道该文件放在哪个计算机和目录中。分布式 *** 作系统以全局方式管理系统资源,可以随意为用户调度网络资源,调度过程“透明”。当用户提交作业时,分布式 *** 作系统可以根据需要选择系统中最合适的处理器,将用户的作业提交给处理程序,在处理程序完成作业后将结果传递给用户。在这个过程中,用户并没有意识到多个处理器的存在,系统就像一个处理器。

你问的这个架构方式,是目前最典型、最常见的多层架构。

举一个最简单的例子:

假设某公司要部署一个办公自动化系统(OA),系统是采用的ASPNET开发的,数据库是SQLServer2005。该公司有2台Windows2008服务器,其中一台A上安装数据库SQLServer2005,另外一台B上安装OA系统。公司的员工通过浏览器来访问位于服务器B上的OA系统。

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的IPFS 是一个分布式系统,用于存储和访问文件、网站、应用程序和数据。

而且,当您使用 IPFS 时,您不只是从其他人那里下载文件——您的计算机也有助于分发它们。当您在几个街区外的朋友需要相同的 Wikipedia 页面时,他们可能会像从您的邻居或任何使用 IPFS 的人那里一样从您那里获得它。

IPFS 不仅可以用于网页,还可以用于计算机可能存储的任何类型的文件,无论是文档、电子邮件,甚至是数据库记录。

可以从不由一个组织管理的多个位置下载文件:

最后一点实际上是 IPFS 的全名: InterPlanetary File System 。我们正在努力建立一个系统,该系统可以在不连贯或相隔很远的地方工作,就像行星一样。虽然这是一个理想主义的目标,但它让我们努力工作和思考,几乎我们为实现这一目标而创造的一切在家里也很有用。

IPFS 是一个点对点 (p2p) 存储网络。可以通过位于世界任何地方的对等点访问内容,这些对等点可能会传递信息、存储信息或两者兼而有之。IPFS 知道如何使用其内容地址而不是其位置来查找您要求的内容。

理解 IPFS 的三个基本原则:

这三个原则相互依赖,以启用 IPFS 生态系统。让我们从 内容寻址 和内容的唯一标识开始。

互联网和您的计算机上都存在这个问题!现在,内容是按位置查找的,例如:

相比之下,每条使用 IPFS 协议的内容都有一个 内容标识符 ,即 CID,即其 哈希值 。散列对于它所来自的内容来说是唯一的,即使它与原始内容相比可能看起来很短。

有向无环图 (DAG)

IPFS 和许多其他分布式系统利用称为有向无环图的数据结构 (打开新窗口),或 DAG。具体来说,他们使用 Merkle DAG ,其中每个节点都有一个唯一标识符,该标识符是节点内容的哈希。
IPFS 使用针对表示目录和文件进行了优化的 Merkle DAG,但您可以通过多种不同的方式构建 Merkle DAG。例如,Git 使用 Merkle DAG,其中包含许多版本的存储库。

为了构建内容的 Merkle DAG 表示,IPFS 通常首先将其拆分为 块 。将其拆分为块意味着文件的不同部分可以来自不同的来源并可以快速进行身份验证。

分布式哈希表 (DHT)

要查找哪些对等方正在托管您所追求的内容( 发现 ),IPFS 使用分布式哈希表或 DHT。哈希表是值键的数据库。 分布式 哈希表是一种表在分布式网络中的所有对等方之间拆分的表。要查找内容,您需要询问这些同行。

libp2p项目 (打开新窗口)是 IPFS 生态系统的一部分,它提供 DHT 并处理对等点之间的连接和交谈。

一旦你知道你的内容在哪里(或者更准确地说,哪些对等点正在存储构成你所追求的内容的每个块),你就可以再次使用 DHT 来查找这些对等点的当前位置( 路由 )。因此,要获取内容,请使用 libp2p 查询 DHT 两次。

然而,这确实意味着 IPFS 本身并没有明确保护 有关 CID 和提供或检索它们的节点的知识。这不是分布式网络所独有的。在 d-web 和 legacy web 上,流量和其他元数据都可以通过可以推断出很多关于网络及其用户的方式进行监控。下面概述了这方面的一些关键细节,但简而言之:虽然 节点之间 的 IPFS 流量是加密的,但这些节点发布到 DHT 的元数据是公开的。节点宣布对 DHT 功能至关重要的各种信息——包括它们的唯一节点标识符 (PeerID) 和它们提供的数据的 CID——因此,关于哪些节点正在检索和/或重新提供哪些 CID 的信息是公开的可用的。

加密

网络中有两种类型的加密: 传输加密 和 内容加密 。

在两方之间发送数据时使用传输加密。阿尔伯特加密文件并将其发送给莱卡,莱卡在收到文件后对其进行解密。这会阻止第三方在数据从一个地方移动到另一个地方时查看数据。

内容加密用于保护数据,直到有人需要访问它。Albert 为他的每月预算创建了一个电子表格,并用密码保存它。当 Albert 需要再次访问它时,他必须输入密码才能解密文件。没有密码,Laika 无法查看该文件。

IPFS 使用传输加密,但不使用内容加密。这意味着您的数据在从一个 IPFS 节点发送到另一个节点时是安全的。但是,如果拥有 CID,任何人都可以下载和查看该数据。缺乏内容加密是一个有意的决定。您可以自由选择最适合您的项目的方法,而不是强迫您使用特定的加密协议。

如果您精通命令行并且只想立即启动并运行 IPFS,请遵循此快速入门指南。请注意,本指南假定您将安装 go-ipfs,这是用 Go 编写的参考实现。

ipfs将其所有设置和内部数据存储在称为 存储库的目录中。 在第一次使用 IPFS 之前,您需要使用以下ipfs init命令初始化存储库:

如果您在数据中心的服务器上运行,则应使用server配置文件初始化 IPFS。这样做会阻止 IPFS 创建大量数据中心内部流量来尝试发现本地节点:

您可能需要设置大量其他配置选项 — 查看完整参考 (打开新窗口)更多。

后面的散列peer identity:是您节点的 ID,与上面输出中显示的不同。网络上的其他节点使用它来查找并连接到您。如果需要,您可以随时运行ipfs id以再次获取它。

现在,尝试运行在ipfs init 那个样子ipfs cat /ipfs/ /readme。

您应该看到如下内容:

您可以 探索 存储库中的其他对象。特别是quick-start显示示例命令尝试的目录:

准备好将节点加入公共网络后,在另一个终端中运行 ipfs 守护程序,并等待以下所有三行显示您的节点已准备好:

记下您收到的 TCP 端口。如果它们不同,请在下面的命令中使用您的。

现在,切换回原来的终端。如果您已连接到网络,您应该能够在运行时看到对等方的 IPFS 地址:

这些是 /p2p/

现在,您应该能够从网络中获取对象了。尝试:

使用上述命令,IPFS 在网络中搜索 CIDQmSgv并将数据写入spaceship-launchjpg桌面上调用的文件中。

接下来,尝试将对象发送到网络,然后在您喜欢的浏览器中查看它。以下示例curl用作浏览器,但您也可以在其他浏览器中打开 IPFS URL:

您可以通过转到 来查看本地节点上的 Web 控制台localhost:5001/webui。这应该会d出一个这样的控制台:

Web 控制台显示可变文件系统 (MFS)中的文件。MFS 是内置于 Web 控制台的工具,可帮助您以与基于名称的文件系统相同的方式导航 IPFS 文件。

当您使用CLI 命令ipfs add 添加文件时,这些文件不会自动在 MFS 中可用。要查看您使用 CLI 添加的 IPFS 桌面中的文件,您必须将文件复制到 MFS:

—END—

开源协议:MIT License

开源地址:>

开发短视频平台软件部分经过开发团队,可以实现,下面不得不说所有的过程和资金需求。我觉得有以下3点要注意。以下回答有不完善的地方,希望大家指正。

1,产品:首先你应该搭建一个网站,或者是安卓版的App在市场进行测试。因为安卓版费用不算很高。大约几万块钱可以搞定。视频项目对后台服务器配置要求很高。因为短视频所需服务器在存储方面的功能。在市场测试的时候配置不宜过高,能够支持基本的短视频测试业务就可。经过市场上的论证和测试逐渐对服务器进行添加配置,网速及服务器的存储。

2,经过市场上测试和论证,运营和实践项目产品确实得到了用户的认可,用户量也开始逐步上升,这时候我们就应该考虑产品升级,因为有了安卓版的参考,外包团队开发苹果程序或者自己组建团队进行开发就要快很多。iOS程序和安卓升级及维护,参考一组服务器大概配置数值。向某音短视频App并且有直播功能,就要考虑到服务器并发量的问题。分布式服务器排列或自建服务器。当人数为一万人的时候服务器配置为4核CPO。8G内存,15M宽带,如果人数继续上升,并列使用两台服务器,同样配置。价格可以参考某云,它可以计算价格。随时可以增加内存宽带,如果是自己服务器托管的话,费用也不低,这里不做解释量力而行。

3,市场运营及营销(这时候是显示你资金雄厚的时候了)经过市场的初步测试。感觉到有发展的潜力,这时候要加大营销成本,所谓的营销就是让人知道他。并且有独到的营销方案用粘性、趣味性。让用户越来越喜欢他从中得到极大的乐趣。运营应该深入挖掘客户的兴趣,爱好不断地完善产品的多样性趣味性。慢慢地打造一款好的短视频App,当然,这也是一个烧钱的项目。因为项目就像孩子一样,慢慢地生长茁壮。经过多次升级,迭代慢慢成为一个优秀的软件。

因时间关系就先写这么多吧,不足之处,希望大家多沟通指正,谢谢!本人经营的科技公司就是开发各种软件App小程序H5一站式开发。多套系统一个后台。

服务器的优势是基于云计算技术的,相比独立服务器而言,有如下特征:1、从技术方面来讲:云服务器使用了云计算技术,而云计算技术,整合了计算、网络、存储等各种和硬件技术。独立服务器,就是独立的了,不会整合这些资源。2、从安全性方面来讲:云服务器具有天然防ARP攻击和MAC欺骗,快照备份,数据永久不丢失。而独立服务器则不具有这方面的功能;3、从可靠性来讲:云服务器是基于服务器集群的,因此硬件冗余度较高,故障率低;而独立服务器则相对来说硬件冗余较少,故障率较高;4、从灵活性方面来讲:用户可以在线实时增加自己的配置,可扩展空间较大;而独立服务器则有这方面的局限性,如果有新的应用,只能再买一台了。5、从性能的角度来看:云服务器是同等配置独立服务器计算能力的4倍,可满足高性能计算的要求;6、从稳定性上看,云服务器可以故障自动迁移,意思是如果一台云服务器出现故障,其上面的应用就自动迁移到其他云服务器上了。独立服务器就不存在这功能了,宕了就宕了。7、从节能上看,云服务器基于云计算的自动迁移技术,意即夜间,物理服务器的利用率不高,自动迁移技术会把应用集中到几台物理服务器上,其他的物理服务器就可以休眠了,这样就节能了

分布式是一种思想,范围很广,我得先知道它的诞生:

以前是一个数据库一个JSP就可以做一个应用了,后来随着业务复杂,我们开始分层,比如MVC之类的,再后来我们的数据越来越多了,比如有上亿的数据,这个时候我们一个数据库查询太慢了,就开始分库,这也算是分布式的一种。

还有比如我们的系统访问的人多了,比如双11,上千万人同时访问,我们的服务器(网站)支持不住了,这个时候就要部署到很多个服务器,每个服务器分摊请求,这也是分布式

当然随着业务扩大,我们得分业务了,比如注册登录的,物流的,卖东西的等等,不同的系统,但是各个系统之间进行协调,也算分布式一种

以上都算是分布式的来源,主要是解决压力过大,大家协同工作的,那么这就涉及到一些常用的东西,或者像你说的的技术

1你用N个数据库才放数据,至少CRUD方面就麻烦些了,得用cobar,tddl,mysql-proxy等协调

2服务器:你部署了很多服务器,肯定得用个东西来分发请求这些吧,nginx,apache等分发请求。

3你公司有很多系统,想很好的联系在一起,光用接口不满足了,得用一些JMS,像activemq,ons之类的来协调吧

4为了解决io问题,得加缓存吧,那么缓存对应上面的,也得分布式吧,就涉及memcache,redies等等

上面就简单的介绍了下分布式的东西,还有很多啦,这是常用的一些,希望你能慢慢来,不是一下子能理解得


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13031052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存