什么是微服务?

12 阅读3分钟

前言

本文适合刚刚要学习微服务的小白!!

简介

微服务是一种架构风格,将一个大型复杂的应用程序拆分成一组小型、独立、可部署的服务,每个服务都围绕特定的业务功能构建,可以独立开发、部署和扩展。

微服务的主要特点

  1. 独立性

• 独立开发:每个微服务可以由不同的团队独立开发,使用不同的技术栈(语言不同都可以,Go合适就用Go,cpp合适就上cpp,技术是为了业务服务的)。例如,一个团队负责用户服务,另一个团队负责订单服务,团队之间只需约定好接口即可。

• 独立部署:每个微服务可以独立部署,更新一个服务不会影响其他服务。比如,你可以更新订单服务,而无需重新部署整个应用程序。

  1. 围绕业务功能划分(相当于是对整个项目做模块拆分,日志微服务专门处理日志,支付微服务专门处理支付)

• 每个微服务专注于一个具体的业务功能,如用户管理、订单处理、支付等。这种划分方式使得代码更清晰,便于理解和维护。(一个项目如果拆分得体,那维护成本将会大大降低!!)

  1. 轻量级通信

• 微服务之间通过轻量级的通信机制协作,常见的通信方式是HTTP/REST或RPC(远程过程调用)。(如在Node.js技术栈中,Axon这个npm包是一种常见的选择。)RPC允许一个服务调用另一个服务的方法,就像调用本地方法一样,但实际上是跨网络调用。

  1. 可扩展性

• 微服务架构便于水平扩展。当某个服务的负载增加时,可以单独增加该服务的实例数量,而不需要扩展整个应用程序。例如,如果订单服务的请求量增加,可以增加订单服务的实例。

与传统单体架构的对比

• 单体架构:所有功能都打包在一个大型应用程序中,代码耦合度高,更新和扩展困难。一旦某个功能出现问题,可能会影响整个应用程序。

• 微服务架构:将功能拆分成独立的服务,每个服务独立开发、部署和扩展,降低了耦合度,提高了系统的可维护性和可扩展性。

适用场景

• 大型复杂系统:当系统功能复杂,团队规模较大时,微服务架构可以更好地组织开发和运维。

• 快速迭代:需要快速开发和部署新功能的系统,微服务架构可以加快迭代速度。

• 分布式系统:需要在多个服务器或云环境中部署的系统,微服务架构可以更好地利用分布式资源。

最后

建议全文背诵 收摊