随着互联网发展,网站的应用规模在不断的扩大,普通的单体应用不能满足需求,可能一处小小的修改就回导致一个应用的重新部署,而且也不能对付大流量访问。
此时使用微服务架构来实现,功能模块化,比如可以拆分出USER(用户模块),order(订单模块);当用户模块访问量很大时,可以把用户模块独立部署到1号机,2号机,3号机...同时来运行用户模块;1号机200并发,2号机200并发,3号机200并发,这样就一共有600了..;订单模块也可以进行相同的部署;
如果用户模块和订单模块需要数据交互,需要通过RPC(远程调用技术)来实现。以前是通过webservice接口来实现数据交互,但是太麻烦了,需要有RPC服务框架来实现。在分布式系统中,国内常用zookeeper+dubbo组合,而Spring Boot推荐使用全栈的Spring(Spring Boot+Spring Cloud)。
总结:
阶段一:单体服务单体结构:一个人把事全做了
阶段二:微服务分布式+微服务:几个人合伙做事,每个人负责一个模块。这就是微服务。分布式是什么呢?
分布式和微服务的区别在于:分布式是从部署的层面考虑的,微服务是从设计的角度来分析,
阶段三:分布式+微服务+集群:一个活作为一个集群分给几个人干,更能满足需求
以下对微服务技术的分析:当用户模块需要访问订单模块时,需要指定从订单模块1号机,还是2号机来访问...这时就需要注册中心,通过注册中心来判断选择那个。
zookeeper+dubbo组合与Spring Boot+Spring Cloud区别:dubbo主要解决服务之间远程过程调用问题(RPC);而Spring Cloud提供了在分布式系统中的一个整体的解决方案(服务发现、路由、分布式session、集群...)。通过Spring Cloud快速启动服务或构建应用