DubboとSpringの併用
4216 ワード
Dubboはサービスガバナンスの枠組みであり、分布式サービスの管理とガバナンス、監視に良い実現がある.
この例では、DubboとSpringの組み合わせを説明します.
1. Mavenはdubboの構成を導入
2. SpringのDubbo providerプロファイルを追加spring-dubbo-provider.xml:
3.インタフェースと実装クラスコード:
UserServiceインタフェース:
UserServiceImplクラス:
4.消費者側のプロファイル
5.テストクラス
6.dubbo-adminパッケージを使用すると、dubboのサービスを管理および監視できます.
この例では、DubboとSpringの組み合わせを説明します.
1. Mavenはdubboの構成を導入
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
</dependency>
2. SpringのDubbo providerプロファイルを追加spring-dubbo-provider.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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 -->
<dubbo:application name="user_provider"/>
<!-- zookeeper -->
<dubbo:registry address="${zookeeper.registry}"/>
<dubbo:protocol port="${dubbo.provider.port}"/>
<dubbo:monitor protocol="registry"/>
<!-- -->
<dubbo:service interface="com.test.api.UserService"
ref="userService" timeout="5000" retries="2" />
<bean id="userService" class="com.test.service.UserServiceImpl" />
</beans>
3.インタフェースと実装クラスコード:
UserServiceインタフェース:
public interface UserService {
public String hello(String name);
}
UserServiceImplクラス:
public interface UserServiceImpl implement UserService {
public String hello(String name){
return "hello"+name;
}
}
4.消費者側のプロファイル
<?xml version="1.0" encoding="UTF-8"?>
<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="user_consumer" />
<dubbo:registry address="${zookeeper.registry}"/>
<dubbo:monitor protocol="registry"/>
<!-- -->
<dubbo:reference id="userPointsFacade" interface="com.dmall.points.api.UserPointsFacade" timeout="10000" check="false" />
</beans>
5.テストクラス
public class UserPonitsTest {
public static void main(String[] args) throws InterruptedException{
start();
}
public void testApp() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"spring/dubbo-consumer.xml"});
context.start();
try {
System.in.read(); // ,
}catch (Exception e){
e.printStackTrace();
}
}
}
6.dubbo-adminパッケージを使用すると、dubboのサービスを管理および監視できます.