我的概念是否遵循微服务架构?

时间:2015-01-09 17:18:25

标签: php magento soa single-page-application microservices

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

该架构由3个组件组成:

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

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

所以我的问题是:

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

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

感谢您的阅读。我对任何建议感到高兴。

2 个答案:

答案 0 :(得分:9)

没有任何东西可以说你的架构不是MS架构只是因为你使用的是magento和PHP。但是,你必须考虑一些事情:

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

如果您的服务只是与magento紧密相关的转换/界面,您不能简单地在java / C#/ ruby​​中重写它们,那么我猜您没有MS架构。

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

答案 1 :(得分:1)

对于微服务架构,存在SRP原则。单一责任原则。每个服务都有自己独特的责任.DB方案也应该被分解。在单片应用程序中将服务作为休息,不将单片应用程序转换为微服务应用程序。