什么是微服务?
微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。
简单理解微服务,我们这里用一个Web项目举例:一个Web项目分为前端,后端,而后端又分为逻辑控制(Controller,Service层)以及对应的数据库。原先我们会将所有这些功能放在一台服务器上,或者将这些功能作为一个整体运行在多个服务器上。即所有服务器均包含前后端以及对应数据库。
微服务的出现改变了这种方式,我们现在让前端以Vue实现,成为服务一;后端逻辑代码以Springboot实现,成为服务二;数据库也作为一个单独服务,成为服务三;此时我们不再需要每台服务器上均运行一个Web项目所需的所有实现,取而代之,我们将服务一放在A服务器,服务二放在B服务器,服务三放在C服务器。实际上微服务可以更加细分,这里只是举出了一个例子。
上图是微服务提出者Martin Fowler文章中的一张图,形象的诠释了微服务的含义。
如今云计算主要分为三类:IaaS,PaaS,SaaS
- IaaS是基础设施即服务。英文全称是Infrastructure as a server。它的含义是把客户需要的基础设施环境搭建好,然后开放虚拟机或者硬件的租赁服务。用户可以随意使用其中的CPU,内存,硬盘等资源。
- PaaS是平台即服务。英文全称是Platform as a Server。意思就是云端把客户所需的软件的平台作出租。相当于就是云端已经给大家搭建好了平台。一般来说,在用户使用的时候,云端已经搭建好了操作系统、数据库、中间件,运行库等等。用户只需要在这个搭建好的平台上下载、安装并使用自己需要的软件就可以了。
- SaaS是软件即服务。英文全称是Software as a Server。到了这个层次,云端已经把操作系统、中间件、数据库、运行库、软件应用都部署好了。连软件都不用安装了,用户登录之后直接可以上手操作。
对这几类服务的介绍,这里有更详细的说明:https://www.zhihu.com/question/20387284