Dubbo DEMO HelloWorld(zookeeper)
1.创建服务方项目dubbo-server,在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>com.xbz</groupId>
- <artifactId>dubbo-server</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>server</name>
- <url>http://maven.apache.org</url>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <dependencies>
- <!-- spring begin -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>4.1.6.RELEASE</version>
- </dependency>
- <!-- spring end -->
- <!-- dubbo begin -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>dubbo</artifactId>
- <version>2.5.3</version>
- </dependency>
- <!-- dubbo end -->
- <!-- 注册中心zookeeper begin -->
- <dependency>
- <groupId>org.apache.zookeeper</groupId>
- <artifactId>zookeeper</artifactId>
- <version>3.3.6</version>
- </dependency>
- <!-- 注册中心zookeeper end -->
- <!-- log begin -->
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.1.1</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>
- <!-- log end -->
- <!-- other begin -->
- <dependency>
- <groupId>org.jboss.netty</groupId>
- <artifactId>netty</artifactId>
- <version>3.2.0.Final</version>
- </dependency>
- <dependency>
- <groupId>com.101tec</groupId>
- <artifactId>zkclient</artifactId>
- <version>0.8</version>
- </dependency>
- <!-- other end -->
- </dependencies>
- </project>
- package com.xbz.service;
- public interface DemoService {
- String sayHello(String name);
- }
- package com.xbz.service.impl;
- import com.xbz.service.DemoService;
- public class DemoServiceImpl implements DemoService {
- public String sayHello(String name) {
- System.out.println("init : " + name);
- return "hello " + name;
- }
- }
3.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="dubbo-demo" />
- <!-- zookeeper注册中心 -->
- <dubbo:registry address="zookeeper://127.0.0.1:2181" />
- <dubbo:protocol name="dubbo" port="20880" />
- <!-- 和本地bean一样实现服务 -->
- <bean id="demoService" class="com.xbz.service.impl.DemoServiceImpl" />
- <!-- 向注册中心注册暴漏服务地址,注册服务 -->
- <dubbo:service interface="com.xbz.service.DemoService"
- ref="demoService" executes="10" />
- </beans>
4.服务方主方法ServerMain
- package main;
- import java.io.IOException;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- public class ServerMain {
- public static void main(String[] args) throws IOException {
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "applicationProvider.xml" });
- context.start();
- System.out.println("输入任意按键退出 ~ ");
- System.in.read();
- context.close();
- }
- }
接下来我们创建客户端消费方dubbo-client项目
1.创建dubbo-client,在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>com.xbz</groupId>
- <artifactId>dubbo-client</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>client</name>
- <url>http://maven.apache.org</url>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <dependencies>
- <!-- spring begin -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>4.1.6.RELEASE</version>
- </dependency>
- <!-- spring end -->
- <!-- dubbo begin -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>dubbo</artifactId>
- <version>2.5.3</version>
- </dependency>
- <!-- dubbo end -->
- <!-- 注册中心zookeeper begin -->
- <dependency>
- <groupId>org.apache.zookeeper</groupId>
- <artifactId>zookeeper</artifactId>
- <version>3.3.6</version>
- </dependency>
- <!-- 注册中心zookeeper end -->
- <!-- log begin -->
- <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>
- <!-- log end -->
- <!-- other begin -->
- <dependency>
- <groupId>com.101tec</groupId>
- <artifactId>zkclient</artifactId>
- <version>0.8</version>
- </dependency>
- <dependency>
- <groupId>com.xbz</groupId>
- <artifactId>dubbo-server</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </dependency>
- <!-- other end -->
- </dependencies>
- </project>
2.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">
- <dubbo:application name="consumer-of-dubbo-demo" />
- <dubbo:registry address="zookeeper://127.0.0.1:2181" />
- <!-- 向注册中心订阅服务 -->
- <dubbo:reference id="demoService" interface="com.xbz.service.DemoService" />
- </beans>
3.客户端消费方主方法ClientMain
- package main;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.xbz.service.DemoService;
- public class ClientMain {
- public static void main(String[] args) {
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
- new String[] { "applicationConsumer.xml" });
- context.start();
- DemoService service = (DemoService) context.getBean("demoService");
- System.out.println(service.sayHello("world"));
- context.close();
- }
- }
客户端消费方项目结构如下
启动服务方
启动成功,线程阻塞~
运行客户端消费方
输出hello world,调用成功 !
此时服务端控制台输出如下
demo下载:http://download.****.net/detail/xingbaozhen1210/9532171
zookeeper即下即用版:http://download.****.net/detail/xingbaozhen1210/9532177
相关推荐
- springmvc+mybatis+dubbo+zookeeper分布式架构
- dubbo系列(二) 完整SpringMVC项目整合druid redis zookeeper mybatis dubbo spring-data-redis实现分布式session...
- 带着新人学springboot的应用11(springboot+Dubbo+Zookeeper 上)
- node调dubbo接口注册zookeeper,服务不稳定时socket重试机制导致内存溢出
- Dubbo、ZooKeeper、Spring cCloud、Redis都能否做分布式事务控制?
- 在zookeeper中查看dubbo服务
- 使用Dubbo分布式框架,结合SpringBoot框架+Zookeeper,实现生产者消费者的maven父子级结构项目。
- Dubbo基础02:了解Zookeeper及安装方法
- Dubbo之Zookeeper作用解析
- 最新Dubbo-admin+Zookeeper搭建遇到的一些问题
- SSM 完整 Demo, 租房系统
- Spring Boot--Eclipse安装spring-tool-suite插件