在過去SOA中服務是一種粗粒度的服務,也就是與微服務相反,粗粒度的服務有兩個好處:易於重用,減輕ESB的負載;而微服務催生,比如對事件總線的性能和可靠性要求提高,因為每個微服務是很小的組件,甚至是一個類,微服務之間的通訊幾近類似於兩個單個對象之間交互調用,性能稱為至關重要,而過去的ESB產品主要面向工作流程的編排與靈活性上,性能是第二位的。
另外,微服務對團隊組織也產生不同於ESB時代的影響,ESB時代,很多集成業務邏輯,也就是跨服務調用的邏輯放在ESB中,形成了專門的ESB產品開發團隊,這是以ESB團隊為核心的開發模式,眾星捧月,樹形結構;而微服務代理扁平的矩陣式管理模型,沒有核心團隊,不是面向ESB的開發模式,而是一個微服務一個團隊。
第三,微服務概念基於雲平台和Docker之類虛擬容器,允許不同語言開發方便輕量集成,而ESB的集成不同平台服務的規范復雜,非常重量,這兩者存在矛盾性。
所以,從上面三個方面的矛盾性可以看出,微服務不能簡單和ESB和平相處。微服務在新技術背景下集成的方式肯定與以前不同,主要區別是雲平台的區別,現在我們開發的微服務需要無縫直接部署在操作系統上,也可以無縫不需要更改任何微服務配置,直接運行在雲平台上,而使用過去的ESB是做不到這點的,因為以前沒有雲計算。