地理什么?地理分布式应用程序的快速介绍

89 阅读5分钟

DZone>Java Zone>Geo What?地理分布式应用程序的快速介绍

Geo What?地理分布式应用的快速介绍

这是第一篇帖子,记录了用Java从头开始构建地理分布式应用的经历。请跟随我们的脚步,学习胜利、技巧、诀窍、挣扎等等。

Denis Magda user avatar 读者

Denis Magda

CORE -

8月4日,22 - Java区 -分析

喜欢 (1)

评论

保存

鸣叫

266次浏览

加入DZone社区,获得完整的会员体验。

免费加入

你听说过地理分布式的应用程序吗?根据我的统计,我们中大约有50%的人没有听说过!

微软将地理分布式应用定义为跨越多个地理位置以实现高可用性和弹性的应用。"地理分布 "是一个相对较新的术语,大约是在我们许多人跳上云的浪潮并开始疯狂地构建云原生应用程序时创造的。

现在,处理地理分布的应用程序是我的日常职责。虽然我在YugabyteDB的工作中居住在数据层方面,但我是 "吃自己的狗粮 "方法的拥护者。许多开发者使用YugabyteDB作为地理分布式应用程序的数据库组件。然而,数据库只是拼图的一个部分。还有许多层需要照顾:中间件、后端、API、网络、前端和全球云负载平衡器,仅举几例。

这篇文章是我日志中的第一篇,我将记录我从头开始用Java构建地理分布式应用的经验。我知道这将是一个艰难的过程,但这将是一个完全开放和未经审查的故事。它将包括胜利、技巧和窍门、挣扎,以及需要避免的事情。

这个故事可能持续几个月,甚至可能需要更长的时间。我知道的一件事是,我将比斯蒂芬-金更快地完成这个项目,他为《黑暗塔》系列工作了34年

所以,如果你支持我,那么,正如海盗们常说的那样。"All Hand Hoy!"意思是,"每个人都在甲板上!"

澄清地理分布式应用程序的定义

就我个人而言,我想扩大微软对地理分布式应用的定义,增加几个额外的词:一个跨越多个地理位置的应用,以实现高可用性、弹性、合规性性能。现在,这太多流行语了,对吗?所以,让我们把它分成几块,因为坦率地说,如果你知道完整的背景,这个定义是准确而简洁的。

高可用性/弹性的特点意味着应用程序可以承受所有类型的云中断,包括重大事故。一个典型的云环境带有丰富的资源和服务,但你不应该期望所有这些资源在100%的时间都是可用的。从2011年开始,仅AWS每年就有至少一次重大故障。平均需要四个小时才能恢复。小故障一直在发生。地域分布式应用程序的目的是在发生重大云事件时也能保持可用和弹性。

那么,与地理分布式应用程序有关的合规性意味着什么?这个比较简单。还记得GDPR和类似的数据居住地要求吗?大概就是这样吧。假设你为美国的用户创建了一个应用程序,并且它取得了巨大的成功。下一个里程碑是在欧洲提供同样的服务。你的架构准备好了吗?或者你需要推迟发布,因为该应用程序还没有为GDPR做好准备?有了地理分布的应用程序,它就会自然而然地发生,只要这些应用程序能够将用户的个人数据保存在其原籍国,就会如你所愿。

最后,我们已经到了应用程序的性能特征。让我们用一些可视化的方式来说明这一点。

假设一个应用程序的数据驻留在一个单一的云区域,如美国西部。住在附近的用户可以体验到低至5毫秒的延迟(谷歌云努力在一个区域内的可用区之间提供5毫秒的往返延迟)。然而,如果用户从南亚与应用程序互动,延迟可能会高出40倍(在谷歌云中约为220ms,因为流量需要通过海面下的电缆)。

地域分布的应用程序的承诺和要求是与物理定律和残酷的现实(如海洋中的电缆)竞争,让南亚的用户体验到与美国用户相同(或相当)的延迟。

在接下来的文章中,我将深入探讨如何为南亚的人们将延迟从220ms降到8ms。同时,如图所示,让我在该地区添加一个数据库实例,这是一个最基本的要求。

有了这些例子,地理分布式应用的定义对你来说应该更有意义了。

一个地理分布的应用程序是一个跨越多个地理位置的应用程序,以实现高可用性、弹性、合规性和性能。

你仍然感到困惑,或者你对上述内容有任何疑问?请在评论中提示我,我们会一起把事情弄清楚的

在地平线上有什么?

好了,我的开篇就讲到这里。我们在地平线上有什么?

在接下来的章节中,我将向你介绍地理分布式应用程序的典型构件(又称架构),并分享我在过去四天中开发的原型的结果。这个原型很有希望,但是,arrrgghh,性能很差,UI也很难看,就像...

应用

经Denis Magda许可发表于DZone。点击这里查看原文。

DZone贡献者所表达的观点属于他们自己。

在DZone上受欢迎


评论

Java 合作伙伴资源