Dubbo zookeeper 初探【转】

先把zookeeper在本地给安装好,

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

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

2、服务提供者的工程

a、dubbo-demo-api  定义接口

[java]view plaincopy

publicinterfaceIProcessData {

publicString deal(String data);

}

b、dubbo-demo-provider 服务提供者

[java]view plaincopy

publicclassProcessDataImplimplementsIProcessData {

/*

* @see com.xxx.bubbo.provider.IProcessData#deal(java.lang.String)

*/

@Override

publicString deal(String data) {

try{

Thread.sleep(1000);

}catch(InterruptedException e) {

e.printStackTrace();

}

return"Finished:"+ data;

}

}

c、applicationProvider.xml配置

[html]view plaincopy


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

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd

">





client="netty"codec="dubbo"serialization="hessian2"charset="UTF-8"

threadpool="fixed"threads="100"queues="0"iothreads="9"buffer="8192"

accepts="1000"payload="8388608"/>

-->


ref="demoService"executes="10"/>



-->


d、启动服务

[java]view plaincopy

publicclassDubboProviderMain {

publicstaticvoidmain(String[] args)throwsException {

ClassPathXmlApplicationContext context =newClassPathXmlApplicationContext(

newString[]{"applicationProvider.xml"});

context.start();

System.out.println("Press any key to exit.");

System.in.read();

}

}

3、服务调用者的工程

a、调用类

[java]view plaincopy

publicclassConsumerThdimplementsRunnable {

/*

* @see java.lang.Runnable#run()

*/

@Override

publicvoidrun() {

ClassPathXmlApplicationContext context =newClassPathXmlApplicationContext(

newString[]{"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);

}

publicstaticvoidmain(String[] args) {

newThread(newConsumerThd()).start();

/**

* 输出结果:

* Thread-0 Finished:nihao

*/

}

}

b、applicationConsumer.xml配置

[html]view plaincopy


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

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd

">




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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容