dubbox系列【三】——简单的dubbox提供者+消费者示例
1.dubbox-provider示例
在eclipse中建立maven project,名为provider-parent,包含两个maven medule:provider-api 和 provider。
项目源码已经上传至码云:http://git.oschina.net/yeyouluo/dubbox-demo-provider。
使用mvn install命令编译provider-api,最终在本地maven仓库中会生成对应的provider-api-0.0.1-SNAPSHOT.jar。如果在实际生产环境中,还应该上传到私服或中央仓库中,便于消费者使用(暴露的服务在此jar中)。
运行Provider.java,执行main方法:
1 package com.yeyouluo.dubbox.provider.test; 2 3 import java.io.IOException; 4 5 import org.springframework.context.support.ClassPathXmlApplicationContext; 6 7 public class Provider { 8 9 public static void main(String[] args) throws IOException { 10 // TODO Auto-generated method stub 11 ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("dubbox-provider.xml"); 12 ac.start(); 13 14 // 为保证服务一直开着,利用输入流的阻塞来模拟 15 System.in.read(); 16 } 17 18 }
启动后,admin中出现提供者实例:
2.dubbox-consumer示例
consumer实例比较简单,配置好<dubbo:consumer>标签,就可以像调用本地服务一样调用远程服务。
项目源码已经上传至码云:http://git.oschina.net/yeyouluo/dubbox-demo-consumer。
运行Consumer.java,执行main方法:
1 package com.yeyouluo.dubbox.consumer.test; 2 3 import java.io.IOException; 4 import java.util.List; 5 6 import org.springframework.context.support.ClassPathXmlApplicationContext; 7 8 import com.yeyouluo.dubbox.provider.inter.IDemoService; 9 import com.yeyouluo.dubbox.provider.pojo.User; 10 11 public class Consumer { 12 13 public static void main(String[] args) throws IOException { 14 ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("dubbox-consumer.xml"); 15 ac.start(); 16 17 IDemoService demoService = (IDemoService)ac.getBean("demoService"); 18 String res = demoService.sayHello("yeyouluo"); 19 System.out.println(res); 20 List<User> users = demoService.getUsers(); 21 for( User u : users ){ 22 System.out.println(u.toString()); 23 } 24 25 System.in.read(); 26 } 27 28 }
控制台输出如下:
admin中出现消费者实例:
3.附:使用ZooInspector可视化zk内容
ZooInspector下载地址:
链接: https://pan.baidu.com/s/1c2KQDpQ 密码: uxpa