Dubbo,zookeeper,Spring Cloud,eureka

1、Spring Cloud 和dubbo区别?
(1)服务调用方式 dubbo是RPC(远程过程调用协议), springcloud Rest Api

(2)注册中心,dubbo 是zookeeper springcloud是eureka,也可以是zookeeper

(3)服务网关,dubbo本身没有实现,只能通过其他第三方技术整合,springcloud有Zuul路由网关,作为路由服务器,进行消费者的请求分发,springcloud支持断路器,与git完美集成配置文件支持版本控制,事物总线实现配置文件的更新与服务自动装配等等一系列的微服务架构要素。

2、dobbo RPC(远程过程调用协议)

RPC即远程过程调用协议,它是一种通过网络调用远程计算机程序上的服务,而不需要了解网络底层技术的协议

RPC框架应该至少包含4个组件(客户端,客户端存根,服务端,服务端存根)

客户端调用提供者提供的服务——>客户端存根将请求参数进行序列化封装找到服务端的地址,通过网络将消息发往服务端存根——>服务端存根接收到消息,进行反序列化操作,将二进制信息转成内存中的表达式,然后调用本地的服务——>服务端进行业务操作,返回结果给服务端存根——>服务端存根将结果进行序列化操作传回客户端存根——>客户端存根接收到结果后,进行反序列化操作,并将调用结果返回给客户端——>客户端得到此次调用结果

3、dobbo

RPC和Dubbox知识详解_清茶的博客-CSDN博客_rpc和dubbo的区别

4、SPI机制

Dubbo的所有组件均由SPI进行加载,导致Dubbo的扩展性非常强,几乎所有组件均可由第三方替换实现

SPI 一套服务发现机制,即为某个接口寻找它的实现类,调用者根据实际需求启用、扩展、或者替换框架的实现策略

常见使用场景

1、数据库驱动加载实现类的加载,例:jdbc加载不同类型数据库的驱动

2、日志接口实现类加载,例:sla4j加载不同提供商的日志实现类

3、Spring中大量使用了SPI,比如:对servlet3.0规范对ServletContainerInitializer的实现、自动类型转换Type Conversion SPI(Converter SPI、Formatter SPI)等

4、Dubbo中也大量使用SPI的方式实现框架的扩展, 不过它对Java提供的原生SPI做了封装,允许用户扩展实现Filter接口

实现约定:需在jar包的resource/META-INF/services目录下创建一个“接口全限定名”为命名的文件

优点:使用java的SPI机制可以很好地实现解耦,使第三方服务模块的装配控制逻辑可以与调用者的业务代码分离,应用程序可以根据实际业务情况启用框架扩展或替换框架组件

缺点:虽然使用的延迟加载,但是接口的实现类全部加载并实例化一遍。这就造成了浪费。获取某个实现类的方式不够灵活,只能通过Iterator形式获取,不能根据某个参数来获取对应的实现类

Dubbo的SPI机制并不等同于jdk中的SPI机制,在其基础上进行了一系列增强,比如:

JDK 标准的 SPI 会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源。
如果扩展点加载失败,连扩展点的名称都拿不到了。
增加了对扩展点 IoC 和 AOP 的支持,一个扩展点可以直接 setter 注入其它扩展点。

Eureka和zookeeper的区别 - 经典鸡翅 - 博客园

CAP(C一致性 A可用性 P分区容错)

eureka是基于ap的。zookeeper是基于cp的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值