Dubbo zookeeper 初探

转:http://blog.csdn.net/u011270461/article/details/12144623

建议参考资料:

http://blog.csdn.net/lin_fs/article/details/7395307

http://blog.csdn.net/goliathray/article/details/8565801

http://zy116494718.iteye.com/blog/1830138

http://agapple.iteye.com/blog/1292473

http://www.open-open.com/news/view/1442a5c

http://code.alibabatech.com/wiki/display/dubbo/Home

http://code.alibabatech.com/wiki/display/dubbo/User+Guide-zh

先把zookeeper在本地给安装好,

安装方法参考:http://blog.csdn.net/wxwzy738/article/details/16330253

这里的话讲述了两个工程一个工程是提供服务的,一个工程是调用服务的,因为dubbo是跟spring进行无缝连接的,故功能配置在spring的配置文件中,跟spring进行整合开发

1、工程是以maven进行构建的,使用的jar包如下:


2、服务提供者的工程

a、dubbo-demo-api  定义接口

public interface IProcessData {
	public String deal(String data);
}
b、 dubbo-demo-provider 服务提供者

public class ProcessDataImpl implements IProcessData {

	/* 
	 * @see com.xxx.bubbo.provider.IProcessData#deal(java.lang.String)
	 */
	@Override
	public String deal(String data) {
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return "Finished:" + data;
	}
}

c、applicationProvider.xml配置

  
  
  
      
      
  
      
      
  
      
      
      
      
  
      
      
  
      
      
  
 

d、 启动服务

public class DubboProviderMain {  
    public static void main(String[] args) throws Exception {  
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(  
                new String[]{"applicationProvider.xml"});  
        context.start();
  
        System.out.println("Press any key to exit.");  
        System.in.read();  
    }  
} 

3、服务调用者的工程

a、调用类

public class ConsumerThd implements Runnable {  
  
    /*  
     * @see java.lang.Runnable#run() 
     */  
    @Override  
    public void run() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(  
                new String[]{"applicationConsumer.xml"});  
        context.start();  
  
        IProcessData demoService = (IProcessData) context.getBean("demoService"); // get  
                                                                                // service  
                                                                                // invocation  
        // proxy  
        String hello = demoService.deal("nihao"); // do invoke!  
  
        System.out.println(Thread.currentThread().getName() + " "+hello);  
    }  
    
	public static void main(String[] args) {
		new Thread(new ConsumerThd()).start();
		/**
		 * 输出结果:
		 * Thread-0 Finished:nihao
		 */
	}
} 

b、applicationConsumer.xml配置

  
  
  
      
      
  
      
      
      
      
      
 
4、最后需要把zookeeper的服务给启动,在zookeeper安装文件夹下面的bin目录里面的zkServer.cmd给点击运行。不要关闭窗口,保持服务运行


这样整个调用就完成了,这样的好处是只要远程提供ip地址及端口号,以及对外调用的类,客户端就可以调用,客户端不必知道服务端的地址之类的

而且服务端可以开多个zookeeper服务,这样如果其中一个zookeeper 服务死掉了,其他服务还能正常运行


工程下载路径:http://download.csdn.net/detail/wxwzy738/6553431


你可能感兴趣的:(zookeeper&dubbo)