今天看了位大神的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
相关推荐
【标题】"Dubbo入门案例HelloWorld"是一个基础的学习教程,旨在帮助初学者理解并实践Dubbo框架的基本用法。Dubbo是阿里巴巴开源的一款高性能、轻量级的Java RPC(远程过程调用)框架,它提供了服务治理、负载均衡、...
本文将基于"Dubbo入门之HelloWorld"的主题,深入探讨如何从零开始学习并实践Dubbo的基本用法。 首先,我们需要了解什么是RPC(Remote Procedure Call)。RPC是一种使程序可以调用另一个系统中的函数或方法的技术,...
在本实例中,“Dubbo新手入门实例HelloWorld(zookeeper)”旨在帮助初学者了解如何结合Dubbo和Zookeeper创建一个简单的服务提供者和消费者。首先,我们需要理解这两个关键组件: 1. **Dubbo**: Dubbo的核心功能包括...
### Apache Dubbo:服务提供者与消费者核心概念详解 #### 一、Apache Dubbo概览 **Apache Dubbo**是一款高性能、轻量级的开源微服务框架,最初由阿里巴巴内部开发并在2008年开始使用,随后在2011年开源。自2017年...
【标题】"Dubbo HelloWorld 实践教程" 在IT行业中,Dubbo是一款由阿里巴巴开源的高性能、轻量级的服务治理框架,主要用于实现分布式服务的开发、治理和服务发现。本教程将带你走进Dubbo的世界,通过一个简单的...
在本教程中,我们将深入探讨如何配置Dubbo的“Hello World”示例,这是一个非常基础但重要的步骤,用于快速理解Dubbo框架的工作原理。Dubbo是阿里巴巴开源的一个高性能、轻量级的服务治理框架,它专注于服务调用、...
用maven构建项目使用spring和multicast广播注册中心方式实现Dubbo入门之hello world(用maven构建项目使用spring和multicast广播注册中心方式实现Dubbo入门之hello world(简单测试版)文档说明以及源码
【Dubbo入门例子程序】是...通过这个【Dubbo入门例子程序】,你可以了解到Dubbo的基本工作原理和使用方法,为进一步学习和实践Dubbo打下基础。同时,这也是理解分布式系统、微服务架构以及RPC通信的一个很好的起点。
【Dubbo HelloWorld 实践详解】 在分布式系统开发中,Dubbo 是一款广泛使用的高性能 Java RPC 框架,它能够帮助开发者构建微服务架构,实现服务间的高效通信。本篇文章将详细讲解如何通过 Dubbo 和 Zookeeper 实现...
实际的Dubbo应用会涉及更多复杂性,比如负载均衡、容错策略、服务治理等,但这个简单的例子为理解和学习Dubbo提供了一个良好的起点。通过实践这个示例,你可以更好地理解Dubbo的工作原理,为后续的分布式系统开发...
- 创建简单的Hello World示例,了解基本服务的发布和调用流程。 - 搭建完整的服务提供者和消费者环境,进行实际的服务调用。 - 实践服务的注册与发现,使用注册中心管理服务。 9. **集成其他技术**: - 结合...
Dubbo新手入门实例“HelloWorld”是初学者学习分布式服务框架Dubbo的典型起点。这个实例结合了Zookeeper作为注册中心,帮助理解Dubbo的基本工作原理。以下将详细讲解涉及的知识点。 首先,Dubbo是一个高性能、轻量...
【Dubbo_Demo_HelloWorld】是一个典型的Dubbo学习示例,它涵盖了服务提供者(Service Provider)、服务消费者(Service Consumer)以及Dubbo的核心API使用。这个Demo旨在帮助初学者理解Dubbo的基本工作原理和核心...
本示例“Zookeeper + Dubbo HelloWorld”旨在帮助初学者理解如何将这两个组件结合使用,以构建一个简单的服务消费和服务提供者示例。下面我们将深入探讨Zookeeper和Dubbo的核心概念以及它们在该示例中的作用。 **...
### Apache Dubbo:Dubbo配置与参数详解 #### 一、Dubbo概述 Apache Dubbo是一款高性能、轻量级的微服务框架,主要用于构建服务化的应用程序和服务治理平台。它提供了全面的服务治理解决方案,包括服务发布、发现...
在这个"springMVC+spring+dubbo hello world测试项目"中,我们可以期待看到以下主要目录和文件: 1. `src/main/java`:包含项目的源代码,可能有如com.example.demo包,下设Service、Controller和配置类等。 2. `...