Dubbo入门实例(二)
Dubbo安装
下载地址:https://github.com/alibaba/dubbo/releases
pom.xml:https://files.cnblogs.com/files/belen/pom.xml
Zookeeper(注册中心)
Pom.xml
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。
实例中,zookeeper将作为dubbo服务的注册中心。同时负责集群调度。
为什么要用zookeeper?
Zookeeper可以提供配置管理、命名服务、分布式算法、集群管理功能。具体说明参看如下文章:
zookeeper安装
参看下一篇博文:
http://www.cnblogs.com/belen/p/4804063.html
Consumer
目录结构
通过eclipse创建maven项目dubboclient,结构如下:
集成Spring
applicationContext.xml:
https://files.cnblogs.com/files/belen/applicationContext.xml
调用方式
注入spring后,通过ApplicationContext获取对应服务接口,调用服务方法。
Provider
目录结构
通过eclipse创建maven项目dubboserver,结构如下:
集成Spring
applicationContext.xml:
https://files.cnblogs.com/files/belen/applicationProvider.xml
启动方法
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "applicationProvider.xml" });
context.start();
实例启动顺序
1、 启动zookeeper,参看下一篇博文
http://www.cnblogs.com/belen/articles/4804063.html
2、 启动Consumer
是在初始化spring的应用上下文。
3、 客户端调用服务
Dubbo伪集群(单zookeeper)
单机服务器下模拟Dubbo集群,通过多次运行main函数,启动多个服务。本实例将启动三个服务器。为了区分客户端调用的是哪个服务,将服务接口返回值做一些区分:
服务1返回hello1 tom
服务2返回hello2 tom
服务3返回hello3 tom
另外三个服务对外暴露的端口也做出调整(spring配置文件):
服务1端口为:2090
服务2端口为:2089
服务3端口为:2088
客户端随机调用服务接口10次,输出如下结果:
将服务1停止运行,客户端随机调用服务接口10次,输出如下结果:
输出结果表明,dubbo集群具有负载均衡和灾备功能(failover)。使用zk实现
Dubbo控制台
上面内容看起来没那么直观。如果有一个控制台来管理和展现就太棒了。不得不说dubbo还是挺贴心的。
下载
官网下载地址:
http://code.alibabatech.com/mvn/releases/com/alibaba/dubbo-admin/2.4.1/dubbo-admin-2.4.1.war
但是该地址最近一直无法下载。
http://download.csdn.net/detail/liweifengwf/7784901可以通过这里下载。
安装
将war包拷贝到tomcat/webapps目录下,启动tomcat。浏览器中输入:
默认用户名和密码:root,root.可以通过/web-inf/dubbo.properties修改用户名和密码。