如何在云原生环境中实现上述功能的设计模式?
创始人
2025-09-25 12:10:58
0次

软件设计模式的作用_软件设计模式有哪些_软件模式设计有哪些

作者 | 坦梅·德什潘德

译者| 平川

策划|蔡芳芳

许多现代应用程序需要在企业规模上构建,有时甚至在互联网规模上构建。 每个应用程序都需要满足可扩展性、可用性、安全性、可靠性和弹性要求。 在本文中软件设计模式有哪些,我将讨论一些可以帮助您轻松实现上述功能的设计模式。 我将讨论每种模式、如何在云原生环境中使用它,以及何时使用它和何时不使用它。 其中一些模式并不新鲜,但在当前互联网规模的云计算世界中很有用。

本文原创发表于BetterProgramming,经原作者授权由InfoQ英文站翻译分享。

软件设计模式有哪些_软件模式设计有哪些_软件设计模式的作用

图片来自:

以下是本文将讨论的模式:

开始吧。

断路器

分布式系统的设计应考虑到故障。 如今,世界早已接受微服务,而微服务主要依赖于其他远程服务。 由于网络、应用负载等各种原因,该远程服务可能难以及时响应。 在大多数情况下,实施重试应该可以解决问题。

但有时,可能会出现重大问题,例如服务降级或服务本身完全故障。 在这些情况下,继续重试是没有意义的。 这就是断路器模式的用武之地。

软件设计模式有哪些_软件模式设计有哪些_软件设计模式的作用

断路器,图片由作者提供。

上图显示了断路器模式的实现,其中当服务 1 识别出调用服务 2 时出现连续失败/超时时,服务 1 将手动中断对服务 2 的调用并返回回退响应,而不是重试。

有一些流行的开源库,例如 Netflix 的 Hystrix,可以用来非常轻松地实现这些模式。

如果您使用 API 段或像 Envoy 这样的 sidecar 代理,那么这可以在代理层本身完成。

注意:在发生停机时实施足够的日志记录和警报非常重要,以便可以跟踪在此期间收到的请求并了解运营团队。

您还可以实施半开断路器,并继续为客户提供降级服务。

何时使用这些模式

何时不使用这些模式

命令和查询职责分离 (CQRS)

对于涉及数据存储的现代应用程序来说,CQRS 是一种非常有用的模式。 其基本原理是将数据存储中的读(查询)和写/更新(命令)操作分开。

假设您正在创建一个应用程序,需要将数据存储在数据库(例如 MySQL/PostgreSQL)中。 众所周知,将数据写入数据存储时,操作需要几个步骤,例如验证、建模和持久化,因此典型的写入/更新操作比简单的读取操作需要更长的时间。

当您使用单个数据存储同时执行大规模读写操作时,您可能会开始遇到性能问题。

在这些情况下,CQRS 模式可能很有用。 CQRS 模式建议使用不同的数据模型进行读取和写入操作。 此模式的一些变体还建议为此类模型使用单独的数据存储。

软件设计模式的作用_软件设计模式有哪些_软件模式设计有哪些

CQRS,图片由作者提供

注意:目前大多数PaaS数据库都提供了创建数据存储只读副本的能力(Google CloudSQL、AzureSQLDB、AmazonRDS等),这使得数据复制更容易实现。

如果你使用的是本地数据库,那么很多企业数据库也提供这些功能。

注意:现在有些人还喜欢将只读副本实现为快速且高性能的 NoSQL 数据库,例如 MongoDB 和 Elasticsearch。

何时使用这些模式

何时不使用这些模式

干扰源

Storm Feed 是一种有趣的设计模式,它将一系列域风暴存储为日志,日志的聚合视图提供了应用程序的当前状态。

这些模式通常用于不提供数据存储锁且需要维护事件审核和历史记录的系统 - 例如餐厅/会议/座位预订应用程序。

软件设计模式有哪些_软件模式设计有哪些_软件设计模式的作用

风暴来源,图片由作者提供。

考虑一个酒店卧室预订系统,用户可以在其中预订或取消预订。 在这里,您需要将预订和取消存储为一系列事件。 每次预订之前,聚合视图都会通过查看风暴日志来显示可用的卧室。

注意:大多数云服务提供商都支持 Microsoft Pub/Sub、Azure Service Bus、AWSSQS 等消息传递服务。 该服务与高度一致的数据存储相结合,实现了这种模式。

何时使用这些模式

何时不使用这些模式

边车

随着微服务的流行,sidecar 模式开始流行。 在此模式中,应用程序的组件被部署到单独的进程或容器中。 这有助于表示和封装。

EnvoyProxy 是最常用的 sidecar 代理之一,有着广泛的应用。 它有助于保持应用程序的核心功能分离,使用 sidecar 来分离网络、可观察性和安全性等常见功能。

软件模式设计有哪些_软件设计模式的作用_软件设计模式有哪些

Sidecar,图片由作者提供。

这些 sidecar 可以帮助体现 L4/L7 通信。 像 EnvoyProxies 这样的 Sidecar 甚至可以通过实施 MutualTLS 来帮助提高安全性。

您可以将其与服务网格结合起来,以实现各种微服务之间更好的通信和安全性。 要了解更多信息软件设计模式有哪些,您可以阅读我之前的文章。

何时使用这些模式

何时不使用这些模式

BFF(后端换前端)

在传统的产品开发周期中,前端工程师创建与数据存储交互的服务,后端工程师构建用户界面。 如今,在构建应用程序时需要同时考虑联通和桌面的使用情况。

