什么是微服务?
微服务架构并没有很精确的定义,微服务是一种软件架构风格,一个复杂大型软件应该是由一个或多个的微服务组成的,每个服务之间应该是松耦合的,每个微服务仅需关注并完成一个任务或业务。
为什么使用微服务?
因为在传统的应用软件初期,虽然构建单块软件架构是最容易的。但在一个拥有数百个功能的单块架构软件 部署后,排故、升级迭代、扩展将是一场接一场的噩梦。因为受限于初期仅有的单块系统内部耦合性,再向该系统添加新功能将是艰难的。
单块软件架构的缺点:
· 维护难:维护、升级迭代、扩展困难。修改、添加功能很有可能需要重新部署整个应用。
· 稳定性差:其中一个不稳定的功能很有可能拖慢整个应用。
· 创新难:使用新技术和框架异常困难,比较局限于当前系统本身现有的框架与技术。
而微服务解决了以上问题。
· 维护容易:添加/修改某个服务,仅需独立部署,扩展灵活,而不需要整个架构重新部署。
· 稳定性好:由于每个服务的独立运行和部署,并不会干扰其他服务正常运行。
· 创新简单:微服务按业务组织,每个服务可以使用自己独立的技术或框架,服务之间通过REST API相互通信。
SOA与微服务有什么区别?
虽然SOA(面向服务架构)中的服务是独立于彼此的,但是它与其他所有服务运行在同一时间里,且高度依赖于ESB(企业服务总线)。微服务应该是分布式的、去中心的、松耦合的、独立于彼此的。
SOA vs MSA微服务有什么缺点?
网络延迟:因为分布式的特性,各个服务之间通过接口通信,会有无可避免的网络延迟。
运维成本:多个服务意味着更多的维护工作。
网友评论