SpringCloud简介

SpringCloud介绍

  Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,

如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。

  Spring 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,

通过 Spring Boot 风格进行再封装、屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、

易部署和易维护的分布式系统开发工具包。

springcloud包含众多的子项目:

  • 服务发现——Netflix Eureka

  • 客户端负载均衡——Netflix Ribbon

  • 断路器——Netflix Hystrix

  • 服务网关——Netflix Zuul

  • 分布式配置——Spring Cloud Config

微服务 Spring Boot Spring Cloud 三者之间的关系

  • 微服务是一种架构的理念,提出了微服务的设计原则,从理论为具体的技术落地提供了指导思想。
  • Spring Boot 是一套快速配置脚手架,可以基于 Spring Boot 快速开发单个微服务。
  • Spring Cloud 是一个基于 Spring Boot 实现的服务治理工具包;
  • Spring Boot 专注于快速、方便集成的单个微服务个体;
  • Spring Cloud 关注全局的服务治理框架。

微服务中有 spring的springcloud 和 alibaba的Dubbo  ***

Doubbo于2012年放弃维护,2017 年开始又重启维护,
  新的地址:
https://github.com/apache/incubator-dubbo(dubbox)   阿里与在spring中推出的微服务 Nacos springcloud的官网:https://spring.io/projects/spring-cloud Dubbo使用的是Zookeeper注册中心,使用的服务调用方式为RPC SpringCloud使用的是Netflix的Eureka,使用的服务调用方式为http

RPC和HTTP区别

  什么是RPC呢?百度百科给出的解释是这样的:“RPC(Remote Procedure Call Protocol)——远程过程调用协议

,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议”。

1、所属类别不同

  HTTP。其因为简单、扩展性强的特点而广受开发者的青睐。

  而RPC 呢,中文描述是远程过程调用,它可以实现客户端像调用本地服务(方法)一样调用服务器的服务(方法)。

而 RPC 可以基于 TCP/UDP,也可以基于 HTTP 协议进行传输的 协议。

2、使用方式不同

  从使用上来看,HTTP 接口只关注服务提供方,对于客户端怎么调用并不关心。

接口只要保证有客户端调用时,返回对应的数据就行了。而RPC则要求客户端接口保持和服务端的一致。

HTTP 是服务端把方法写好,客户端并不知道具体方法。客户端只想获取资源,所以发起HTTP请求,

而服务端接收到请求后根据URI经过一系列的路由才定位到方法上面去

RPC是服务端提供好方法给客户端调用,客户端需要知道服务端的具体类,具体方法,然后像调用本地方法一样直接调用它。

3、面向对象不同

  从设计上来看,RPC,所谓的远程过程调用 ,是面向方法的 ,HTTP :是面向资源的

4、序列化协议不同

  通信协议,上面已经提及了,HTTP 是 基于 HTTP 协议,而 RPC 可以基于 TCP/UDP,也可以基于 HTTP 协议进行传输的。

5、从性能角度看

  由于HTTP本身提供了丰富的状态功能与扩展功能,但也正由于HTTP提供的功能过多,导致在网络传输时,

需要携带的信息更多,从性能角度上讲,较为低效。而RPC服务网络传输上仅传输与业务内容相关的数据,传输数据更小,性能更高。

原文地址:https://www.cnblogs.com/64Byte/p/13275939.html