介绍
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的。
相关推荐
在本教程中,我们将深入探讨如何使用Apache Dubbo构建一个简单的"Hello, World"应用程序,该程序包括服务提供者和服务消费者。Dubbo是一款高性能、轻量级的Java RPC框架,它能够帮助开发者实现分布式服务之间的通信...
本文将基于"Dubbo入门之HelloWorld"的主题,深入探讨如何从零开始学习并实践Dubbo的基本用法。 首先,我们需要了解什么是RPC(Remote Procedure Call)。RPC是一种使程序可以调用另一个系统中的函数或方法的技术,...
本示例将详细介绍如何在 Spring Boot 项目中集成 Dubbo,实现 Consumer(消费者)和 Provider(提供者)的功能。 1. **创建 Spring Boot 项目** 首先,你需要创建一个新的 Spring Boot 项目。可以使用 Spring ...
在压缩包内的" dubbo_helloworld "文件可能包含了以下内容:服务接口定义、服务实现、服务暴露配置(如dubbo配置文件)、消费者端的引用配置以及运行示例所需的启动脚本或测试类。通过分析和运行这个示例,学习者...
1. **引入依赖**:首先,需要在`pom.xml`文件中添加SpringBoot的父依赖和Dubbo的相关依赖,包括`spring-boot-starter`、`dubbo-spring-boot-starter`以及服务提供者和服务消费者的依赖。 2. **配置Dubbo**:在`...
这个例子通过一个"Hello, World!"的应用来演示Dubbo的基本用法,采用Maven作为项目构建工具,方便开发者直接导入到IDE中运行。 首先,我们需要了解Dubbo的核心概念。Dubbo是一个基于Java的RPC(Remote Procedure ...
调用telnet命令invoke,例如invoke com.phpple.service.FooService.bar('hello,world')\n 。 您可以在以下位置找到telnet命令: 从套接字的响应中读取并进行解析。要求PHP安装composer require phpple/...
4. **HelloWorld例子**:这个简单的示例展示了如何使用Dubbo创建服务提供者和服务消费者。通过配置XML或API,定义接口、实现服务、启动服务提供者,然后在消费者端引用服务,完成调用。 5. **源文件概述**:Dubbo的...
在这个"阿里巴巴开源RPC框架dubbo的hello world实例"中,我们将深入理解dubbo的基本工作原理和如何创建一个简单的应用。 首先,我们需要了解dubbo的核心概念。dubbo提供服务提供者(Provider)、服务消费者...
一个典型的Dubbo HelloWorld例子通常包括服务提供者和服务消费者两个部分,通过简单的示例程序演示了如何注册服务、发布服务和调用服务。 #### 五、源文件概述 Dubbo的源代码主要由以下几个部分组成: 1. **core*...
2. HelloWorld例子:通过最简单的例子,理解Dubbo服务的提供者和消费者是如何交互的。 3. 源文件概述:对源码的各个模块和文件有一个概览,明白它们的作用和相互关系。 4. 核心机制分析:详细分析Dubbo的设计模式...
4. Hello World例子是了解dubbo工作流程的第一步。通过编写一个简单的例子,可以直观地看到dubbo的使用方式和调用流程。 5. 源文件概述环节则是对dubbo主要源文件和目录结构进行说明,帮助读者快速找到自己需要阅读...
这是《可伸缩服务架构框架与中间件》中dubbo部分的例子——HelloWorld。这本书对初学者不友好,讲解的不是很细致,有些必须配置也没有提及。小编的例子(dubbo+zookeeper+maven+Idea)对此进行了完善:...
### Apache Dubbo:Dubbo配置与参数详解 #### 一、Dubbo概述 Apache Dubbo是一款高性能、轻量级的微服务框架,主要用于构建服务化的应用程序和服务治理平台。它提供了全面的服务治理解决方案,包括服务发布、发现...
该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户...
Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...