5

我在 Martin Fowler 的页面上阅读了关于微服务的文章,发现它非常有趣。现在我计划构建一个电子商务 Web 应用程序作为概念验证,我想知道我的概念是否被认为是微服务架构。

该架构由 3 个组件组成:

  • 一个基于 javascript 的单页应用程序,它将 AJAX 请求发送到
  • 带有 REST API 的服务器,它提供通过调用其他服务接收到的 JSON 数据(我认为您将此行为称为 API 网关)
  • 3 种服务:CatalogProvider、CustomersProvider、CheckoutProvider

目前,这些服务都是 Magento (PHP) Shopsystem 的 API 端点。将来我计划将提供程序与其他系统交换。

所以我的问题是:

  • MS 被认为是“可独立部署的”。我知道在 JAVA 世界中,我们谈论的是一个 JAR 或 WAR 文件,但是 PHP 服务如何“独立部署”?

  • 我的概念是否不遵循 MS 架构的原则,因为提供者都是一个大型(Magento)系统的一部分?

感谢您的阅读。我很高兴有任何建议。

4

2 回答 2

9

没有什么可以说您的架构不是 MS 架构,因为您使用的是 magento 和 PHP。但是,你必须考虑一些事情:

  • 考虑总是能够用任何语言重写任何服务并部署在某个地方,整个系统应该继续工作。

如果您的服务只是与 magento 紧密联系的转换/接口,并且您不能简单地用 java/C#/ruby 重写它们,那么我猜您没有 MS 架构。

对于 PHP 可部署工件,您通常有一些围绕您的服务的打包或版本控制策略。尽管 PHP 中的“部署”通常只是交换 .php 文件的文件夹。而且您不应该真正在不同服务之间共享代码/配置。如果您想采取额外的步骤,您甚至可以查看PHP 的部署工具。

于 2015-01-10T15:42:36.253 回答
1

至于微服务架构,有SRP原则。单一责任原则。每个服务都有自己独特的责任。DB方案也应该分解。在单体应用程序中将服务作为rest导出,而不是将单体应用程序转换为微服务应用程序。

于 2015-08-28T10:50:13.873 回答