微服务概述
微服务是系统架构的一种设计风格,主旨是将一个原本独立的系统拆分成多个小型系统,这些系统在各自独立的进程中运行,服务间通过HTTP的RESTful API进行通信协作。被拆分成的每个小型服务都围绕系统中某一项或一些耦合性较高的业务功能进行构建,每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。
与单体系统的区别:
-
微服务系统易于扩展,对于新的业务可方便接入到现有系统中;
-
解决单体系统的臃肿庞大难以维护,将系统按业务功能模块拆分成多个微服务,每个微服务专注于解决对应业务领域问题,更易于维护;
-
每个服务运行在自己的进程内,在部署上有稳固的部署边界,每个服务的部署更新不影响其它服务的运行;
-
系统按功能模块拆分成多个微服务,数据库也将根据业务进行拆分,使得单个微服务数据库表、数据量得到控制;
引入的问题:
-
跨服务调用,增加时间开销
-
分布式事务一致性问题引入,给系统带来灾难性影响
-
幂等性问题引入
-
分库分表带来性能上的影响