dubbo本地开发模式(即在不需要zookeepor情况下测试开发模式)
服务提供方:
<dubbo:registry address="zookeeper://10.x.x.x:2181" group="dubbo" id="myjhd_id" />
修改为
<dubbo:registry address="zookeeper://10.x.x.x:2181" group="dubbo" id="myjhd_id" register="false"/>
消费者:
<dubbo:reference> 里面的增加属性 url="dubbo://localhost:20880"
===================================华丽的分割线==================================
在开发Dubbo服务时,可能是多个人同时开发,但是都公用一个Zookeeper注册中心,这时就会出现同一个服务会有多个提供者(如果每个开发者都运行了提供者服务),这时如果某个开发者通过消费者服务在调用提供者服务时(调试服务时),调用的不一定是自己本机的提供者服务,可能是其他开发者的服务,这时就无法进行断点调试(代码运行在他人电脑上怎么断点调试?),为了能够调用自己的本机消费者服务,需要两步骤:
第一步:本机提供者服务不想Zookeeper注册服务(这样做使得他人条用不了自己的本机服务,因为服务还不稳定)
第二步:在消费者服务指定条用本地服务(直连调试)
好了,这样就可以实现本机消费者服务调用的一定是本地的提供者服务,从而可以实现断点调试。
注意:
timeout="12000" 为超时时间12秒
总结1:客户端和服务端可放入同一tomcat,然后web.xml各自加载dubbo**.xml,通过Servlet或Controller调取service方法。
public void init() throws ServletException {
super.init();
ServletContext servletContext = this.getServletContext();
WebApplicationContext ctx = WebApplicationContextUtils
.getWebApplicationContext(servletContext);
demoService = (DemoService) ctx.getBean("demoService");
}