二、什么是微服务?
用中文表述就是微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常是用HTTP资源API)。这些服务围绕业务能力构建并且可以通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可以用不同的语言开发,使用不同的储存技术。
从中可以看出微服务架构应具备一下特征:
- 每个微服务可以独立运行在自己的进程里。
- 一系列独立运行的微服务共同构建起整个系统。
- 每个服务为独立的业务开发,一个微服务只关注某个特点的功能。例如订单管理,用户管理等。
- 微服务之间通过一些轻量级的通信机制进行通信,例如RESTFUL API进行调用。
- 可以使用不同的语言与数据存储技术。
- 全自动的部署机制。
三、微服务架构的优点和挑战
优点:
- 易于开发和维护:一个微服务只会关注一个特定的业务功能,所以它业务清晰、代码量较少。开发和维护单个微服务相对简单,整个应用也会维持在一个可控状态。
- 单个微服务应用启动较快:单个微服务代码量较少,所以启动比较快。
- 局部修改容易部署:单体应用只要修改就要重新部署整个项目,微服务则是修改那个部署那个。
- 技术栈不受限:微服务可以根据实际需求使用技术栈。
- 按需伸缩:可根据需求,实现细粒度的拓展。
挑战
- 运维要求高:更多的服务意味更多的运维投入。
- 分布式复杂性:影响微服务的因素有通信、延迟等。
- 接口调用成本高
- 重复劳动:许多功能是复用的