Dubbo集成Spring与Zookeeper
Dubbo是什么?
Spring集成
Zookeeper集成



package zrp.pub.api;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Hello world!
*/
public class App {
@SuppressWarnings("resource")
public static void main(String[] args) {
String configLocation = "spring.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(configLocation);
String[] names = context.getBeanDefinitionNames();
System.out.print("Beans:");
for (String string : names) {
System.out.println(string + ",");
}
System.out.println();
try {
Thread.sleep(1000*60*10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package zrp.pub.api.impl;
import org.springframework.stereotype.Service;
import zrp.pub.api.SayHelloToService;
@Service("sayHelloToService")
public class SayHelloToServiceImpl implements SayHelloToService {
public String sayHello(String hello) {
System.out.println("已经收到了,"+hello);
return hello+",你也好啊";
}
}
<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
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="dubbo-provider" />
<dubbo:registry protocol="zookeeper" address="zookeeper://192.168.136.171:2181?backup=192.168.136.171:2182,192.168.136.176:2183" />
<dubbo:protocol name="dubbo" port="20880" />
<dubbo:service interface="zrp.pub.api.SayHelloToService" ref="sayHelloToService" /> <!-- 和本地bean一样实现服务 -->
<!-- <bean id="sayHelloToService" class="zrp.pub.api.impl.SayHelloToServiceImpl" /> spring注释注入-->
</beans>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<context:annotation-config />
<context:component-scan base-package="zrp.pub.api.impl" />
<aop:aspectj-autoproxy proxy-target-class="true" />
<import resource="/dubbo-provider.xml" />
</beans>

<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
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
<dubbo:application name="dubbo-client" /> <!-- 使用multicast广播注册中心暴露发现服务地址 -->
<dubbo:registry protocol="zookeeper" address="zookeeper://192.168.136.171:2181?backup=192.168.136.171:2182,192.168.136.171:2183" />
<!-- 生成远程服务代理,可以和本地bean一样使用sayHelloToService -->
<dubbo:reference id="sayHelloToService" interface="zrp.pub.api.SayHelloToService"/>
</beans>
package zrp.pub;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import zrp.pub.api.SayHelloToService;
/**
* Hello world!
*/
public class App {
@SuppressWarnings("resource")
public static void main(String[] args) {
String configLocation = "dubbo-consumer.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(configLocation);
SayHelloToService sayHelloToService = (SayHelloToService) context.getBean("sayHelloToService");
String resulut = sayHelloToService.sayHello("arui");
System.out.println(resulut);
}
}