我正在努力了解微服务。有人可以向我解释它是如何工作的吗?我看过几个教程但仍然感到困惑。
假设您有一个购物应用程序。这种应用需要哪些不同的微服务?
我需要做以下
答案 0 :(得分:3)
微服务是一种新的架构风格,用于开发服务,它可以做到一件事并且做得非常好。微服务在服务层应用 SRP 。所以每项服务都有一个独特的原因。
我认为,从SOA的角度理解它已经有一段时间了。 Netflix的Adrian Cockcroft将微服务描述为细粒度SOA 。
我发现很少有非常有趣的链接可以很好地解释微服务。以下是其中一些:
http://martinfowler.com/articles/microservices.html
http://microservices.io/patterns/microservices.html
我还在here上发表过关于它的博客。
答案 1 :(得分:1)
我认为您描述的服务太小而不实用。你可以通过一个能够完成所需工作的服务层来更好地解决它。
以下http://martinfowler.com/articles/microservices.html微服务不应该太小而不能太大。
微服务有多大?
虽然“微服务”已经成为这种建筑风格的流行名称,但它的名字确实导致了对服务规模的不幸关注以及关于什么构成“微观”的争论。在我们与微服务从业者的对话中,我们看到了一系列服务规模。报道的最大尺寸遵循亚马逊的Two Pizza Team的概念(即整个团队可以由两个比萨饼喂养),意味着不超过十几个人。在规模较小的规模上,我们已经看到了一个由半打团队支持六项服务的设置。
这导致了这样的问题:在这个尺寸范围内是否存在足够大的差异,即每个人的服务和每人服务的尺寸不应该集中在一个微服务标签下。目前我们认为将它们组合在一起会更好,但当我们进一步探索这种风格时,我们肯定会改变主意。
在您的购物应用程序中,我认为您可以提供以下服务:
答案 2 :(得分:1)
您可以阅读我的文章,了解设计原则https://techietweak.wordpress.com/2015/07/05/mdp/ 我还建议使用“建立微观”一书。
微服务:
微服务是一种小型自治系统,可提供生态系统中独特,独特的解决方案。它作为一个全栈模块运行,并与作为生态系统一部分的其他微服务协作。 Sam Newman在他的“建立微服务”一书中将微服务定义为“小,重点,做得好”。
通过将单个大型单片系统切片和切割成许多独立的自治系统来创建微服务。它也可以是一个可插入的附加组件,可以作为新组件或绿色现场项目与现有系统一起使用。
答案 3 :(得分:1)
微服务是一种定义不明确的架构风格。有几篇博客文章,论文,现在是一本试图解释微服务的书(Sam Newman的建筑微服务)。但它成为了一个流行词,并且预期的特征(例如,“由1或2个比萨喂养的团队开发”)因作者而异。 如果我们过滤掉噪声,我认为独特的因素是,对于微服务,部署单元应该只包含一个服务或只包含一些内聚服务。 我在short blog post中探讨了这一点。
在您的示例中,在其他条件相同的情况下,您将拥有不同的微服务,例如:
这些服务预期通过消息代理使用http(REST)和/或事件进行通信。您的设计应尽量减少微服务之间的通信。怎么做?一个想法是围绕DDD有界上下文设计微服务。在任何情况下,微服务在所有情况下都不是一个好主意,你应该知道tradeoffs involved。