微服务和单体架构的主要差异有哪些?

以下将从四个方面介绍微服务和单体架构的主要差异:

一、代码耦合度 接口复用

单体架构所有的模块全都耦合在一块,代码量大,维护困难,微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。 同时,由于模块化,使得可以实现以服务为粒度通过接口共享重用。

二、数据库存储方式

2)单体架构所有的模块都共用一个数据库,存储方式比较单一,微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。

三、每个模块的技术栈

3)单体架构所有的模块开发所使用的技术一样,微服务每个模块都可以使用不同的开发技术,开发模式更灵活,扩展性更好。

四、事务,服务调用,系统复杂性

4)微服务存在更多的远程调用,需要额外考虑序列化、通信协议、数据压缩、服务间的负载均衡、容错等问题,同时,资源成本更高。另外,服务划分后,单体架构下的单库事务可能变成了分布式事务问题。

你可能感兴趣的:(系统设计和优化,微服务,架构,数据库)