Dubbo---zookeeper 注册中心---xml配置
1、项目结构(maven项目)
2、pom
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | <?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?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
1 2 3 4 5 | package com.an.service; public interface HelloService { String sayHello(String msg); } |
4、provider
4.1 pom
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?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
1 2 3 4 5 6 7 | ###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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?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
1 2 3 4 5 6 7 8 9 | package com.an.service; public class HelloServiceImpl implements HelloService { public String sayHello(String msg) { return msg; } } |
4.5 ProviderRunner
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?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
1 2 3 4 5 6 7 | ###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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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); } } |
posted on 2019-06-08 21:41 anpeiyong 阅读(2179) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)