在软件架构和设计方面,微服务如何与中间件“堆叠”(双关语意)?我来自Java,似乎当您摆脱作为API的直接REST并抽象出不同的层和连接参数时,至少在Java中,您几乎已经完全回到了一些非常古老的想法。我们已经回到虚拟化……而JVM 已经是虚拟的。
以一种不可知论的方式,您可以并且我会争论将RESTful API抽象到CORBA的优点。或者,以Java为中心的方式,使用JMS或MDB。
EJB在Java上曾经是一个大问题,但在某种程度上它被认为是集群效果,但是现在,我们又回到了起点吗?
还是微服务提供了CORBA甚至更好的MDB所缺少的功能?当我读(TLDR)Martin Fowler解释微服务时,如果可以的话,它是解决一个严重问题的很好的解决方案。更确切地说,是一种封闭的方法,它引入了一定程度的复杂性,只能解决问题。如果这些服务确实是微服务,并且数量众多,则每个服务的运行和维护成本都为一美元。
此外,如果许多微服务中的一个微服务更改了其API,那么依赖该服务的所有内容都会中断。它并不显得松散连接,它似乎敏捷的对立面。还是我滥用这些话?
当然,在这些极端之间有很多不确定的选择。
鲨鱼与大猩猩...走吧! (对于书呆子来说,这具有讽刺意味,完全不是我的意图。这个问题是从表面上考虑的。如果这个问题可以改善,请这样做,或者发表评论,我会解决的。 )
设想在docker上运行的多个微服务都在一台机器上互相交谈...疯狂。难以维护或管理,几乎不可能更改任何东西,因为任何更改都会级联并导致不可预见的错误。这些服务分散在不同的计算机上如何更好?而且,如果它们是分布式的,那么肯定可以解决某些非常非常古老的技术,至少在一定程度上解决了分布式计算的问题。
为什么水平缩放如此普遍,或者至少是可取的?
giant blob
,它必须具有接口,所以从内核开始的每个部分都是MS,首先是任何团队开始编写代码都是为了接受规范v0.0.1。