转载:http://blog.csdn.net/zjcjava/article/details/78766095

背景

Dubbo的开源人梁飞在内部的交流会上宣布重启dubbo的维护和更新,具体PPT内容请看我的个人订阅号。

因此本文基于2017-12-10号的维护的版本dubbo-2.5.7。

这里为何从Dubbo-admin开始,这不是最重要的部分,但是却是dubbo源码编译最简单的部分。

准备工作

按照zookeeper服务(参考单机安装zookeeper安装)

下载dubbo源码 
https://github.com/alibaba/dubbo/releases/tag/dubbo-2.5.7

当然也可以直接从我的github上面直接下载已经编译好了的war包 
https://github.com/BambooZhang/dubbo-study

编译

解压后这里只用到一个项目就是dubbo-admin

cd D:\git_space\dubbo-dubbo-2.5.7\dubbo-dubbo-2.5.7\dubbo-admin mvn package -Dmaven.skip.test=true 

出现下面的结果则说明编译成功


[INFO]
[INFO] --- maven-war-plugin:2.2:war (default-war) @ dubbo-admin ---
[INFO] Packaging webapp [INFO] Assembling webapp [dubbo-admin] in [D:\git_space\dubbo-dubbo-2.5.7\dubbo-dubbo-2.5.7\dubbo-admin\target\dubbo-admin-2.5.7] [INFO] Processing war project [INFO] Copying webapp resources [D:\git_space\dubbo-dubbo-2.5.7\dubbo-dubbo-2.5.7\dubbo-admin\src\main\webapp] [INFO] Webapp assembled in [880 msecs] [INFO] Building war: D:\git_space\dubbo-dubbo-2.5.7\dubbo-dubbo-2.5.7\dubbo-admin\target\dubbo-admin-2.5.7.war [INFO] WEB-INF\web.xml already added, skipping [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 24.516 s [INFO] Finished at: 2017-12-10T17:38:17+08:00 [INFO] Final Memory: 19M/244M [INFO] ------------------------------------------------------------------------

部署dubbo-admin到tomcat

把target\dubbo-admin-2.5.7下面的文件都拷贝到tomcat/webapps/ROOT下面

修改配置dubbo.properties 
zookeeper地址修改为自己安装的ip地址,默认是127.0.0.1

dubbo.registry.address=zookeeper://192.168.0.91:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest

启动dubbo-admin

首先启动zookeeper服务,在启动tomcat 
启动完成访问localhost:8080 
默认账号密码都是root 

Dubbo服务提供者和消费者demo

dubbo-admin-2.5.7.war管理中心 
dubbo-provider服务器提供者 
dubbo-consumer服务器消费者

spring版本:4.3.9.RELEASE

dubbo-provider服务器提供者

pom

<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.bamboo</groupId> <artifactId>dubbo-provider</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>dubbo-provider</name> <url>http://maven.apache.org</url> <repositories> <repository> <id>maven-ali</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> </repository> </repositories> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.3.9.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.7</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</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>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> 

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 "> <!-- 具体的实现bean --> <bean id="providerService" class="com.bamboo.dubbo_provider.ProviderServiceImpl" /> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="dubbo_provider" /> <!-- 使用multicast广播注册中心暴露服务地址 <dubbo:registry address="multicast://localhost:1234" />--> <!-- 使用zookeeper注册中心暴露服务地址 127.0.0.1:2181 --> <dubbo:registry address="zookeeper://192.168.0.91:2181" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="29014" /> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="com.bamboo.service.ProviderService" ref="providerService" /> </beans> 

java

service

package com.bamboo.service;public interface  ProviderService {public String sayHello(String name);
}

ProviderServiceImpl

package com.bamboo.dubbo_provider;import com.bamboo.service.ProviderService;public class ProviderServiceImpl implements ProviderService { public String sayHello(String name) { return "Hello:"+name+"你好,你好~~"; } }

main.java

package com.bamboo.dubbo_provider;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;/*** dubbo 服务提供端* @author bamboo */ public class App { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[]{"applicationProvider.xml"}); context.start(); System.out.println("提供者服务已注册成功"); System.out.println("请按任意键取消提供者服务"); try { System.in.read();//让此程序一直跑,表示一直提供服务 } catch (IOException e) { e.printStackTrace(); } } } 

运行

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly. 提供者服务已注册成功 请按任意键取消提供者服务 

dubbo-consumer服务器消费者

pom

<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.bamboo</groupId> <artifactId>dubbo-consumer</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>dubbo-consumer</name> <url>http://maven.apache.org</url> <repositories> <repository> <id>maven-ali</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> </repository> </repositories> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.3.9.RELEASE</spring.version> </properties> <dependencies> <!-- 添加dubbo依赖 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.7</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <!-- 添加zk客户端依赖 --> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</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>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> 

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="dubbo_consumer" /> <!-- 使用multicast广播注册中心暴露发现服务地址127.0.0.1:2181 --> <dubbo:registry protocol="zookeeper" address="zookeeper://192.168.0.91:2181" /> <!-- 生成远程服务代理,可以和本地bean一样使用demoService --> <dubbo:reference id="providerService" interface="com.bamboo.service.ProviderService" /> </beans>

java

service

package com.bamboo.service;public interface  ProviderService {public String sayHello(String name);
}

main

package com.bamboo.dubbo_consumer;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bamboo.service.ProviderService;/** * dubbo 服务消费端 * @author bamboo * */ public class App { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "applicationConsumer.xml" }); context.start(); ProviderService providerService = (ProviderService) context.getBean("providerService"); System.out.println(providerService.sayHello("bamboo")); System.out.println("Press any key to exit."); try { System.in.read(); } catch (IOException e) { e.printStackTrace(); } } } 

