当前位置: 首页 > 科技观察

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

时间:2023-03-18 13:41:47 科技观察

【.com快译】现代电子商务架构的五种设计模式分别是Strangler模式、Ambassador模式、Sidecar模式、API接口和函数链。一些电子商务公司正在使用微服务为其商店构建一组可重用的组件。这些服务独立于前端运行,因此更容易将其内容大规模地传送到多个渠道。本文讨论了几种可以在现代电子商务中实现的设计模式,解释了它们提供的功能,并提到了一些常见的用例。了解软件设计模式软件设计模式被定义为解决常见问题的方法。它们帮助开发人员了解系统的组件如何相互关联和交互。但是没有一种“完美”的设计模式,因为每种模式都有优点和缺点,并且在特定情况下都有帮助。大多数开发人员花费数年时间学习如何正确使用这些模式。但如果应用得当,它们可以取得显着的效果。现代电子商务架构有五种设计模式:(1)Strangler模式:一种从遗留软件迁移到更高级平台的有用方法。(2)大使模式:提供一种处理网络问题的封装方式。(3)Sidecar模式:它可以帮助企业添加功能,而不会与软件的其余部分紧密耦合。(4)API接口:帮助软件服务和组件进行通信。(5)函数链:帮助代码处理顺序任务。虽然实施是最困难的部分,但了解每个模式的名称和意图是必不可少的第一步。企业可以决定采用更适合电子商务平台的方法。1.Strangler模式Strangler模式逐渐将系统从一个平台移动到另一个平台。这可以通过一个接一个地替换部分软件来完成,直到旧系统最终被“干掉”。在实施过程中,企业可以将其分解为三个步骤:过渡:创建新版本的服务,一次更换一个。共存:新旧服务可以同时运行。退休:更换所有需要的东西,可以退休旧系统。使用Strangler模式允许持续交付新功能和高代码覆盖率。它还提倡模块化、测试驱动的方法,使企业能够隔离问题并确保所提供的每项服务都正常运行。这是迁移到新软件设置的好方法,例如从单体应用程序迁移到微服务。它可以让企业通过将工作分解为可管理的块来快速推动结果。此外,可以将任务分配给整个企业的不同团队,以增加支持和问责制。另一方面,这可能需要一些时间。但是,企业可以通过让多个团队并行工作来缓解这种情况。让您的团队做好工作与采用新技术同样重要。2.大使模式在大使模式下,大使服务专门用于沟通。企业创建代理进程或服务来处理来自应用程序其余部分的网络请求。使用大使服务后,可以添加监控、日志记录和呼叫重新路由等功能。将请求从一种格式转换为另一种格式很有用,例如,在多渠道电子商务应用程序中,产品可以分发给许多不同的前端消费者。当同时使用旧软件和现代软件时,它可以帮助弥合差距并确保网络满足现代安全和责任标准。从企业的角度来看,它允许为代理服务本身分配一个团队,从而允许职责划分。虽然大使模式可以快速将不同的系统连接在一起,但网络延迟问题使其不太理想。它可以增加服务间通信并提高内存和CPU使用率。如果企业在摆脱单一应用程序或遗留软件时遇到问题,例如持续维护,大使模式可能是规避这些问题的好方法。这种模式允许在不重写所有内容的情况下向遗留软件添加功能。3.Sidecar模式在sidecar模式中,企业将一组指定的功能移动到一个单独的组件中,该组件与主应用程序(父应用程序)共存,通常共享相同的生命周期。Sidecar组件与其主应用程序一起托管,甚至可以在同一进程中运行。这意味着sidecar组件与主应用程序通信时几乎没有延迟,并且可以访问相同的资源。但是,它可以使用与主要服务不同的编程语言或框架,并且多个边车可以使用不同的语言。这意味着在添加额外功能或迎合不同团队成员的优势和偏好时,使用适合工作的工具。通常,sidecar应用程序的进程可以处理外围功能,例如日志记录或网络,而主应用程序则处理核心功能。因此,如果应用程序需要移动或重新配置,团队可以专注于采用sidecar应用程序,而无需更改主应用程序。这是一个具有许多潜在应用的简单模式。例如,在电子商务环境中,企业可以用它来记录财务交易。由于详细记录在电子商务中至关重要,因此可以添加和构建单独的记录。企业还可以使用边车模型来处理网络操作,例如为遗留服务添加现代加密。这可以在不完全重写的情况下实现遗留电子商务系统的部分现代化。4.API接口应用程序编程接口(API)是软件组件使用一组定义的调用相互通信的方式。Web服务或微服务通常使用API。除了将它们用于网络通信之外,您还可以将它们用于同一主机上的微服务之间的通信。API接口中有几种常见的模式。REST是最受认可的。它是计算机科学课程的主要内容,也是大量网站和服务的标准。它用于实现CRUD模式。RESTful服务是无状态和可缓存的,这使它们成为Web应用程序的理想选择。在HeadlessCommerce中,API允许多个前端应用程序与其后端服务进行通信。可以部署在任何其他平台上的网站、应用程序和软件可以将API请求发送到同一位置。这允许企业单独处理每个组件,进行改进和添加,而不必担心对整个生态系统的影响。5.功能链企业可以在云平台上构建自成体系、无状态、按需的Serverless功能。AWS、MicrosoftAzure和GoogleCloud等云平台允许用户创建这些功能而无需担心硬件。用户可以将无服务器功能组织成一个功能链。在此模式中,每个函数在完成时调用下一个函数。如果操作启动一系列处理缓慢的任务,则此模式是理想的。第一个功能可以响应用户,这样他们就不会等待。应用此模式时需要考虑几个问题。理想情况下,功能是独立且可替换的,但这里的功能是相互依赖的。这违反了面向对象的设计原则,但对于某些应用程序来说是必需的。用户可以使用排队系统顺序调用函数,使其更具有独立可操作性和可扩展性。函数链对于实现定义明确的顺序任务很有用。例如,企业可能希望在用户下订单后调用一系列功能,数据可以由不同的微服务处理并推送到每个后续数据存储。这些任务都可以独立发生或在后台发生。这样,您的电子商务商店的用户界面(UI)将保持快速运行,而后端功能可能需要几分钟才能完成。结论总之,越多的人了解软件模式以及如何将它们应用到电子商务微服务中,他们就越能利用这些现有知识来解决问题。原标题:DesignPatternsforModernDayCommerceUsingMicroservices,作者:JamesKonik