`
sskhnje
  • 浏览: 16067 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
文章分类
社区版块
存档分类
最新评论

配置 dubbo 的Hello World

 
阅读更多

 

按以下步骤进行:

1.新建一个maven工程du(com.lzm du)。

2.编辑dom.xml加入依赖

 

项目依赖的三方库与Dubbo所依赖的版本冲突怎么办

比如,项目使用的spring与dubbo冲突,
dubbo使用的是spring2.5,
而项目中其它模块依赖的是spring3.2.10.RELEASE。

在Maven中,使用项目根pom.xml中的dependencyManagement版本仲裁解决:

 

<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>com.lzm</groupId>
	<artifactId>du</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<dependencies>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.5.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.5.0-alpha</version>
			<type>pom</type>
		</dependency>

		<dependency>
			<groupId>com.github.sgroschupf</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.1</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>3.2.10.RELEASE</version>
		</dependency>

	</dependencies>


	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.alibaba.external</groupId>
				<artifactId>sourceforge.spring</artifactId>
				<version>3.2.10.RELEASE</version>
			</dependency>
		</dependencies>

	</dependencyManagement>
</project>

 

 

 

其中zkclient是zookeeper的客户端。

 

3.新建IHello接口

 

package com.lzm.du;

public interface IHello {

    
    public String sayHello(String name);
    
}

 

工程结构图:

 

 

 

 

 

4.实现IHello接口

 

package com.lzm.du;

public class Hello implements IHello {

    public String sayHello(String name) {
        // TODO Auto-generated method stub
        return "Hello " + name;
    }

}

 

 

5.在src/main/resources/里新增provider.xml文件,配置provider。

 

<?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">
 
    <!-- Application name -->
    <dubbo:application name="hello-world-app"  />
 
    <!-- registry address, used for service to register itself -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />
 
    <!-- expose this service through dubbo protocol, through port 20880 -->
    <dubbo:protocol name="dubbo" port="20880" />
 
    <!-- which service interface do we expose? -->
    <dubbo:service interface="com.lzm.du.IHello" ref="helloService" />
 
    <!-- designate implementation -->
    <bean id="helloService" class="com.lzm.du.Hello" />
 
</beans>

 

 

 

6.新建Provider

 

package com.lzm.du;


import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class Provider {
 
    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"provider.xml"});
        context.start();
 
        System.out.println("Press any key to exit.");
        System.in.read();
    }
 
}

 

 

7.在src/main/resources/里新增consumer.xml文件,配置consumer。

 

<?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="zookeeper://127.0.0.1:2181" />
 
    <!-- which service to consume? -->
    <dubbo:reference id="helloService" interface="com.lzm.du.IHello" />
 
</beans>

 

 

8.新建Consumer

 

package com.lzm.du;


import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class Consumer {
 
    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"consumer.xml"});
        context.start();
 
        IHello helloService = (IHello)context.getBean("helloService"); // get service invocation proxy
        String result = helloService.sayHello("world"); // do invoke!
 
        System.out.println(result); // cool, how are you~
    }
 
}

 

 

9.在src/main/resources/里新增dubbo.properties

 

dubbo.application.name=foo
dubbo.application.owner=bar
dubbo.registry.address=zookeeper://127.0.0.1:2181

 

该文件是全局配置文件,因为现在provider.xml, consumer.xml没引用它定义的属性,所以暂时没用上。

 

10.下载zookeeper

http://apache.fayea.com/apache-mirror/zookeeper/zookeeper-3.5.0-alpha/zookeeper-3.5.0-alpha.tar.gz

 

11.启动zookeeper服务器。

解压zookeeper-3.5.0-alpha.tar.gz,将zookeeper-3.5.0-alpha\conf\zoo_sample.cfg改名为zoo.cfg。双击

zookeeper-3.5.0-alpha\bin\zkServer.cmd。

 

12.运行Provider

 

13.运行Consumer

 

以上就可以跑了。

 =========================================================

 

接下来配置monitor

 

14.下载monitor

http://download.csdn.net/download/nrs12345/7412165

解压后,将dubbo文件夹复制到tomcat的webapps下面,修改sever.xml,在<Host 节点增加:

<Context path="" debug="0" docBase="dubbo" reloadable="true"/> 

这样就可以通过 http://localhost:8180/  访问,而不是http://locahost:8180/dubbo。

使用前面的url访问正常,使用后面的url访问时,会出现很多找不到页面的错误。

当然,把dubbo文件夹里面的文件复制到ROOT下面也可以。

 

15.修改WEB-INF/dubbo.properties,

dubbo.registry.address=zookeeper://127.0.0.1:2181

dubbo.admin.root.password=root

dubbo.admin.guest.password=guest

 

第1个是zookeeper的地址,后面两个是访问monitor时要求登录的账号,root/root, guest/guest。

 

16.启动tomat,访问http://localhost:8180/ 。

 

在https://github.com/alibaba/dubbo,点击右下角的‘Download ZIP',下载后解压,然后进入dubbo-master,执行 mvn clean install -Dmaven.test.skip进行install,然后进入dubbo-simple\dubbo-monitor-simple\target\,解压dubbo-monitor-simple-2.5.4-SNAPSHOT-assembly.tar.gz得到dubbo-monitor-simple-2.5.4-SNAPSHOT-assembly。进入dubbo-simple\dubbo-monitor-simple\target\dubbo-monitor-simple-2.5.4-SNAPSHOT-assembly\dubbo-monitor-simple-2.5.4-SNAPSHOT\conf,修改dubbo.properties,将dubbo.registry.address=multicast://224.5.6.7:1234 改成dubbo.registry.address=zookeeper://127.0.0.1:2181。

进入上级的bin,执行start.bat,打开http://127.0.0.1:8080,就能看到monitor的页面了。

 

长恨东风2014-09-04 13:01:58

 

我试了 。要加配置。provider加一句
<dubbo:monitor protocol="registry" />
  • du.zip (11.6 KB)
  • 下载次数: 1
  • 大小: 11.8 KB
分享到:
评论

相关推荐

    dubbo 入门案例 helloworld

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

    dubbo得helloworld

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

    zookeeper + dubbo helloworld

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

    dubbo之HelloWorld

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

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

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

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

    在本实例中,我们将探讨如何使用Dubbo和Zookeeper进行一个简单的"HelloWorld"入门实践。 首先,我们需要理解Dubbo的核心概念。Dubbo提供了服务提供者(Provider)、服务消费者(Consumer)、注册中心(Registry)和...

    springMVC+spring+dubbo hello world测试项目

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

    Dubbo入门之HelloWorld

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

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

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

    Dubbo_Demo_HelloWorld

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

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

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

    Dubbo Demo

    Dubbo Hello World Demo!! &lt;groupId&gt;com.alibaba&lt;/groupId&gt; &lt;artifactId&gt;dubbo &lt;version&gt;2.4.10&lt;/version&gt;

    dubbo helloword demo

    通过这个"Dubbo HelloWorld Demo",初学者可以了解到Dubbo的基本工作原理,掌握如何创建服务、消费服务以及配置注册中心等核心操作。随着对Dubbo的深入理解和实践,开发者可以进一步探索其高级特性,如服务治理、...

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

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

Global site tag (gtag.js) - Google Analytics