运行

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly. Hello:bamboo你好,你好~~ Press any key to exit. 

查看监控列表 

转载于:https://www.cnblogs.com/shengulong/p/8308546.html

dubbo安装和使用相关推荐

  1. 【zookeeper+Dubbo】zookeeper和Dubbo安装

    Dubbo是什么? https://blog.csdn.net/cxh6863/article/details/105980696 zookeeper是什么? https://blog.csdn.ne ...

  2. dubbo底层原理解析及安装应用

    0.dubbo安装 1.dubbo简介 2-0.Dubbo标签 2-1.xml方式配置dubbo 2-2.注解方式配置dubbo 2-3.Api方式配置Dubbo 2-4.springboot方式配置 ...

  3. Dubbo原理与框架设计

    Dubbo是常用的开源服务治理型RPC框架,在之前osgi框架下不同bundle之间的方法调用时用到过.其工作原理和框架设计值得开源技术爱好者学习和研究. 一.Dubbo的工作原理 调用关系说明 服务 ...

  4. java dubbo 方案,Missing artifact com.alibaba:dubbo:jar:2.8.4 dubbo解决方案

    由于maven中心仓库中没有dubbo2.8.4,所以需要到github中下载源码包自己编译. 下载解压后,进入解压目录执行命令:mvn install -Dmaven.test.skip=true ...

  5. Dubbo与Zookeeper伪集群部署

    1.美图 官网:http://dubbo.apache.org/#!/docs/user/preface/background.md?lang=zh-cn 1.准备Zookeeper zookeepe ...

  6. Dubbo—— 一个服务既是消费者又是提供者

    Dubbo-- 一个服务既是消费者又是提供者 实现目标 使用dubbo实现每个服务互相远程调用 ssm实现 依赖 在每个服务中添加: <dependency><groupId> ...

  7. Dubbo系列之微服务框架整合教程

    文章目录 一.分布式基本知识 1.1) 架构演变 1.2).分布式基本概念 二.RPC简介 2.1) RPC概念 2.2) RPC核心模块 三.Dubbo原理简介 3.1) Dubbo简介 3.2) ...

  8. Dubbo详解(一)

    一.Dubbo结构及功能 二.Dubbo安装部署 maven引入 Dubbo提供者配置 dubbo.xml配置 说明1:<dubbo:service> 表明暴露的接口,提供给消费者使用. ...

  9. 【微服务|Dubbo】Dubbo整合zookeeper/redis/Multicast作为注册中心

    Dubbo整合系列 一.zookeeper 1.准备 1.安装Zookeeper 2.dubbo安装 2.项目搭建 1.先创建一个父项目dubbo-parent,然后引入依赖 2.创建一个公共的api ...

  10. RHEL环境搭建--Nginx|Tomcat|Java|Dubbo|RabbitMQ|Redis|Nexus|MySQL

    安装RHEL虚拟机 虚拟机软件:在本篇文章中,我是使用Vmware Workstation 9安装的虚拟机,其他常用的虚拟机软件还有Xen.KVM.VirtualBox等. ISO文件:rhel-se ...

最新文章

  1. AFNetworking 3.0 发送soap到webservice
  2. C#实现Windows后台服务实例浅析
  3. php维护session,维护带有cookie的PHP session_start()
  4. viewgroup的使用方法
  5. 归并排序的时间复杂度
  6. Verizon CEO证实公司正考虑出价收购雅虎
  7. signal(SIGCLD,SIG_IGN)
  8. Acrobat专业版破解补丁AMTEmu+Win+v0.9.2
  9. t450加固态硬盘教程_Thinkpad t450s拆机换240G ssd+加8G内存
  10. 模糊c均值聚类及python实现
  11. 儿童吹泡泡水简单配方_教你泡泡水的制作方法 自制泡泡水配方大全
  12. 初探强化学习(7)基于模型的强化学习的应用综述
  13. 浅谈OCR之Onenote 2010
  14. 【072】Breathe Machine-减压深呼吸训练
  15. 手游自动化测试基础:方法及流程
  16. linux 中 lrwxrwxrwx是什么意思?
  17. 报错:The server time zone value ‘�й���׼ʱ��‘ is unrecognied
  18. show processlist 命令详解
  19. MOVICS系列教程(三) RUN Module
  20. 校园网自动拨号联网的方式

热门文章

  1. 强大的绘图和编辑工具Artstudio Pro mac
  2. 如何在 Mac 中更改文件夹图标,换上喜欢的图像 Icon?
  3. 安装Homebrew是报错,安装不成功(亲测使用,确实解决了问题)
  4. iOS开发之开发者账号的申请进度跟进(申请的询问)
  5. Theine for Mac(电脑休眠工具)
  6. GIT更新一其中一个提交版本
  7. “梅丽莎”病毒背后的神秘黑客
  8. 在Fedora 25中更换openjdk为oracle jdk
  9. 译文-Minor GC vs Major GC vs Full GC
  10. async and await 简单的入门