虽然联通设备与桌面设备在硬件方面的差异越来越小,但对于联通设备来说,连接和使用一直是其面临的挑战。

在这些情况下,BFF模式就非常方便。 在这些模式下,您需要为特定后端创建/自定义前端服务。

软件设计模式的作用_软件设计模式有哪些_软件模式设计有哪些

后端换前端,图片由作者提供。

为了优化联通客户端的性能,您可能需要创建一个单独的前端服务,以轻量级寻呼响应进行响应。

您可能还想使用此模式来聚合各种服务以减少流量。

注意:如果你现在使用的是API网段,那么在网段内就可以轻松实现BFF模式,不需要单独维护服务。

何时使用这些模式

何时不使用这些模式

扼杀者

如果您的组织正在走向应用程序现代化,那么 Strangler 设计模式是必须的。 Strangler 设计模式主张在遗留应用程序和新应用程序之上创建一个外观,为用户提供具体的视图。

软件模式设计有哪些_软件设计模式的作用_软件设计模式有哪些

绞杀者,图片由作者提供。

此模式向用户提供迁移活动。

注意:如果传统 IT 组织从一种 ERP 迁移到另一种 ERP,这些模式尤其有用。 如果您使用 API 分段,则在分段代理中实现它会更容易。

您需要决定在迁移结束时是保留 Facade 还是删除它。

何时使用这些模式

何时不使用这些模式

英文原文链接:

软件专业人员的现代架构设计模式

2020年即将结束,InfoQ来给大家福利啦~

参与形式:

关注InfoQ公众号并回复“2020”即可获得个人专属海报。 邀请好友推广参与活动,就有机会赢取苹果AirPodsPro、Redmi小爱触屏音响8、小度智能耳机等众多精美礼品,并在后台快速回复“2020”即可领取独家海报

软件设计模式的作用_软件设计模式有哪些_软件模式设计有哪些

相关内容

热门资讯

大浪淘金APP黑幕揭秘:内盘操...   大浪淘金APP平台最隐蔽的黑幕,在于其完全封闭的内盘交易系统。这个看似与国际市场接轨的交易平台,...
告别固定工资实现财富自由?一品...   普通投资者被广告宣传诱导,注册就送现金,充值返现金券等等这些宣传方式,都是在引流到平台开户,不怕...
哈易购APP打着现货交易幌子搞...   网络上各类白银、铂金等贵金属投资广告铺天盖地,不少平台以"现货交易"为名,暗中却从事着非法期货交...
5元起投!高额收益?中国白银、...   上海华通白银国际交易中心有限公司(以下简称“华通白银国际”)打着“白银、铂金现货订购”的旗号,实...
"九州订购APP、起...   近年来,贵金属投资热度持续攀升,但乱象也随之而来。一些不法分子趁机搭建虚假交易平台,打着"低门槛...
坚锅淘金APP投资者频繁爆仓亏...   坚锅淘金APP对外宣称是贵金属现货交易平台,日常出入金看似畅通无阻,给人一种合规运营的假象。但事...
斗金订购APP“5元订购现货”...   斗金订购APP“5元订购现货”骗局揭秘:充值易、回本难,越陷越深!  许多投资人在未核实平台合规...
贵金属APP乱象曝光:&quo...   当前市场上部分贵金属类APP未取得正规交易资质,涉嫌误导消费者参与白银、铂金等商品的非合规交易!...
华通白银、银宝街APP被指虚假...   警惕现货白银投资陷阱:上海华通白银背后的平台涉嫌非法期货交易  近年来,各类现货白银交易平台以“...
充值送300,月入过万?别被量...   如今,网络上充斥着大量未经批准的贵金属及其他产品订购交易平台。这些平台普遍缺乏合法经营资质,却将...
鑫汇智投APP贵金属非法期货、...   鑫汇智投APP贵金属非法期货、人为控盘,大量投资者遭恶意收割  鑫汇智投APP长期以“低门槛、高...
矅光智策APP非法贵金属交易骗...   不少投资人在矅光智策APP上进行贵金属交易后出现了严重亏损。许多人在下载该平台时,根本不清楚其是...
飞鸽订购APP非法期货交易骗局...   飞鸽订购APP非法期货交易骗局,很多投资者根本没搞懂规则就盲目充值,买涨买跌跟买cai票一样!平...
天龙白银APP被操控的非法期货...   中小投资者在网络平台参与商品现货订购交易,表面看似合规合法,实则暗藏诸多难以察觉的风险。商品现货...
下载送试玩金?千万别碰!带你揭...   当前,许多贵金属APP交易平台正采用欺诈性营销手段。它们通过抖音等短视频平台,以“5元起投”“充...
泡泡淘金APP骗局:打着&qu...   泡泡淘金APP骗局:打着"商品订购"幌子,实则非法期货收割投资者!投资需谨慎,切勿轻信“高额回报...
南商云购APP虚假电子盘背后的...   南商云购是虚假电子盘吗?它是否具备合规的交易资质?这个曾经的"现货电子盘"如今摇身一变,披上了"...
警惕"祥龙订购&qu...   祥龙订购APP、掌上银牛APP等平台背后的运营方——四川禄宏商品现货市场有限公司,仅具备现货交易...
中国白银、华银:虚假宣传、后台...   中国白银APP宣称是上市公司“中国白银集团”与“上海华通白银国际交易中心”旗下的现货交易平台,提...
起底“优品订购”APP非法期货...   “优品订购”APP根本不具备任何合法的交易资质。其背后的运营方仅凭随便注册一家公司、开发一款交易...