dubbo安装和使用
转载: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安装和使用相关推荐
- 【zookeeper+Dubbo】zookeeper和Dubbo安装
Dubbo是什么? https://blog.csdn.net/cxh6863/article/details/105980696 zookeeper是什么? https://blog.csdn.ne ...
- dubbo底层原理解析及安装应用
0.dubbo安装 1.dubbo简介 2-0.Dubbo标签 2-1.xml方式配置dubbo 2-2.注解方式配置dubbo 2-3.Api方式配置Dubbo 2-4.springboot方式配置 ...
- Dubbo原理与框架设计
Dubbo是常用的开源服务治理型RPC框架,在之前osgi框架下不同bundle之间的方法调用时用到过.其工作原理和框架设计值得开源技术爱好者学习和研究. 一.Dubbo的工作原理 调用关系说明 服务 ...
- java dubbo 方案,Missing artifact com.alibaba:dubbo:jar:2.8.4 dubbo解决方案
由于maven中心仓库中没有dubbo2.8.4,所以需要到github中下载源码包自己编译. 下载解压后,进入解压目录执行命令:mvn install -Dmaven.test.skip=true ...
- Dubbo与Zookeeper伪集群部署
1.美图 官网:http://dubbo.apache.org/#!/docs/user/preface/background.md?lang=zh-cn 1.准备Zookeeper zookeepe ...
- Dubbo—— 一个服务既是消费者又是提供者
Dubbo-- 一个服务既是消费者又是提供者 实现目标 使用dubbo实现每个服务互相远程调用 ssm实现 依赖 在每个服务中添加: <dependency><groupId> ...
- Dubbo系列之微服务框架整合教程
文章目录 一.分布式基本知识 1.1) 架构演变 1.2).分布式基本概念 二.RPC简介 2.1) RPC概念 2.2) RPC核心模块 三.Dubbo原理简介 3.1) Dubbo简介 3.2) ...
- Dubbo详解(一)
一.Dubbo结构及功能 二.Dubbo安装部署 maven引入 Dubbo提供者配置 dubbo.xml配置 说明1:<dubbo:service> 表明暴露的接口,提供给消费者使用. ...
- 【微服务|Dubbo】Dubbo整合zookeeper/redis/Multicast作为注册中心
Dubbo整合系列 一.zookeeper 1.准备 1.安装Zookeeper 2.dubbo安装 2.项目搭建 1.先创建一个父项目dubbo-parent,然后引入依赖 2.创建一个公共的api ...
- RHEL环境搭建--Nginx|Tomcat|Java|Dubbo|RabbitMQ|Redis|Nexus|MySQL
安装RHEL虚拟机 虚拟机软件:在本篇文章中,我是使用Vmware Workstation 9安装的虚拟机,其他常用的虚拟机软件还有Xen.KVM.VirtualBox等. ISO文件:rhel-se ...
最新文章
- AFNetworking 3.0 发送soap到webservice
- C#实现Windows后台服务实例浅析
- php维护session,维护带有cookie的PHP session_start()
- viewgroup的使用方法
- 归并排序的时间复杂度
- Verizon CEO证实公司正考虑出价收购雅虎
- signal(SIGCLD,SIG_IGN)
- Acrobat专业版破解补丁AMTEmu+Win+v0.9.2
- t450加固态硬盘教程_Thinkpad t450s拆机换240G ssd+加8G内存
- 模糊c均值聚类及python实现
- 儿童吹泡泡水简单配方_教你泡泡水的制作方法 自制泡泡水配方大全
- 初探强化学习(7)基于模型的强化学习的应用综述
- 浅谈OCR之Onenote 2010
- 【072】Breathe Machine-减压深呼吸训练
- 手游自动化测试基础:方法及流程
- linux 中 lrwxrwxrwx是什么意思?
- 报错:The server time zone value ‘�й���ʱ��‘ is unrecognied
- show processlist 命令详解
- MOVICS系列教程(三) RUN Module
- 校园网自动拨号联网的方式
热门文章
- 强大的绘图和编辑工具Artstudio Pro mac
- 如何在 Mac 中更改文件夹图标,换上喜欢的图像 Icon?
- 安装Homebrew是报错,安装不成功(亲测使用,确实解决了问题)
- iOS开发之开发者账号的申请进度跟进(申请的询问)
- Theine for Mac(电脑休眠工具)
- GIT更新一其中一个提交版本
- “梅丽莎”病毒背后的神秘黑客
- 在Fedora 25中更换openjdk为oracle jdk
- 译文-Minor GC vs Major GC vs Full GC
- async and await 简单的入门