`
a67474506
  • 浏览: 14673 次
社区版块
存档分类
最新评论

dubbo学习1:Dubbo的入门例子HelloWorld

阅读更多


 

 

 

  
 

今天看了位大神的Dubbo学习笔记终于能把HelloWorld写出来了

 

该例子用maven来构建,客户端和服务端之间采用组播技术进行通信,并未使用zookeeper。

 

服务端:

服务端代码结构:

 

 

 

POM.XML

 

<?xml version="1.0" ?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

	<modelVersion>4.0.0</modelVersion>
	<groupId>cn.zto.dubbo-Service</groupId>
	<artifactId>dubbo-Service</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>dubbo-Service</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.5.3</version>
		</dependency>
		<dependency>
			<groupId>org.javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.18.1-GA</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.15</version>
			<exclusions>
				<exclusion>
					<groupId>com.sun.jdmk</groupId>
					<artifactId>jmxtools</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jmx</groupId>
					<artifactId>jmxri</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>jms</artifactId>
					<groupId>javax.jms</groupId>
				</exclusion>
				<exclusion>
					<artifactId>mail</artifactId>
					<groupId>javax.mail</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring</artifactId>
			<version>2.5.6.SEC03</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.6</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.4.5</version>
			<type>pom</type>
		</dependency>
		<dependency>
			<groupId>com.101tec</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.4</version>
		</dependency>
	</dependencies>
</project>

 

applicationProvider.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" />

	<!-- 注册地址 -->
	<dubbo:registry address="multicast://224.5.6.7:1234" />

	<!-- Service interface Concurrent Control -->
	<dubbo:service interface="cn.zto.service.IProcessData"
		ref="demoService" executes="10" />


	<!-- designate implementation -->
	<bean id="demoService" class="cn.zto.service.impl.ProcessDataImpl" />

</beans>

 

 

 

代码:

package cn.zto.service;

public interface IProcessData {
	public String hello(String name); 
}

 

 

 

package cn.zto.service.impl;

import cn.zto.service.IProcessData;

public class ProcessDataImpl implements IProcessData {

	public String hello(String name) {
		System.out.println(name);
		return "hello : " + name;
	}

}

 

package cn.zto.app;


import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

	public static void main(String[] args) throws Exception {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				new String[] { "applicationProvider.xml" });
		
		context.start();
		System.out.println("按任意键退出");
		System.in.read();

	}

}

 

 

 

客户端:

客户端结构:

 

 

 

POM.XML

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>cn.zto.consumer</groupId>
	<artifactId>dubbo-Consumer</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<name>dubbo-Consumer</name>
	<url>http://maven.apache.org</url>


	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.5.3</version>
		</dependency>
		<dependency>
			<groupId>org.javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.18.1-GA</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.15</version>
			<exclusions>
				<exclusion>
					<groupId>com.sun.jdmk</groupId>
					<artifactId>jmxtools</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jmx</groupId>
					<artifactId>jmxri</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>jms</artifactId>
					<groupId>javax.jms</groupId>
				</exclusion>
				<exclusion>
					<artifactId>mail</artifactId>
					<groupId>javax.mail</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring</artifactId>
			<version>2.5.6.SEC03</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.6</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupId>com.github.adyliu</groupId>
			<artifactId>zkclient</artifactId>
			<version>2.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.4.5</version>
			<type>pom</type>
		</dependency>
		<dependency>
			<groupId>cn.zto.dubbo-Service</groupId>
			<artifactId>dubbo-Service</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
	</dependencies>

</project>

 

 

 

applicationConsumer.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
        ">

	<!-- consumer application name -->
	<dubbo:application name="consumer-of-helloworld-app" />

	<!-- registry address, used for consumer to discover services -->
	<dubbo:registry address="multicast://224.5.6.7:1234" />
	<dubbo:consumer timeout="5000" />
	<!-- which service to consume? -->
	<dubbo:reference id="demoService" interface="cn.zto.service.IProcessData"/>
</beans> 

 

 

 

代码:

package cn.zto.consumer;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.zto.service.IProcessData;



public class ConsumerThd{

	public void sayHello(){
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				new String[] { "applicationConsumer.xml" });
		
		context.start();

		IProcessData demoService = (IProcessData) context.getBean("demoService");

		System.out.println(demoService.hello("world"));
	}
}

 

 

 

package cn.zto.test;

import cn.zto.consumer.ConsumerThd;

public class AppTest {
	public static void main(String[] args){
		ConsumerThd thd = new ConsumerThd();
		thd.sayHello();
	}
}

 

 

 

运行的时候可能会遇到解析不了XML文件的错误SAXException:

在maven的本地仓库下找到maven->com->alibaba->dubbo->2.5.3->dubbo-2.5.3.jar (具体的看自己的本地仓库) 解压它获得dubbo.xsd文件

然后打开Eclipse:1. Window->Preferences->XML->XML Catalog->User Specified Entries窗口中,选择Add 按纽

                              2.

 

 

先运行服务端的Main方法  然后在启动 客户端的 AppTest 方法  OK 

 

 

  • 大小: 17.9 KB
  • 大小: 14.7 KB
  • 大小: 14.3 KB
分享到:
评论

相关推荐

    dubbo 入门案例 helloworld

    【标题】"Dubbo入门案例HelloWorld"是一个基础的学习教程,旨在帮助初学者理解并实践Dubbo框架的基本用法。Dubbo是阿里巴巴开源的一款高性能、轻量级的Java RPC(远程过程调用)框架,它提供了服务治理、负载均衡、...

    Dubbo入门之HelloWorld

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

    Dubbo新手入门实例HelloWorld(zookeeper)源码

    在本实例中,“Dubbo新手入门实例HelloWorld(zookeeper)”旨在帮助初学者了解如何结合Dubbo和Zookeeper创建一个简单的服务提供者和消费者。首先,我们需要理解这两个关键组件: 1. **Dubbo**: Dubbo的核心功能包括...

    Apache Dubbo:Dubbo核心概念:服务提供者与消费者

    ### Apache Dubbo:服务提供者与消费者核心概念详解 #### 一、Apache Dubbo概览 **Apache Dubbo**是一款高性能、轻量级的开源微服务框架,最初由阿里巴巴内部开发并在2008年开始使用,随后在2011年开源。自2017年...

    dubbo得helloworld

    【标题】"Dubbo HelloWorld 实践教程" 在IT行业中,Dubbo是一款由阿里巴巴开源的高性能、轻量级的服务治理框架,主要用于实现分布式服务的开发、治理和服务发现。本教程将带你走进Dubbo的世界,通过一个简单的...

    配置 dubbo 的Hello World

    在本教程中,我们将深入探讨如何配置Dubbo的“Hello World”示例,这是一个非常基础但重要的步骤,用于快速理解Dubbo框架的工作原理。Dubbo是阿里巴巴开源的一个高性能、轻量级的服务治理框架,它专注于服务调用、...

    Dubbo入门之hello world(简单测试版和使用注解加强版)

    用maven构建项目使用spring和multicast广播注册中心方式实现Dubbo入门之hello world(用maven构建项目使用spring和multicast广播注册中心方式实现Dubbo入门之hello world(简单测试版)文档说明以及源码

    dubbo入门例子程序

    【Dubbo入门例子程序】是...通过这个【Dubbo入门例子程序】,你可以了解到Dubbo的基本工作原理和使用方法,为进一步学习和实践Dubbo打下基础。同时,这也是理解分布式系统、微服务架构以及RPC通信的一个很好的起点。

    dubbo之HelloWorld

    【Dubbo HelloWorld 实践详解】 在分布式系统开发中,Dubbo 是一款广泛使用的高性能 Java RPC 框架,它能够帮助开发者构建微服务架构,实现服务间的高效通信。本篇文章将详细讲解如何通过 Dubbo 和 Zookeeper 实现...

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

    实际的Dubbo应用会涉及更多复杂性,比如负载均衡、容错策略、服务治理等,但这个简单的例子为理解和学习Dubbo提供了一个良好的起点。通过实践这个示例,你可以更好地理解Dubbo的工作原理,为后续的分布式系统开发...

    Dubbo学习资料.zip

    - 创建简单的Hello World示例,了解基本服务的发布和调用流程。 - 搭建完整的服务提供者和消费者环境,进行实际的服务调用。 - 实践服务的注册与发现,使用注册中心管理服务。 9. **集成其他技术**: - 结合...

    Dubbo新手入门实例HelloWorld(zookeeper)源码低分版

    Dubbo新手入门实例“HelloWorld”是初学者学习分布式服务框架Dubbo的典型起点。这个实例结合了Zookeeper作为注册中心,帮助理解Dubbo的基本工作原理。以下将详细讲解涉及的知识点。 首先,Dubbo是一个高性能、轻量...

    Dubbo_Demo_HelloWorld

    【Dubbo_Demo_HelloWorld】是一个典型的Dubbo学习示例,它涵盖了服务提供者(Service Provider)、服务消费者(Service Consumer)以及Dubbo的核心API使用。这个Demo旨在帮助初学者理解Dubbo的基本工作原理和核心...

    zookeeper + dubbo helloworld

    本示例“Zookeeper + Dubbo HelloWorld”旨在帮助初学者理解如何将这两个组件结合使用,以构建一个简单的服务消费和服务提供者示例。下面我们将深入探讨Zookeeper和Dubbo的核心概念以及它们在该示例中的作用。 **...

    Apache Dubbo:Dubbo配置与参数详解

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

    springMVC+spring+dubbo hello world测试项目

    在这个"springMVC+spring+dubbo hello world测试项目"中,我们可以期待看到以下主要目录和文件: 1. `src/main/java`:包含项目的源代码,可能有如com.example.demo包,下设Service、Controller和配置类等。 2. `...

Global site tag (gtag.js) - Google Analytics