博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dubbo简单介绍及实例
阅读量:6251 次
发布时间:2019-06-22

本文共 1496 字,大约阅读时间需要 4 分钟。

1、概念

  Dubbo是一个分布式服务框架,以及阿里巴巴内部的SOA服务化治理方案的核心框架。其功能主要包含:高性能NIO通讯及多协议集成。服务动态寻址与路由。软负载均衡与容错,依赖分析与降级等。

  说通俗点,就是首先将程序组件化成一个个相对独立的服务,然后就能够对服务进行分布式。并且,它有注冊中心通过监听,实时发现着新服务,并部署。还能够推送给client;它还集成了负载均衡的解决方式。利用随机算法来讲各个服务科学地分配到多台server上;当然,它也集成了容错机制,来提高集群的稳定性。

  

2、架构

  

 节点角色说明:

  Ø  Provider: 暴露服务的服务提供方。

  Ø  Consumer: 调用远程服务的服务消费方。

  Ø  Registry: 服务注冊与发现的注冊中心。

  Ø  Monitor: 统计服务的调用次调和调用时间的监控中心。

  Ø  Container: 服务执行容器。

 调用关系说明:

  0. 服务容器负责启动。载入,执行服务提供者。

  1. 服务提供者在启动时。向注冊中心注冊自己提供的服务。

  2. 服务消费者在启动时,向注冊中心订阅自己所需的服务。

  3. 注冊中心返回服务提供者地址列表给消费者。假设有变更,注冊中心将基于长连接推送变更数据给消费者。

  4. 服务消费者。从提供者地址列表中,基于软负载均衡算法。选一台提供者进行调用,假设调用失败,再选还有一台调用。

  5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

 注冊中心(Registry)说明:

  对于Dubbo架构中的控制中心及Registry,阿里提供了两种方案:Zookeeper和Redis。生产环境建议大家都使用Zookeeper,推荐理由是:

  1.     Dubbo的官网上写着,使用Dubbo-2.3.3及以上的版本号,推荐使用Zookeeper注冊中心。

  2.     Zookeeper是Apache Hadoop的子项目。强度相对较好。可以全然胜任生产环境的扮演稳定的角色。

  3.     Dubbo未对Zookeeper服务端做不论什么侵入改动。仅仅需安装原生的Zookeeperserver就可以,全部注冊中心逻辑适配都在调用Zookeeperclient完毕。

3、实例

     以下将不贴出来源代码,仅仅对项目结构即部分核心代码进行简单说明。

源代码自行下载,下载地址:

  为了简单起见,这个实例中。我们没有使用Zookeeper注冊中心暴露服务地址,而是使用外网的multicast广播注冊中心暴露服务地址。这样我们能够高速的认识一下Dubbo的作用。

  案例中。我们建立了两个WebProject:dubboprovider和dubboconsumer,前者为服务提供方。后者作为client。我们将dubboprovider服务类的接口引入到dubboconsumer项目中(不能引用服务的实现类)。然后通过multicast广播注冊中心(真实环境用Registry)来远程调用dubboprovider服务的实现,假设能成功调到,就算成功。(项目中applicationContext.xml会报错,是由引起。说是阿里的相关服务换地方了,只是没关系,能够正常执行)

  

       暴露服务和引用服务的核心配置例如以下。其他代码比較简单,这里不多介绍。直接下载源代码()看就可以看懂:

  

 

转载于:https://www.cnblogs.com/clnchanpin/p/6852709.html

你可能感兴趣的文章
关于JVM内存模型,GC策略以及类加载器的思考
查看>>
ethereum/EIPs-100 挖矿难度计算
查看>>
ethereumjs/ethereumjs-blockchain-2-test
查看>>
centos7安装登录图形界面
查看>>
Css布局系列-float 浮动
查看>>
lowbit
查看>>
【总结】四月份找实习总结
查看>>
【JS】Intermediate7:jQuery:DOM API
查看>>
iphone-common-codes-ccteam源代码 CCUIApplication.h
查看>>
10,object类
查看>>
团队第一次作业
查看>>
Kooboo CMS 无聊随笔(2)
查看>>
static 和 global
查看>>
Ubuntu12.04安装及环境配置总结
查看>>
费马小定理,欧拉函数
查看>>
浮点型数据的比较
查看>>
json相关
查看>>
MpVue开发之框架的搭建
查看>>
js之放大镜效果
查看>>
Cocos2d之Node类详解之节点树(一)
查看>>