三种启动方式
- 自建Main方法类来运行(Spring容器) —-不建议(本地调试可用) 缺点: Dobbo本身提供的高级特性没用上 自已编写启动类可能会有缺陷
try {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml");
//spring-context.xml配置加入
/*
<import resource="dubbo-provider.xml" />
*/
context.start();
} catch (Exception e) {
log.error("== DubboProvider context start error:",e);
}
//或者 System.in.read();
synchronized (DubboProvider.class) {
while (true) {
try {
DubboProvider.class.wait();
} catch (InterruptedException e) {
log.error("== synchronized error:",e);
}
}
}
2、使用Servlet容器运行(Tomcat、Jetty等)—-不可取 缺点:增加复杂性(端口、管理) 浪费资源(内存),没必要,直接建一个java工程
3.借助Spring容器使用Dubbo框架提供的Main方法类来运行com.alibaba.dubbo.container.Main 注意通过这种方式打包启动jar 需要把项目依赖jar包放到一起这里通过Main配置依赖目录关系 启动命令 java -jar XXXX .jar 或者用shell启动 —建议使用 优点:框架本身提供(com.alibaba.dubbo.container.Main) 可实现优雅关机(ShutdownHook)
//注意点: spring-context.xml <import resource="classpath:spring/spring-xxx.xml" />
监控dubbo服务
- dubbo-admin
把dubbo-admin.war包放在一个tomcat的webapp下,修改dubbo.properties文件 启动
里边的:
dubbo.registry.address=zookeeper://127.0.0.1:2181#连接的是本地的zk
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
- dubbo-monitor(待完善)
重点介绍第3种
分为java -jar,shell启动两种。但是配置啊代码啊都是一样发的
- 代码结构
api
provider
consumer 2.
java -jar
java -jar没有dubbo服务没有注册到zk上(待研究)
但是没有注册到zk上
zkCli.sh
zk:ls /
zk: [registry,zookeeper],没有dubbo
dubbo-admin 上也没有
问题出在了哪儿
放在tomcat工程下启动
- 如何用maven搭建一个简单的web项目
,详见http://blog.csdn.net/yuguiyang1990/article/details/8796726(应该不侵权吧,帮作者杨名,写的很详细)