1、项目结构(maven项目)

    

2、pom

<?xml version="1.0" encoding="UTF-8"?>
<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.an</groupId>
<artifactId>dubbo-zookeeper-test</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>api</module>
<module>provider</module>
<module>consumer</module>
</modules> <properties>
<motan.version>0.3.0</motan.version>
<!-- 在阿里巴巴内部广泛使用的GA版本为:2.4.9,强烈推荐此版本 -->
<dubbo.version>2.5.3</dubbo.version>
<dubbox.version>2.8.4</dubbox.version>
<spring.version>4.3.6.RELEASE</spring.version>
<java.version>1.7</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies> <!--dubbo-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency> <!--zookeeper 客户端 jar 包依赖-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.3.3</version>
</dependency> <!--zookeeper zkclient客户端-->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency> <!--zookeeper curator客户端-->
<dependency>
<groupId>com.netflix.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>1.1.10</version>
</dependency> <!-- spring相关 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.11</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.11</version>
</dependency>
</dependencies> </project>

3、api

    3.1  pom

<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>dubbo-zookeeper-test</artifactId>
<groupId>com.an</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>api</artifactId> </project>

    3.2  HelloService

package com.an.service;

public interface HelloService {
String sayHello(String msg);
}

4、provider

    4.1  pom

<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>dubbo-zookeeper-test</artifactId>
<groupId>com.an</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>provider</artifactId> <dependencies>
<dependency>
<groupId>com.an</groupId>
<artifactId>api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

    4.2  log4j.properties

###set log levels###
log4j.rootLogger=info, stdout
###output to the console###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy hh:mm:ss:sss z}] %t %5p %c{2}: %m%n

    4.3  dubbo-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"> <bean id="helloService" class="com.an.service.HelloServiceImpl"/>
<!--应用配置:用于配置当前应用信息,不管该应用是提供者还是消费者-->
<!--提供方应用 名称-->
<dubbo:application name="dubbo-provider"/>
<!--注册中心配置:用于配置连接注册中心相关信息-->
<!--使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://192.168.1.106:2181" client="curator"/>
<!--协议配置:用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受-->
<!--用dubbo协议在20880端口暴露服务-->
<dubbo:protocol name="dubbo" port="20881"/>
<!--服务配置:用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心-->
<!--声明需要暴露的服务接口 timeout 超时时间 超过时间过报错-->
<dubbo:service interface="com.an.service.HelloService" ref="helloService" timeout="5000"/> </beans>

    4.4  HelloServiceImpl

package com.an.service;

public class HelloServiceImpl implements HelloService {

    public String sayHello(String msg) {
return msg;
}
}

    4.5  ProviderRunner

package com.an;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class ProviderRunner {
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] {"dubbo-provider.xml"});
context.start();
System.out.println("provider...started...");
System.in.read();
}
}

5、consumer

    5.1  pom

<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>dubbo-zookeeper-test</artifactId>
<groupId>com.an</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>consumer</artifactId> <dependencies>
<dependency>
<groupId>com.an</groupId>
<artifactId>api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

    5.2  log4j.properties

###set log levels###
log4j.rootLogger=info, stdout
###output to the console###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy hh:mm:ss:sss z}] %t %5p %c{2}: %m%n

    5.3  dubbo-consumer.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="dubbo-consumer"/>
<!--注册中心配置:用于配置连接注册中心相关信息-->
<dubbo:registry protocol="zookeeper" address="zookeeper://192.168.1.106:2181"/>
<!--引用配置:用于创建一个远程服务代理,一个引用可以指向多个注册中心-->
<dubbo:reference id="helloService" interface="com.an.service.HelloService"/> </beans>

    5.4  ConsumerRunner

package com.an;

import com.an.service.HelloService;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class ConsumerRunner { public static void main(String[] args){
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"dubbo-consumer.xml"});
context.start();
HelloService helloService =(HelloService) context.getBean("helloService");
String msg=helloService.sayHello("hello world");
System.out.println(msg);
}
}

  

最新文章

  1. android第一行代码-3.activity之间的调用跟数据传递
  2. 图解JAVA对象的创建过程
  3. 关于xib的一些细节/ 真机调试/ GitLab
  4. Linux 根据组名查询出该组内所有成员
  5. winform之判断验证码,,附加验证码的一般处理程序
  6. 设计模式之空对象(Null Object)模式
  7. Java中遍历Map的常用方法
  8. redis数据库安装及简单的增删改查
  9. C#之Message(转)
  10. Oracle 中PLSQL的ftp应用
  11. 属性动画基础之ValueAnimator
  12. 与JMeter的第一次亲密接触
  13. sqlserver每行都有累加,你怎么搞,窗口函数来帮忙!!!
  14. February 10th, 2018 Week 6th Saturday
  15. 2012年蓝桥杯省赛A组c++第4题(电视台答题比赛)
  16. 服务器由于redis未授权访问漏洞被攻击
  17. 【王者荣耀之IT大神版】铭文说明
  18. Warning -27077: The &quot;vuser_init&quot; section contains web function(s) when the &quot;Simulate a new user on each iteration&quot; Run-Time Setting is ON.
  19. 数据挖掘-关联分析 Apriori算法和FP-growth 算法
  20. 《CSS3揭秘》上(边框,投影,渐变,条纹效果,蚂蚁行军)

热门文章

  1. Struts2学习笔记 - namespace命名空间
  2. linux rsync 复制文件忽略文件夹
  3. 【串线篇】SpringMVC运行流程
  4. python print 连续输出变量加字符串
  5. 【leetcode】435. Non-overlapping Intervals
  6. Mybatis缓存+配置
  7. SSD接口详解,再也不会买错固态硬盘了
  8. UNP学习 路由套接口
  9. Linux下Mysql安装与常见问题解决方案
  10. 导入csv 到mysql数据库