什么是微服务?
-
微服务是系统架构上的一种设计风格,主旨是讲一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中进行,服务之间基于HTTP的RESTful API进行通信协作。
-
微服务存在的意义是为了解决以往单体系统随着功能越来越庞大,复杂,造成应用变得越来越臃肿难以维护出现的问题。因此将系统中的不同功能模块拆分成多个不同的服务,这些服务都能独立部署和扩展。
-
由于有了轻量级的通信协作基础,所以这些微服务可以使用不同的语言来编写。
如何实施微服务?
- 运维的新挑战:微服务架构中需要维护的进程数大大增加,编排自动运行更加困难。
- 接口的一致性:从单体应用的代码依赖变成了服务间的通信依赖。
- 分布式的复杂性:由于拆分后的各个微服务都是独立部署并且运行在各自的进程内,只能通过通信来进行写作,所以会面临分布式环境问题,如网络延迟、分布式事务、异步消息等。