一直在做一个基于Spring Cloud的电商平台,也想趁次机会分享自己的一点心得和体会,也为自己留下一点记录,希望我的经验让你少走一点弯路,也希望有兴趣的朋友可以多多关注,你的建议和问题可以给我更多反思和灵感。
废话不多说(对于熟悉Spring Cloud 的朋友下面全是废话),因为该平台是基于Spring Cloud,所以第一天还是简单的介绍一下Spring Cloud。
Spring Cloud 常用组件:
Spring Cloud Config:配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。
Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
Netflix Eureka:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。
Netflix Hystrix:容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
Netflix Zuul:边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。
Netflix Ribbon:提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用
Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。
下面我们通过一张图看看组件间是如何工作的:
1. 其中Eureka负责服务的注册与发现,很好将各服务连接起来
2. Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护。
3. Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示
4. Spring Cloud Config 提供了统一的配置中心服务
5. 当配置文件发生变化的时候,Spring Cloud Bus 负责通知各服务去获取最新的配置信息
6. 所有对外的请求和服务,我们都通过Zuul来进行转发,起到API网关的作用
7. 通过Sleuth和Zipkin将所有的请求数据记录下来,方便我们进行后续分析
还有更多组件就不依依介绍了,想要了解更多详细情况可以登陆Spring Cloud中文官网https://springcloud.cc/
下一节将主要介绍所要开发电商平台的架构,敬请关注!
领取专属 10元无门槛券
私享最新 技术干货