Dubbo简单使用说明

1 篇文章 0 订阅
1 篇文章 0 订阅

初次接触到RPC框架还是从RMI框架开始的,当时使用了Hessian进行远程的方法调用,于是乎慢慢的去查找相关资料去了解.

有幸的是在第一次在公司做分布式集群的时候,就能将当初了解的RPC框架--Dubbo给用上.后面由于自己又在学习和使用Hadoop,慢慢也就自己和朋友一起在研究和写RPC框架,对其一些异常也慢慢的去了解和分析.

好了,不说多了,先来介绍下Dubbo.Dubbo是一个资源调度和治理中心的管理工具.其实内部就是一个RPC框架.Dubbo的架构如图所示:

主要就是这5个节点:

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

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

Registry: 服务注册与发现的注册中心。使用Zookeeper进行

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

Container: 服务运行容器。就是Spring


各个节点的调用关系:

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

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

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

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

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

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


上面的解释应该都很好理解,这个流程图是官方的,也比较好理解.对于初步使用者来说,可能这个Monitor觉得似乎和自己的关系不大,我开始时候也是这么想的,随着你往后进行深入了解,就知道这个节点有多么重要了.所以每个节点,大家都要好好去理解.


上面将Dubbo的基本架构说了遍,下面我们来讲讲Dubbo的基本工作流程和调用关系:

Dubbo分为服务端和客户端:服务端负责发布服务,暴露远程服务的配置;客户端负责调用服务.图片上的调用关系写的很清晰,就不详细的讲解了.


下面就实际的配置进行相关的说明.

在上面说过了,Dubbo有个Registry,这个是向Zookeeper进行注册的,因此在使用Dubbo的时候,配置中无论是服务端还是客户端,都需要向Zookeeper进行注册.服务端注册,客户端监听.关于Zookeeper我会在后续的文章中进行详细的讲解.

服务端:

<!-- 使用dubbo发布服务 -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="monkey-manager" />
<dubbo:registry protocol="zookeeper"
	address="IP1:2181,IP2:2181,IP3:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.moneky.service.ItemService" ref="itemServiceImpl" />
注意:这里面的IP1,IP2,IP3是你Zookeeper所在的服务器的IP,后面的2181是Zookeeper的默认port.由于我本身的测试环境是3台集群,所以写了3个IP,各位根据自身的实际情况配置即可

客户端:

<!-- 引用dubbo服务 -->
<dubbo:application name="monkey-manager-web"/>
<dubbo:registry protocol="zookeeper" address="IP1:2181,IP2:2181,IP3:2181"/>	
<dubbo:reference interface="com.monkey.service.ItemService" id="itemService" />

以上也可以看出,Dubbo的基本使用是非常简单的,但是其内部实现的原理是非常复杂的,源码也是.我会在后面单独写下关于Zookeeper和RPC,Netty以及NIO的相关资料,如果有时间的话... ...


我们接下来讲讲5个节点里面的Monitor.

这个Monitor其实是非常有用的,我在这里只是简单的讲下如何使用.

首先,我们需要将dubbo-admin-2.5.4.war放在tomcat的webapps这个目录下,版本根据自己下载的定,

其次,启动tomcat.访问路径为:ip+端口/dubbo-admin-2.5.4.登陆进去是要输入账号密码的,账号密码默认是root.大家就能进入了.

这个有个配置文件,是可以修改相关数据的,如下(我是在linux环境下的):



本篇文章没有介绍关于Dubbo的各种异常的解决.这个我会在后期进行更新,和Zookeeper,RPC,Netty一起进行相关的更新.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值