MicroService(微服务)架构
随着代码量的增加,单体的架构会面临上面的缺点的问题,所以就出来了 SOA:面向服务的架构
微服务就是把一个单体项目,拆分为多个微服务。每一个微服务可以独立技术选型,独立开发,微服务之间通过网络协议进行通信。每个微服务可以有自己的数据库
-
优势:
(1)复杂性可控 (2)技术选型容易 (3)独立部署、独立运行 (4)扩展非常容易
缺点
(1)项目部署/运维比较麻烦,因为服务太多
(2)微服务的技术成本,人工成本比较高
(3)项目如果比较小,选择微服务反而性能很差
微服务
微服务就是把一个单体项目,拆分为多个微服务,每个微服务可以独立技术选型,独立开发,独立部署,独立运维.并且多个服务相互协调,相互配合,最终完成用户的价值.
2.1如何选择
小公司还是用单体架构,大公司才会用到微服务
在刚开始的阶段,使用Microservice架构模式开发应用的效率明显低于Monolith。但是随着应用规模的增大,基于Microservice架构模式的开发效率将明显上升,而基于Monolith模式开发的效率将逐步下降。
2.2选型
单体应用架构:中小型项目(功能相对较少)crm、物流、库存管理等
微服务架构:大型项目(功能比较多)商城、erp等
MicroService只是一种架构思想
是一种架构的理念,提出了微服务的设计原则,从理论为具体的技术落地提供了指导思想。单个服务用springboot
Java中可以使用传统ssm ssj等架构,当然更加推荐Springboot。Spring Boot是一套快速配置脚手架,可以基于Spring Boot快速开发单个微服务;服务治理框架
由于微服务架构中存在多个微服务,那么如何管理和协调这些服务呢?就需要服务治理框架,而springcloud就是是一个基于Spring Boot实现的服务治理工具包。
微服务远程调用方式
微服务与分布式的区别(概念很模糊)
微服务:在分布式的基础上对其用的本身做更细腻的拆分,每个都有自己的服务器进行部署
分布式:分多个服务其对应用进行部署
微服务一定是分布式,分布式不一定是微服务
集群:相同的东西分布给多个服务,做相同的工作
SpringCloud和Dubbo 的区别