微服务
“面向服务架构”就是把一个大型的单体程序,拆分成一个个独立服务,也就是较小的程序。
每个服务都是一个独立的功能单元,承担不同的功能,服务之间通过通信协议连在一起。
这种架构的优点:
- 每种服务功能单一,相当于一个小型软件,便于开发和测试
- 各个服务独立运行,简化了架构,提高了可靠性
- 鼓励和支持代码重用,同一个服务可以用于多种目的
- 不同服务可以单独开发和部署,便于升级。
- 扩展性好,可以容易地加机器、加功能,承受高负载。
- 不容易出现单点故障。即使一个服务失败了,不会影响其他服务。
跟单体架构不同,面向服务架构是语言不敏感的,不同服务可以使用不同的语言和工具开发,可能需要部署在不同的系统和环境。
这意味着,面向服务架构默认运行在不同服务器上,每台服务器提供一种服务,多台服务器共同组成一个完整的网络应用。
单机实现微服务
可以用容器来实现“面向服务架构”,每个服务不再占用一台服务器,而是占用一个容器。
这样就不需要多台服务器了,最简单的情况下,本机运行多个容器,只用一台服务器就实现了面向服务架构,这在以前是做不到的。这种实现方式就叫做微服务。
这样来说,一个微服务就是一个独立的进程。这个进程可以运行在本机,也可以运行在别的服务器,或者在云端(比如云服务和云函数FaaS)。
微服务更轻量级,所以功能的解耦和服务化可以做得更彻底。而且,它可以标准化,同样的容器不管在哪里运行,结果都是一样的,所以市场上有很多SaaS产品,提供标准化的微服务。
微服务可以和容器技术、云服务一起,在未来的软件开发中扮演重要角色。
Refs
skr