dubbo给我们提供了现成的后台管理网站,专门管理这些服务,应用,路由规则,动态配置,访问控制、权重控制、负载均衡等等,还可以查看系统日志,系统状态,系统环境等等,功能很是强大,通过这个后台,可以可视化控制你的服务和应用。
接下来我们来简单的看看后台系统,以及简单修改下权重控制啥的看看效果吧!我们将dubbo-admin-2.5.4.war包放到tomcat容器中(如果没有dubbo-admin-2.5.4.war,可以到http://dubbo.io/查找源码位置:https://github.com/alibaba/dubbo,进入之后,下载源码),
Github上的内容:
其中dubbo-admin就是我们所需的管控台的源码:
假设我下载的源码为如下位置:
直接在E:\learnTempFolder\dubbo-master下先执行Maven命令:
mvn -Pall eclipse:eclipse mvn clean mvn compile -Dmaven.test.skip=true mvn install -Dmaven.test.skip=true mvn package -Dmaven.test.skip=true |
执行完成之后,再进入E:\learnTempFolder\dubbo-master\dubbo-admin,执行如下命令:
mvn -Pall eclipse:eclipse mvn clean mvn compile -Dmaven.test.skip=true mvn install -Dmaven.test.skip=true mvn package -Dmaven.test.skip=true |
执行完成之后,最后的效果如下:
进入E:\learnTempFolder\dubbo-master\dubbo-admin\target,文件内容如下:
红框中的war包就是我们所需的war包,将war改名称为dubbo-admin-2.5.4.war,如下:
将dubbo-admin-2.5.4.war上传到192.168.106.80这个服务器上的/usr/local/apache-tomcat-7.0.73/webapps
重启tomcat,最后的效果如下
修改/usr/local/apache-tomcat-7.0.73/webapps/dubbo-admin-2.5.4/WEB-INF/dubbo.properties中的内容为:
dubbo.registry.address=zookeeper://192.168.106.80:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest |
注意上面的zookeeper://192.168.106.80:2181和http://blog.csdn.net/tototuzuoquan/article/details/72765043中的配置的zookeeper的地址信息
启动tomcat 确定zookeeper启动后再去启动tomcat,访问http://192.168.106.80:8080/dubbo-admin-2.5.4/
接着会弹出:
输入:root,root,(注意:如果是上线后,需要把这个密码改掉)进入了dubbo的控制中心
二、首页
注意:我们看到最下面显示服务数:1 应用数:2 提供者数:1 消费者数:1 。
这就是http://blog.csdn.net/tototuzuoquan/article/details/72765043中启动的那个服务1(com.dubbo.service.TestService服务),应用2(test_consumer,test_provider),提供者1(192.168.106.80:20880)消费者1(192.168.106.80),分别来张截图看看:
1、服务
点击服务之后的效果:
2、应用
3、提供者
4、消费者
通过dubbo管控台可以看到刚刚我们启动的服务,应用,提供者及消费者信息,这里,我们在演示下里面的功能之一权重调节功能,给不同的服务提供者分配不同的权限,看下消费者消费提供者的次数的变化。
为了达到演示效果,我将dubbo-provider项目在复制一份放到tomcat里面去,并将TestServiceImpl类修改下sayHello()方法,并修改dubbo暴露端口号,通过输出不同信息,判断消费者调用哪个服务提供者提供的服务(其它具体的代码在:http://blog.csdn.net/tototuzuoquan/article/details/72765043)。
package com.dubbo.service.impl;
import com.dubbo.service.TestService;
public class TestServiceImpl implements TestService {
public String sayHello(String name) { return name + " say hello word"; }
} |
接着,我们在修改下dubbo的暴漏端口号,修改applicationContext.xml里面的
<dubbo:protocol name="dubbo" port="20881" /> |
这次,我们不部署在192.168.106.80的tomcat下,而是部署在我们自己的本地开发电脑的tomcat上,重启一下本地开发的tomcat
继续访问http://192.168.106.80:8080/dubbo-admin-2.5.4,我们能看到提供者里面,已经有我们刚新加的192.168.106.99:20881服务提供者啦!
这个时候我们在访问http://192.168.106.80:8080//dubbo-consumer/test.action?name=toto,当我们刷新时,返回的结果中除了上面截图返回的结果,也会返回刚新修改的返回结果,而且多刷新几次,两种结果出现的几率是一样哒!因为这里的提供者权重是一样的。
现在,我们修改这2个提供者的权重,我们让192.168.2.193:20881的权重降一半即50,另一个192.168.106.99:20881提高到400,我们在来刷新多次,看下返回的两种结果出现的几率是不是1:4。亲测,是哒!!!
其他dubbo相关的资料:
Dubbo:官网http://dubbo.io/
开发指南:http://dubbo.io/User+Guide-zh.htm
开发指南:http://dubbo.io/Developer+Guide-zh.htm
管理员指南:http://dubbo.io/Administrator+Guide-zh.htm
常见问题:http://dubbo.io/FAQ-zh.htm