1.什么是单体应用程序
单体应用程序就是所有的业务模块都是在一个应用程序中,访问一个数据库,我们平时一般使用的就是单体应用程序
2.什么是微服务
微服务就是把单体应用程序中的各个业务模块分为各个服务系统,服务之间提供REST API 供外界访问,每个服务对应各自的数据库,手机端通过API GATEWAY 进行REST API 调用,
PC 端通过各种 UI 系统组成,UI系统调用REST API
3.微服务有什么优点
第一,将复杂的单体应用程序分解为每个服务,业务更清晰
第二,每个服务可以由一个团队独立开发,开发效率更高,可以使用不同的技术
第三,每个服务独立部署,修改某个服务,就可以只发布某个服务就可以了
第四,每个服务能够独立扩展,比如某个服务注重计算,某个服务注重存储,可以根据每个服务的特性来分配服务器
4.微服务有什么缺点
第一,服务之间的调用变得复杂
第二,程序的开发调试变得复杂
第三,分布式事务的一致性变得复杂,最后不得不使用基于最终一致性的方法
第四,测试微服务变得复杂
第五,跨越多服务变更,服务之间的依赖变得复杂
第六,服务多了,部署变得复杂
参考地址:https://topsale.gitbooks.io/java-cloud-dubbo/content/chapter1.html