首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果您正在设计的系统是很小的URL,那么如何在一致性和可用性之间进行选择?

如果您正在设计的系统是很小的URL,那么如何在一致性和可用性之间进行选择?
EN

Software Engineering用户
提问于 2020-08-17 22:10:00
回答 2查看 246关注 0票数 -2

我正在为类似于微小URL的东西建立一个系统设计。它提供了将URL映射到短URL的API。创建后,可以使用短URL访问原始URL。这个系统似乎需要同时可用和一致(我知道这是不可能的)。

可用--如果系统不可用,对短URL的请求将开始失败--这违背了使用短URL的目的。

一致性--如果一个系统不一致--一个新创建的微小URL可能在一段时间内无法访问。此外,如果更新现有URL以指向其他地方,则更改可能需要一段时间才能传播。

那么,我们如何决定选择一个而另一个呢?我们应该考虑哪些因素?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2020-08-17 23:25:02

这是一种根据用例进行评估的折衷方法。

在这种特殊情况下,您可以选择如下:考虑一致性,对于您正在考虑的分发技术/方案,典型的或预期的最大延迟(在所有副本上始终可用url之前)。对你来说太长了吗?如果不是,算了吧。

在“微型url服务器”的情况下,您是“写一次”:一旦创建了这个微小的url,它就不会被更改。(或者说很少。)也许获得初始一致性的延迟并不是一个障碍.如果是这样的话,您可以优先考虑可用性。

票数 3
EN

Software Engineering用户

发布于 2020-08-18 09:18:14

问题归结为:如果有一个网络分区(或者仅仅是延迟),您是愿意服务旧数据,还是根本不提供任何数据?

我认为对于一个很小的URL服务,很明显,可能为旧数据提供服务比根本不提供任何数据要好。

小URL的所有者也有可能以不同的方式在分区的每一端更新它。在这种情况下,现在您正在随机地将其中一个服务给客户。主人知道他们做了什么,这是他们自己的错。还是比两个人都要好。

因此,对于这个应用程序来说,可用性似乎比一致性更重要--仅仅是通过使用常识。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/414945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档