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