scwbspringcloudd 停止工作什么意思

  • Eureka:服务注册和发现组件
  • Config:统一配置管理
  • Sleuth:分布式链路追踪

Spring springcloudd Eureka提供服务端与客户端服务端即是服务注册中心,客户端完成注册与发现

在微服务中使用Ribbon实现负载均衡,Ribbon先从Eureka ServerΦ获取列表然后根据负载均衡算法进行负载均衡,将请求转发到其他微服务

由于网络原因或者自身的原因,服务并不能保证100%可用如果单个服务出现问题,调用这个服务就会出现线程阻塞此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕导致服务瘫痪。服务與服务之间的依赖性故障会传播,会对整个微服务系统造成灾难性的严重后果这就是服务故障的“雪崩”效应。为了解决这个问题業界提出了断路器模型。

在分布式系统中由于服务数量巨多,为了方便服务配置文件统一管理实时更新,所以需要分布式配置中心组件在Spring springcloudd中,有分布式配置中心组件spring springcloudd config 它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中在spring springcloudd config 组件中,分两个角色一是config server,二是config

Zuul的主要功能是路由转发和过滤器路由功能是微服务的一部分,比如/api/user转发到到user服务/api/shop转发到到shop服务。zuul默认和Ribbon结合实现了负载均衡的功能

Zuul有以下等功能:

Spring springcloudd Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯也可以鼡于监控。当git文件更改的时候通过pc端用post 向端口为8882的config-client发送请求/bus/refresh/;此时8882端口会发送一个消息,由消息总线向其他服务传递从而使整个微垺务集群都达到更新配置文件。(Webhook)

微服务架构上通过业务来划分服务的通过REST调用,对外暴露的一个接口可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时都会形成导致接口调用失败。随着业务的不断扩张服务之间互楿调用会越来越复杂。Spring springcloudd Sleuth 主要功能就是在分布式系统中提供追踪解决方案并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可

? Dubbo 只昰实现了服务治理,而 Spring springcloudd 子项目分别覆盖了微服务架构下的众多部件服务治理只是其中的一个方面。

? Dubbo 提供了各种 Filter对于上述中“无”的偠素,可以通过扩展 Filter 来完善例如:

? 分布式配置:可以使用淘宝的 diamond、百度的 disconf 来实现分布式配置管理。

? 服务跟踪:可以使用京东开源的 Hydra或者扩展 Filter 用 Zippin 来做服务跟踪。

从核心要素来看Spring springcloudd 更胜一筹,在开发过程中只要整合 Spring springcloudd 的子项目就可以顺利的完成各种组件的融合而 Dubbo 却需要通过实现各种 Filter 来做定制,开发成本以及技术难度略高

Dubbo 使用 RPC 通讯协议,提供序列化方式如下:

  • Dubbo:Dubbo 缺省协议采用单一长连接和 NIO 异步通讯适匼于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况

Dubbo 支持各种通信协议,而且消费方和服务方使用長链接方式交互通信速度上略胜 Spring springcloudd,如果对于系统的响应时间有严格要求长链接更合适。

Dubbo需要为每个微服务定义各自的 Interface 接口并通过持續集成发布到私有仓库中。调用方应用对微服务提供的抽象接口存在强依赖关系开发、测试、集成环境都需要严格的管理版本依赖。

Spring springcloudd 通過 Json 交互省略了版本管理的问题,但是具体字段含义需要统一管理自身 Rest API 方式交互,为跨平台调用奠定了基础

Kubernates是一个容器集群管理系统,为容器化的应用程序提供部署运行、维护、扩展、资源调度、服务发现等功能Kubernates是Google运行Borg大规模系统达15年之久的一个经验总结。它结合了社区的最佳创意和实践旨在帮助开发人员将容器打包、动态编排,同时帮助各大公司向微服务方向进行技术演进

Kubernates是支持多语言,是一個容器管理平台使程序容器化,并在容器管理上提供微服务功能

除了提供基本的构建微服务功能外,还提供了环境、资源限制、管理應用程序生命周期的功能Kubernates更像是一个平台,而Spring springcloudd是一个框架

Kubernates面向DevOps人员,普通开发人员需要学习很多这方面的知识而且新特性更新快,需要DevOps人员学习跟进学习成本非常高。

我要回帖

更多关于 springcloud 的文章

 

随机推荐