SpringCloud概述
2022-09-22 22:47:08

最近学习了how2j.cn的SpringCloud的教程,加上自己之前零零散散读的一些博客文章。想着做一个总结,来输出一下自己对SpringCLoud的理解。也是自己对SpringCLoud的知识的一个梳理和系统化的过程。由于自己也是在学习的过程,可能某些不是十分准确。
以下是自己目前阶段对于SpringCloud的总体理解,随着深入的学习可能会在写一些具体应用的文章

传统的分布式:

主要将项目工程,数据库服务,缓存等服务部署在不同的机器上来达到高可用的状态。比如:同样的整个项目工程部署了3份到3个不同的机器,Mysql服务部署到了第4台机器。

目前主流的微服务

将原来的整个项目拆分成不同的模块。比如:电商项目可以拆分成支付模块、订单模块、库存模块等。这些模块可以作为一个小项目来进行独立的开发、运维和技术选型。在部署时将这些模块作为一个个小项目独立的部署到多台机器上,比如订单模块和支付模块部署5份,库存模块部署3份等。这里可以称做这些小模块为:一个个的微服务。
这些微服务由SpringCLoud的Eureka注册中心来进行统一的管理,包括微服务的注册,发现。比如订单模块有5份实例可以使用,则可以用Ribbon或者Feign来进行负载均衡,比如当有1万个请求过来时,就可以将请求尽量均匀地打到这5个服务,可能A服务接受处理2300个请求,B服务处理了2000个请求等等。这时可能出现这样的情况,比如A服务挂掉了(比如A服务的机器突然关机、内存不足等情况),那么A服务就无法在继续处理发来的请求,或者B服务调用A服务的请求,这时如不进行处理就会出现服务阻塞或者页面报错的情况。这就引出了SpringCloud的另一个组件Hystrix,它就是用来解决上述问题的。
SpringCloud的五大组件:

  1. Eureka(注册中心)
2022-09-22 22:47:08
Next