SpringCloud & Dubbo

1 什么是SpringCloud

Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。

2 SpringCloud 五大组件

springcloud五大组件:
1、注册中心组件(服务治理):Netflix Eureka;
2、负载均衡组件:Netflix Ribbon,各个微服务进行分摊,提高性能;
3、熔断器组件(断路器):Netflix Hystrix,Resilience4j ;保护系统,控制故障范围;
4、网关服务组件:Zuul,Spring Cloud Gateway;api网关,路由,负载均衡等多种作用;
5、配置中心:Spring Cloud Config,将配置文件组合起来,放在远程仓库,便于管理;

3 什么是Dubbo

https://blog.csdn.net/wender/article/details/125233339

Dubbo是 阿里巴巴公司开源的一个高性能RPC 分布式服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和
Spring框架无缝集成,现已成为 Apache 基金会孵化项目。

随着服务化的进一步发展,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的框架体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通性协议、序列号方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样分布式系统的服务治理的框架就出现了,Dubbo就这样产生了,它实现了面向接口代理的 RPC 调用,服务注册和发现,负载均衡,容错,扩展性等等功能。

4 Dubbo里面有哪几种节点角色

节点角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

 

 

 

5 Dubbo核心的配置有哪些?

也可以理解成三层:

  • Business -由开发者自己提供接口和实现
  • RPC - 负责封装和实现整个RPC的调用过程,负载均衡,集群容错,代理等
  • Remoting - 是对网络协议和数据转化的一个封装。

 

 

配置配置说明
dubbo:service 服务配置
dubbo:reference 引用配置
dubbo:protocol 协议配置
dubbo:application 应用配置
dubbo:module 模块配置
dubbo:registry 注册中心配置
dubbo:monitor 监控中心配置
dubbo:provider 提供方配置
dubbo:consumer 消费方配置
dubbo:method 方法配置
dubbo:argument 参数配置

6. Dubbo工作原理

Dubbo 有四种注册中心的实现,分别是 ZooKeeper,Redis,Simple 和 Multicast。

这里着重介绍一下 ZooKeeper 的实现。ZooKeeper 是负责协调服务式应用的。

它通过树形文件存储的 ZNode 在 /dubbo/Service 目录下面建立了四个目录,分别是:

  • Providers 目录下面,存放服务提供者 URL 和元数据。
  • Consumers 目录下面,存放消费者的 URL 和元数据。
  • Routers 目录下面,存放消费者的路由策略。
  • Configurators 目录下面,存放多个用于服务提供者动态配置 URL 元数据信息。

Zookeeper(注册中心)的工作原理

步骤:
1.当服务提供者启动时,将自己的IP地址/端口号/服务数据一起注册到注册中心中.
2.当注册中心接收提供者的数据信息之后,会维护服务列表数据.
3.当消费者启动时,会连接注册中心.
4.获取服务列表数据.之后在本地保存记录.
5.当用户需要业务操作时,消费者会根据服务列表数据,之后找到正确的IP:PORT直接利用RPC机制进行远程访问.
6.注册中心都有心跳检测机制.当发现服务器宕机/或者新增服务时.则会在第一时间更新自己的服务列表数据,并且全网广播通知所有的消费者.

 

7 Spring Cloud 和 Dubbo 对比

Dubbo 只是实现了服务治理,而 Spring Cloud 实现了微服务架构的方方面面,服务治理只是其中的一个方面。下面通过一张图对其进行比较:

 

posted @ 2022-11-21 15:59  NingShare  阅读(17)  评论(0编辑  收藏  举报