SOA和微服务的本质区别,不是有没有用容器技术,而是内部服务之间是如何调用的。举例来说,一个进销存服务,通过接口与外部系统交互,但进销存之间通过数据库直接相互操作数据,这属于SOA。如果进销存之间也是通过接口,而不是数据库操作,来交换数据,这就属于微服务了。微服务的一个特点是,每个微服务都有自己的data store,服务之间只能通过接口,而不是数据库操作,来交换数据。
个人认为还是Martin Fowler解释的最为准确:In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery