spring cloud微服务体系

spring cloud微服务体系

微服务涉及组件

  • 服务注册与发现
  • 服务调用
  • 服务网关
  • 服务降级熔断
  • 服务配置中心和服务总线
  • 中间件消息驱动
  • 链路追踪

当下springcloud中的可选方案

服务注册,发现,调用

服务注册中心维护着服务提供者的信息,能使得服务消费者调用。三者关系如下

三者关系

服务注册中心拥有着已注册服务的ip,端口,调用地址等基本信息。通过api可以获取的到全部服务的信息。在程序中,可以通过注入DiscoveryClient来获取服务列表的实例信息。

List<ServiceInstance> instances = 
discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");

所以我们能简单的能通过ribbon来定义服务调用的规则,是轮询的还是随机的还是带有其他权重的。并且使用restTemplate来调用uri。

服务网关

服务降级熔断

服务降级:在发生异常时会有对应的降级方法去代替。可以理解为一级方法处理不了,降级到二级方法处理。使服务产生降级的方式有:服务异常,服务限流。

服务熔断:在过多的降级后,会降级该服务的任何请求,即在熔断期内,该服务所有的调用都被降级方法处理。

在降级在同一时间窗口期中达到设定的比例后会被熔断。而在服务被熔断后,该服务的调用在这个时间窗口中总是会被降级,直到窗口期结束。

例如,在一秒内请求10次,降级比例达到百分之60,就被熔断了。而只有在一秒后才有可能再次请求成功。

而在服务熔断结束后,会处在一个半开阶段。这时如果请求还是失败,会再次进入熔断状态。直到下一个窗口期中首次调用成功后解除熔断状态。

服务配置中心和服务总线

将配置保存到配置中心中。服务启动时会到配置中心去获取配置来代替加载本地配置。减少多份相同配置造成的重复修改和配置冗余。并且能动态生效配置的更改。

在spring cloud config和spring cloud bus中,是使用消息订阅的方式来使所有的服务生效更新的配置。如下图

bus通知所有的服务生效配置

链路追踪

在服务调用中,许多服务的调用就形成一条长的调用链,服务越多,链路越长,而在期间产生错误或者整体调用过慢时,需要定位到某个服务来解决问题。

链路追踪的作用则是记录下每次服务间的调用关系和调用耗时。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×