`
chenjingbo
  • 浏览: 460102 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Dubbo介绍1- Hello World例子

 
阅读更多

介绍

dubbo是阿里巴巴的开源RPC框架。阿里巴巴Dubbo实现的源码分析 这篇文章介绍的挺好的。对应的主页是 http://code.alibabatech.com/wiki/display/dubbo/Home  。看dubbo主要是想学习一下对应的ClassLoader的隔离机制。不过所有技术都总HelloWorld开始,那就mark一下吧。

 

正文

我是通过zk做服务集群管理的。所以如果要跑下面这个程序,需要自己搭一个zk集群 

对应的接口

 

package demo.service;

/**
 * User: zhenghui
 * Date: 14-1-13
 * Time: 上午10:40
 */
public interface DemoService {
    public void sayHello();
}

 实现类

package demo.service;

/**
 * User: zhenghui
 * Date: 14-1-13
 * Time: 上午10:41
 */
public class DemoServiceImpl implements DemoService {
    @Override
    public void sayHello() {
        System.out.println("hello 00!");
    }
}

 

provider.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://code.alibabatech.com/schema/dubbo
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        ">
    <dubbo:application name="hello-world-app" />
    <dubbo:registry  protocol="zookeeper" address="10.125.195.174:2181" />
    <dubbo:protocol name="dubbo" port="20880" />
    <dubbo:service interface="demo.service.DemoService"
                   ref="demoService" />       <!-- 和本地bean一样实现服务 -->
    <bean id="demoService" class="demo.service.DemoServiceImpl" />
</beans>

 

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * User: zhenghui
 * Date: 14-1-13
 * Time: 下午1:54
 */
public class DubboProviderDemo {

    public static void main(String[] args) throws InterruptedException {

        new ClassPathXmlApplicationContext(
                new String[] {"demo/provider.xml"});
        while (true){}

    }
}

 

comsumer 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://code.alibabatech.com/schema/dubbo
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        ">
    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="consumer-of-helloworld-app" />       <!-- 使用multicast广播注册中心暴露发现服务地址 -->
    <dubbo:registry  protocol="zookeeper" address="10.125.195.174:2181" />         <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference id="demoService" interface="demo.service.DemoService" />
</beans>

 

import demo.service.DemoService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * User: zhenghui
 * Date: 14-1-13
 * Time: 下午1:54
 */
public class DubboComsumeDemo {

    public static void main(String[] args) throws InterruptedException {

        ApplicationContext factory = new ClassPathXmlApplicationContext(
                new String[] {"demo/comsumer.xml"});

        DemoService demoService = (DemoService) factory.getBean("demoService");
        demoService.sayHello();

    }
}

 

先运行 DubboProviderDemo 然后再运行DubboComsumeDemo ,然后就可以看到在DubboProviderDemo的console中打印 “hello 00!”

 

后面我会继续介绍dubbo,计划下一篇内容是它是如何启动provider的。

分享到:
评论

相关推荐

    Dubbo搭建HelloWorld-创建服务提供者与消费者示例代码

    在本教程中,我们将深入探讨如何使用Apache Dubbo构建一个简单的"Hello, World"应用程序,该程序包括服务提供者和服务消费者。Dubbo是一款高性能、轻量级的Java RPC框架,它能够帮助开发者实现分布式服务之间的通信...

    Dubbo入门之HelloWorld

    本文将基于"Dubbo入门之HelloWorld"的主题,深入探讨如何从零开始学习并实践Dubbo的基本用法。 首先,我们需要了解什么是RPC(Remote Procedure Call)。RPC是一种使程序可以调用另一个系统中的函数或方法的技术,...

    spring boot 集成 dubbo consumer provider 例子

    本示例将详细介绍如何在 Spring Boot 项目中集成 Dubbo,实现 Consumer(消费者)和 Provider(提供者)的功能。 1. **创建 Spring Boot 项目** 首先,你需要创建一个新的 Spring Boot 项目。可以使用 Spring ...

    dubbo-SSM框架搭建.zip

    在压缩包内的" dubbo_helloworld "文件可能包含了以下内容:服务接口定义、服务实现、服务暴露配置(如dubbo配置文件)、消费者端的引用配置以及运行示例所需的启动脚本或测试类。通过分析和运行这个示例,学习者...

    SpringBoot+Dubbo简单测试例子

    1. **引入依赖**:首先,需要在`pom.xml`文件中添加SpringBoot的父依赖和Dubbo的相关依赖,包括`spring-boot-starter`、`dubbo-spring-boot-starter`以及服务提供者和服务消费者的依赖。 2. **配置Dubbo**:在`...

    dubbo入门例子程序

    这个例子通过一个"Hello, World!"的应用来演示Dubbo的基本用法,采用Maven作为项目构建工具,方便开发者直接导入到IDE中运行。 首先,我们需要了解Dubbo的核心概念。Dubbo是一个基于Java的RPC(Remote Procedure ...

    php-dubbo-proxy:dubbo的php开发人员代理,基于dubbo的telnet协议

    调用telnet命令invoke,例如invoke com.phpple.service.FooService.bar('hello,world')\n 。 您可以在以下位置找到telnet命令: 从套接字的响应中读取并进行解析。要求PHP安装composer require phpple/...

    dubbo2.0源码解读

    4. **HelloWorld例子**:这个简单的示例展示了如何使用Dubbo创建服务提供者和服务消费者。通过配置XML或API,定义接口、实现服务、启动服务提供者,然后在消费者端引用服务,完成调用。 5. **源文件概述**:Dubbo的...

    阿里巴巴开源RPC框架dubbo的hellworld实例

    在这个"阿里巴巴开源RPC框架dubbo的hello world实例"中,我们将深入理解dubbo的基本工作原理和如何创建一个简单的应用。 首先,我们需要了解dubbo的核心概念。dubbo提供服务提供者(Provider)、服务消费者...

    dubbo源码解析2

    一个典型的Dubbo HelloWorld例子通常包括服务提供者和服务消费者两个部分,通过简单的示例程序演示了如何注册服务、发布服务和调用服务。 #### 五、源文件概述 Dubbo的源代码主要由以下几个部分组成: 1. **core*...

    dubbo源码解析 1 pdf2.0

    2. HelloWorld例子:通过最简单的例子,理解Dubbo服务的提供者和消费者是如何交互的。 3. 源文件概述:对源码的各个模块和文件有一个概览,明白它们的作用和相互关系。 4. 核心机制分析:详细分析Dubbo的设计模式...

    dubbo源码解析

    4. Hello World例子是了解dubbo工作流程的第一步。通过编写一个简单的例子,可以直观地看到dubbo的使用方式和调用流程。 5. 源文件概述环节则是对dubbo主要源文件和目录结构进行说明,帮助读者快速找到自己需要阅读...

    《可伸缩服务架构框架与中间件》-dubbo的demo

    这是《可伸缩服务架构框架与中间件》中dubbo部分的例子——HelloWorld。这本书对初学者不友好,讲解的不是很细致,有些必须配置也没有提及。小编的例子(dubbo+zookeeper+maven+Idea)对此进行了完善:...

    Apache Dubbo:Dubbo配置与参数详解

    ### Apache Dubbo:Dubbo配置与参数详解 #### 一、Dubbo概述 Apache Dubbo是一款高性能、轻量级的微服务框架,主要用于构建服务化的应用程序和服务治理平台。它提供了全面的服务治理解决方案,包括服务发布、发现...

    spring-boot示例项目

    该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户...

    JAVA上百实例源码以及开源项目源代码

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

Global site tag (gtag.js) - Google Analytics