微服务架构是现今十分常用且受欢迎的架构,那么究竟微服务解决了什么样的问题,它与传统的架构相比有些优势呢。
微服务是什么,有人是这样总结的,微服务就是一些协同工作的小而自治的服务。
它有两个特点 (1)足够小,小到一个小团队足以control。(2)独立。它可以独立部署在pass平台,也可以作为操作系统的一个进程。
这样的设计为它带来了怎样的好处:
(1)技术异构
在一个多个服务协作的系统中,可以在不同的服务采用最适合该服务的技术。
尝试使用一种标准化技术,会使所有的场景都无法得到很好的支持。
(2)弹性:如果系统中的一个组件不可用,在单系统中,那么整个服务都会不可用。当然单模块系统也可以通过将不同的实例部署在不同的机器上增强可用性,然而如果采用微服务技术,它本身
就能很好的处理服务不可用和功能降级的问题。
(3)扩展:单块服务只能作为一个整体扩展,即使系统中一小部分存在性能问题,也需要对整个服务进行扩展。如果采用微服务,则可以只对需要扩展的服务进行扩展,从而减少成本。
(4)简化部署:在有几百万行的单块应用程序中,即使只修改了一行代码,需要重新部署整个应用,程序才能够发布。不仅影响大,而且风险高。在微服务架构中,各个服务的部署是独立的,
即使出现问题,也只需要回滚一个服务。
当然还有一些未及列出,上面所讲,是微服务架构的主要优势。
详细还可以参考《微服务设计》,由中国工信出版集团出版。