Spring Cloud 微服务架构的原理剖析

举例:电商项目中,订单支付功能,所引发的微服务体现。

比如在淘宝中,我们创建了订单后,如果用户紧接着支付了这个订单,那么我们首先要改变这个订单状态为“已支付”
相应扣减库存
然后通知储货中心,发货
给用户这次购买增加相应的积分

针对上述,我们分为,订单服务,库存服务,发货服务,积分服务
那么,当请求上述:
订单服务先去数据库更新状态
订单服务调用库存服务,扣减
订单服务调用发货服务,发货
订单服务调用积分服务,加分
至此整个订单支付流程走完

如下图,我们清晰的看懂以上流程:

在这里插入图片描述

接下来,我们使用spirngcloud 微服务来简单绘个图:
在这里插入图片描述

我们具体描述一下以上过程:

  • Eureka:各个服务启动后,Eureka Client 都会将服务注册在Erueka Server中,并且client可以从server中拉去注册表,从而知道服务那个ip,端口
  • Ribbon: 服务间发起请求,微服务中可能有多台机器来部署,基于ribbon负载均衡,通过算法(轮训,权重等)从一个服务中选择一台机器
  • Fegin:基于fegin的动态代理会根据接口上的@RequestMapping,@FeginClient,@PathVariable等注解,来动态的构造出请求的路径
  • Hystrix:微服务中,是由多个服务组成,有一个服务挂掉,会影响到调用他的服务长时间未响应而停止请求,很容易产生服务雪崩的情况,那么我们通过不同的服务走不同的线程池,实现了不同服务之间的隔离,避免服务雪崩,这只是熔断了服务,但是我们并没有操作什么东西,这个时候,我们可以降级,每次调用挂掉的服务,来新增一条数据,比如积分服务挂掉了,那么等恢复后,我们可以手动给用户增加上,这就是所谓的降级。
  • Zuul:如果前端,移动端调用我们后端系统时,你后端有上百个服务器来部署的服务,这样的话让请求统一走网关,网关会根据请求中的一些特征,将请求转发给后端的各个服务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值