微服务
① 微服务是一个架构风格。
② 把一个项目拆分成独立的多个服务;多个服务是独立运行,每个服务占用独立进程。
适合使用微服务的业务项目
由功能上
微服务可以按照业务功能本身的独立性来划分,如果系统提供的业务是非常底层的,如:操作系统内核、存储系统、网络系统、数据库系统等等,这类系统都偏底层,功能和功能之间有着紧密的配合关系,如果强制拆分为较小的服务单元,会让集成工作量急剧上升,并且这种人为的切割无法带来业务上的真正的隔离,所以无法做到独立部署和运行,也就不适合做成微服务了。除此之外,其他业务项目都可以适合做微服务。
比较流行的微服务开发框架
Spring Cloud :现在非常流行的微服务架构
Dubbo:开源分布式服务框架
Dropwizard:关注单个微服务的开发
微服务与单体架构区别
① 单体架构所有的模块全都耦合在一块,代码量大,维护困难。
微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
② 单体架构所有的模块都共用一个数据库,存储方式比较单一。
微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。
③ 单体架构所有的模块开发所使用的技术一样。
微服务每个模块都可以使用不同的开发技术,开发模式更灵活