Dubbo

一、个人理解

    程序员A写了一个服务(servie),按照DUBBO的规则进行配置,程序员B、程序员C、程序员N......可以用的像程序员A一样,毫无违和感,这就是DUBBO。

    都知道Socket通信。程序员A 写了一个java界堪称经典的 "Hello Word" 服务。并告诉程序员B IP和PORT ,程序员B 按照Socket的通信规则写好代码与程序员A通信,结果 "Hello Word" 便跃然控制台。这是通信,这是通信,这是通信,重要的事情说三遍。然而貌似对DUBBO的解释并没有什么卵用。醉了。

        调用A (点对点)

    B----------------->A 

    有一天程序员A,又在自己电脑上兴致勃勃的写下了一个 Print "Hello Word" 的经典、简陋服务。程序员A 觉得好的东西要懂得分享,于是乎,就将Print "Hello Word" 的经典、简陋服务注册到程序员C的电脑上,然后就告诉程序员B的注册地址(程序员C的IP和PORT),程序员B按照DUBBO的通信规则写好代码,结果 结果 "Hello Word" 便跃然控制台。

        注册服务到C            C用调 

    A----------------->C<----------------A

二、DUBBO组成

    Provider 服务提供方

    Consumer 服务订阅方

    Registry 服务注册中心 

    Monitor  服务监控(统计某个服务被调用次数等)   

三、代码大放送

    服务端

    服务:SaySomethingService

    public String saySomething(String message);

    实现:SaySomethingServiceImpl

    @Override

    public String saySomething(String message) {

        LOG.info("==================================================");

        LOG.info("message : " + message);

        LOG.info("==================================================");

        return message;

    }

    服务有了,结合Spring进行配置

    <!-- 服务方应用名,用于计算依赖关系 -->

    <dubbo:application name="say-something-app-server"/>

    <!-- 将写好的服务 通过multicast广播到DUBBO的注册中心-->

    <dubbo:registry address="multicast://224.5.6.7:1234"/>

    <!-- 用dubbo协议在20880端口暴露服务 -->

    <dubbo:protocol name="dubbo" port="20880"/>

    <!-- 声明需要暴露的服务接口 -->

    <dubbo:service interface="com.sdyc.ndmp.wechat.bean.SaySomethingService" ref="saySomethingService"/>

    <!-- 和本地bean一样实现服务 -->

    <bean id="saySomethingService" class="com.sdyc.ndmp.wechat.bean.SaySomethingServiceImpl"/>

   

    消费端:

    <!-- 消费方应用名,用于计算依赖关系 -->

    <dubbo:application name="say-something-app-consumer"/>

    <!--使用multicast广播注册中心暴露发现服务地址-->

    <dubbo:registry address="multicast://224.5.6.7:1234"/>

    <!-- 和本地bean一样实现服务 -->

    <dubbo:reference id="saySomethingService" interface="com.sdyc.ndmp.wechat.bean.SaySomethingService"/>

    完毕。


你可能感兴趣的:(Dubbo)