新人学习笔记-Dubbo框架集合

来源:互联网 发布:输入域名查询真实ip 编辑:程序博客网 时间:2024/05/21 11:25

Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案。

Dubbo作为一个分布式的服务治理框架,提供了集群部署,路由,软负载均衡及容错机制

Dubbo主要用于分布式架构中,解决远程服务调用以及服务注册与发现等问题,但不影响视图层,数据访问层使用的技术。

----------------------------------------------------------------------------------------------------------------------

有什么优势?

  Dubbo提供动态服务注册与发现机制,使服务集群能够平滑升级和优雅降级,提高集群伸缩性。
  Dubbo提供软负载均衡及容错方案,减少对硬件负载均衡器的单点依赖,提升网站可靠性。 并且Dubbo的通讯协议针对常规的服务,一般都请求数据量小,但并发量大,消费者远比提供者多等情况,做了优化。


最近看了Dubbo的视频写下自己对Dubbo的理解

因为项目使用maven搭建,所以前后台分离,用Dubbo使前后台交互连接,如有错误 ,多多指教

Dubbo面试问题(这也是转载的[http://blog.csdn.net/luwei42768/article/details/54847427]):

1 面试题:Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
可以的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地。每次调用时,按照本地存储的地址进行调用

注册中心对等集群,任意一台宕掉后,会自动切换到另一台
注册中心全部宕掉,服务提供者和消费者仍可以通过本地缓存通讯
服务提供者无状态,任一台 宕机后,不影响使用
服务提供者全部宕机,服务消费者会无法使用,并无限次重连等待服务者恢复
2 dubbo连接注册中心和直连的区别
在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,
点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,

服务注册中心,动态的注册和发现服务,使服务的位置透明,并通过在消费方获取服务提供方地址列表,实现软负载均衡和Failover, 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外,注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者
注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表
注册中心和监控中心都是可选的,服务消费者可以直连服务提供者

3、Dubbo在安全机制方面是如何解决的
Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。

最近参加一些面试,总是会问到关于dubbo是用的什么协议,然后查询了相关资料对dubbo协议进行分析

在使用dubbo的时候会配置<dubbo:protocolname="dubbo"port="20880"/>所以再回答面试官的时候就随口说的是dubbo协议,其实面试官问的此协议非彼协议,而是问的是http协议还是Tcp协议,因为dubbo的核心就是用的单一长连接进行异步通信。

      那问题来了为什么要用dubbo进行数据传输?

      一般服务端服务器比较少,消费端有可能会有很多项目或者工程会调用dubbo的接口,而且数据量传输较小且并发量比较高的情况下用dubbo效率会很高。

   Tcp协议和HTTP怎么更好理解呢?

我举两个例子的,方便大家更好的理解:

           Tcp协议就是所谓的长连接,他就像是经销商和厂商的关系,经销商开始与厂商进行联系,我代理你的货吧,厂商给一个回复可以啊,我这就给你发货,然后经销商收到货后然后打款给厂商说我收到货了。但是自此经销商就和厂商不联系了么?显然不是的,厂商会与经销商建立长期的合作关系。厂商会时不时的给经销商联系你的货卖完没,就是类似TCP的检测包,然后经销商会给厂商一个回馈,我货卖完了你再给我发货吧自此。。。直到经销商关闭不再经销这家厂商货物的时候这个连接算是彻底关闭。

   HTTP协议呢就是所谓的短连接,他就像是一次普通的网上购物,我打开一家商店,选好商品之后,下单,支付宝付款,然后商家收到订单后,发货,快递员送到我手里然后点击确认收货,将款打到卖家手里,经典的三次握手。


长连接的好处:

减少来回握手的频率,当操作频繁,点对点的通讯时,可以同时发送多个数据包,以不至于服务者被消费者压死

转载 http://www.cnblogs.com/chy2055/p/5110861.html


原创粉丝点击