先把zookeeper在本地给安装好,
这里的话讲述了两个工程一个工程是提供服务的,一个工程是调用服务的,因为dubbo是跟spring进行无缝连接的,故功能配置在spring的配置文件中,跟spring进行整合开发
1、工程是以maven进行构建的,使用的jar包如下:

2、服务提供者的工程
a、dubbo-demo-api 定义接口
[java] view plain copy
- public interface IProcessData {
- public String deal(String data);
- }
b、dubbo-demo-provider 服务提供者
[java] view plain copy
-
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配置
[html] view plain copy
-
-
<beans xmlns="http://www.springframework.org/schema/beans"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
-
xsi:schemaLocation="http://www.springframework.org/schema/beans
-
http://www.springframework.org/schema/beans/spring-beans.xsd
-
">
-
-
<dubbo:application name="hello-world-app" />
-
-
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
-
-
<!--
-
<dubbo:protocol name="dubbo" port="20880" />
-
<dubbo:protocol name="dubbo" port="9090" server="netty"
-
client="netty" codec="dubbo" serialization="hessian2" charset="UTF-8"
-
threadpool="fixed" threads="100" queues="0" iothreads="9" buffer="8192"
-
accepts="1000" payload="8388608" />
-
-->
-
-
<dubbo:service interface="com.huangjie.dubbo_Service.service.IProcessData"
-
ref="demoService" executes="10" />
-
-
<!--
-
<dubbo:protocol server="netty" />
-
-->
-
-
d、启动服务
[java] view plain copy
-
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、调用类
[java] view plain copy
-
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配置
[html] view plain copy
-
-
<beans xmlns="http://www.springframework.org/schema/beans"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
-
xsi:schemaLocation="http://www.springframework.org/schema/beans
-
http://www.springframework.org/schema/beans/spring-beans.xsd
-
">
-
-
<dubbo:application name="consumer-of-helloworld-app" />
-
-
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
-
<dubbo:consumer timeout="5000"/>
-
-
<dubbo:reference id="demoService" interface="com.huangjie.dubbo_Service.service.IProcessData" />
4、最后需要把zookeeper的服务给启动,在zookeeper安装文件夹下面的bin目录里面的zkServer.cmd给点击运行。不要关闭窗口,保持服务运行

这样整个调用就完成了,这样的好处是只要远程提供ip地址及端口号,以及对外调用的类,客户端就可以调用,客户端不必知道服务端的地址之类的
而且服务端可以开多个zookeeper服务,这样如果其中一个zookeeper 服务死掉了,其他服务还能正常运行
框架/平台构成:
Maven+Springmvc + Mybatis + Shiro(权限)+ Tiles(模板) +ActiveMQ(消息队列) + Rest(服务) + WebService(服务)+ EHcache(缓存) + Quartz(定时调度)+ Html5(支持PC、IOS、Android)
用户权限系统:
组织结构:角色、用户、用户组、组织机构;权限点:页面、方法、按钮、数据权限、分级授权
项目管理新体验:
快速出原型系统、组件树、版本控制、模块移植、协同开发、实时监控、发布管理
可持续集成:
所有组件可移植、可定制、可扩充,开发成果不断积累,形成可持续发展的良性循环
支持平台平台:
Windows XP、Windows 7 、Windows 10 、 Linux 、 Unix
服务器容器:
Tomcat 5/6/7 、Jetty、JBoss、WebSphere 8.5










































