文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用微服务的现代电子商务设计模式

2024-12-14 01:24

关注

【51CTO.com快译】现代电子商务架构的五种设计模式是Strangler模式、Ambassador模式、Sidecar模式、API接口和功能链。

一些电子商务公司正在使用微服务为其商店构建一组可重用的组件。这些服务独立于前端运行,可以更轻松地将其内容大规模地交付到多个渠道。

本文将讨论现代电子商务可以实现的几种设计模式,并解释它们提供的功能,还将提到一些常见的用例。

理解软件设计模式

软件设计模式被定义为解决常见问题的方法。它们帮助开发人员了解系统的组件如何相互关联和交互。但是并没有一个“完美”的设计模式,这是因为每种模式都有优点和缺点,并且在特定情况下很有帮助。

大多数开发人员花费数年时间学习正确地获取这些模式。但是如果正确应用它们,可以取得显著的成果。现代电子商务架构有五种设计模式:

(1)Strangler模式:一种从遗留软件迁移到更先进平台的有用方法。

(2)Ambassador模式:提供了一种处理网络问题的封装方法。

(3)Sidecar模式:可以帮助企业添加功能,而不会与软件的其余部分过于紧密地耦合。

(4)API接口:帮助软件服务和组件进行通信。

(5)功能链:帮助代码处理顺序任务。

虽然实现是最困难的部分,但了解每个模式的名称和意图是必不可少的第一步。企业可以决定采用更适合电子商务平台的方法。

1.Strangler模式

Strangler模式将系统逐渐从一个平台移动到另一个平台。为此,可以通过一个接一个地替换部分软件,直到最终将旧系统“扼杀”。而在实施过程中,企业可以将其分解为三个步骤:

使用Strangler模式允许持续交付新功能和高代码覆盖率。它还促进了模块化、测试驱动的方法,使企业能够隔离问题,并确保提供的每项服务都能正常运行。

这是转移到新软件设置的好方法,例如从单体应用到微服务。它可以让企业将工作分解为可管理的块,从而快速推动结果。此外,可以将任务分配给企业不同的团队,以增加支持度和责任感。

另一方面,这可能需要一些时间。但是,企业可以通过让各个团队并行工作来缓解这种情况。而正确地构建团队与采用新技术一样重要。

2. Ambassador模式

在Ambassador模式中,Ambassado服务专门用于通信。企业创建一个代理进程或服务来处理应用程序其余部分的网络请求。

在使用Ambassado服务之后,可以添加监控、日志记录和呼叫重新路由等功能。将请求从一种格式转换为另一种格式非常有用,例如多渠道的电子商务应用中,可以将产品分发给许多不同的前端消费者。

如果同时使用传统软件和现代软件,它可以帮助缩小差距,确保网络符合现代安全和责任标准。从企业的角度来看,它允许为代理服务本身分配一个团队,从而允许划分责任。

虽然Ambassador模式可以快速将不同的系统联系在一起,但是网络延迟问题使其效果并不理想。它可以增加服务间通信,并提高内存和CPU的使用率。

如果企业在摆脱单体应用或遗留软件时遇到问题,例如需要一直维护,那么Ambassador模式可能是规避这些问题的好方法。这种模式允许向旧软件添加功能,而无需重写所有内容。

3.Sidecar模式

在Sidecar模式中,企业将一组指定的功能移动到一个单独的组件中,该组件与主应用程序(父应用程序)共存,通常共享相同的生命周期。

Sidecar组件与其主应用程序一起托管,甚至可以在同一进程中运行。这意味着当Sidecar组件与主应用程序通信时几乎没有延迟,并且它可以访问相同的资源。

但是,它可以使用与主服务不同的编程语言或框架,并且多个Sidecar可以使用不同的语言。这意味着在添加额外功能或迎合不同团队成员的优势和偏好时,可以使用适合该工作的工具。

通常,Sidecar应用程序的进程可以处理外围功能,例如日志记录或网络连接,而主应用程序处理核心功能。因此,如果需要移动或重新配置应用程序,团队可以专注于采用Sidecar应用程序,而无需更改主应用程序。

这是一个具有许多潜在应用的简单模式。例如在电子商务环境中,企业可以使用它来记录金融交易。由于详细记录在电子商务中至关重要,因此可以拥有一个独立的记录来添加和建立。

企业还可以使用Sidecar模式来处理网络操作,例如向旧服务添加现代加密技术。这可以对原有的电子商务系统实现部分的现代化,而无需完全重写。

4.API接口

应用程序编程接口(API)是软件组件使用一组定义的调用相互通信的方式。Web服务或微服务通常使用API。

除了通过网络通信使用它们之外,还可以将它们用于同一主机上的微服务之间的通信。API接口中有几种常见的模式。

REST是最受认可的。它是计算机科学课程的主要内容,也是大量网站和服务的标准。它用于实现CRUD模式。RESTful服务是无状态且可缓存的,因此非常适合Web应用。

在Headless商务中,API允许多个前端应用程序与其后端服务进行通信。可以部署在任何其他平台上的网站、应用程序和软件可以将API请求发送到同一位置。这使企业可以单独处理每个组件,进行改进和添加,而无需担心对整个生态系统的影响。

5.功能链

企业可以在云平台上构建自包含、无状态并可按需执行的无服务器功能。AWS、Microsoft Azure和谷歌云等云平台让用户可以创建这些功能,因此不必担心硬件问题。

用户可以将无服务器功能组织成一个功能链。在这种模式中,每个功能在完成时调用下一个功能。如果操作启动了一系列处理缓慢的任务,则这种模式是理想的。第一个功能可以响应用户,所以他们不会等待。

应用这一模式时需要考虑几个问题。理想情况下,功能是独立的且可替换的,但这里的功能是相互依赖的。这违反了面向对象的设计原则,但对于某些应用程序是必要的。用户可以使用排队系统按顺序调用功能,使它们更独立可操作和可扩展。

功能链对于实现定义明确的顺序任务非常有用。例如,企业可能希望在用户下订单之后调用功能链,可以通过不同的微服务处理数据,并将其推送到每个后续数据存储中。

这些任务都可以独立发生,也可以在后台发生。这样,企业的电子商务商店的用户界面(UI)将会保持快速运行,而后端功能可能需要几分钟才能完成。

结语

总之,人们对软件模式以及如何将它们应用于电子商务微服务了解得越多,就可以更好地利用这些现有知识来解决问题。

原文Design Patterns for Modern Day Commerce Using Microservices,作者:James Konik

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

来源:51CTO内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