spring boot dubbo 配置

一、建3個空工程:

1、建maven工程demo-dubbo-api . 這個是接口工程;

2、建spring boot 的jar 工程 demo-dubbo-provider.   這個是dubbo服務工程;

3、建spring boot 的jar  工程 demo-dubbo-client.     這個是調用dubbo服務的測試工程;


二、

1、在接口工程建:

public interface SayHelloI {
    public String say(String name);
}

2、在服務工程:

  a、配置pom.xml,添加如下

<!-- dubbo 引用 -->
 
<!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
<version>2.5.8</version>
</dependency>
<!--註冊中心引用-->

<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.11</version>
</dependency>

<!--註冊中心操作客戶端,可以去掉-->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
 
 b、新建文件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:application name="${dubbo.application.name}" />
<!-- 註冊中心暴露服務地址 -->
   <dubbo:registry protocol="${dubbo.registry.protocol}" address="${dubbo.registry.address}" />
<!-- 暴露服務 -->
<dubbo:protocol name="${dubbo.protocol.name}" port="${dubbo.protocol.port}" />
<dubbo:service interface="com.zivy009.demo3.service.SayHelloI"
ref="sayHelloImp" retries="0" timeout="6000" />
</beans>

c、建文件dubbo.properties

#應用名稱
dubbo.application.name=example-provider
#註冊中心類型
dubbo.registry.protocol=zookeeper
#註冊中心地址
dubbo.registry.address=ip:port,ip:port
#暴露服務方式
dubbo.protocol.name=dubbo
#暴露服務端口
dubbo.protocol.port=20880

d、建配置文件

/**
* @author zivy
* @date 2017年12月19日
* @describe
*/
@Configuration
@PropertySource("classpath:dubbo/dubbo.properties")
@ImportResource({"classpath:dubbo/*.xml"})
public class DubboConfig {
}


e、 實現接口

/**
* @author zivy
* @date 2017年12月19日
* @describe
*/
@org.springframework.stereotype.Service
public class SayHelloImp implements SayHelloI {
    @Override
    public String say(String name) {
        System.out.println(name+" say hello .                         "+ new Date());
        return "ok";
    }
}
 


3、在測試端

a、pom.xml  和服務端一樣;

b、配置 文件,建dubbo-consume.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:application name="${dubbo.application.name}" />
<!-- 註冊中心暴露服務地址 -->
   <dubbo:registry protocol="${dubbo.registry.protocol}" address="${dubbo.registry.address}" />
<dubbo:reference id="sayHelloI" interface="com.zivy009.demo3.service.SayHelloI" />
</beans>


配置文件dubbo.properties

#應用名稱
dubbo.application.name=example-consume
#註冊中心類型
dubbo.registry.protocol=zookeeper
#註冊中心地址
dubbo.registry.address=ip:port


springboot 的入口:

    public static void main(String[] args) {
        ConfigurableApplicationContext configurableApplicationContext=  SpringApplication.run(DemoDubboClientApplication.class, args);
        
        SayHelloI sayHelloI= (SayHelloI)configurableApplicationContext.getBean("sayHelloI");
       }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章