Dubbo 原理浅析

刚开始学习Dubbo,最近简单实现了Dubbo,Zookeeper,Spring的整合框架,下面写一些自己的理解,如有不足,敬请指点。

说起Dubbo,绕不开zookeeper,提供服务的server,我们定义为provider,消费服务的server,我们定义为consumer。

首先,让我们从大体上了解这几者之间的关系,举一个现实中的例子,zookeeper就像是我爱我家这种房屋中介,在平时,想买房的人consumer和想卖房provider的人互相找不到对方,所以双方约定俗成,找一个第三方登记,以便获取自己需要的信息。而dubbo的功能就像是中介里的服务人员,根据每个人的需求不同,将每个人的具体需求登记在中介的总信息库中。

下面提供了provider的部分spring配置信息:

    <!--在 dubbo-admin 或 dubbo-monitor 会显示这个名字,方便辨识身份,是provider还是consumer-->
    <dubbo:application name="demotest-provider" owner="programmer" organization="dubbox"/>
    <!--使用 zookeeper 注册中心,注意要先开启 zookeeper,此地的ip和port是zookeeper相关属性-->
    <dubbo:registry address="zookeeper://localhost:2181"/>
    <!-- 用dubbo协议在20880端口暴露服务,我们传递的信息要符合dubbo的protocol协议,定义名字为dubbo1 -->
    <dubbo:protocol name="dubbo1" port="20880" />
    <!--利用刚刚定义的协议暴露服务 api.DemoService 接口,说明我们实现的是这个服务中所有的私有方法-->
    <dubbo:service interface="api.DemoService" ref="demoService" protocol="dubbo1" />
    <!--具体实现该接口的 bean,通过spring加载进去进行实现-->
    <bean id="demoService" class="provider.DemoServiceImpl"/>
下面提供了consumer 的部分spring配置信息:

    <!--在 dubbo-admin 或 dubbo-monitor 会显示这个名字,方便辨识身份,是provider还是consumer-->
<dubbo:application name="demotest-consumer" owner="programmer" organization="dubbox"/> <!--同样适用zookeeper注册中心,由 zookeeper 定时推送,推送配置在zookeeper中完成--> <dubbo:registry address="zookeeper://localhost:2181"/> <!--和zookeeper说,我需要调用zookeeper中注册过的api.DemoService 服务,并指定调用为私有的permissionService方法--> <dubbo:reference id="permissionService" interface="api.DemoService"/>


在这个过程中,绕不开api.DemoService服务,这是自己定义的一个接口,我们需要将其提取出来定义成jar,暴露给在provider端和consumer端。

以上都是一些简单搭建,在别的地方看到的Dubbo原理详解,内容需要仔细看看,简单看了看,确实蛮详细的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值