使用dubbo+zookeeper釋出服務與呼叫服務

weixin_34253539發表於2016-03-21

1. 準備

1.安裝zookeeper,見zookeeper基本安裝配置
2.部署dubbo-admin服務,見dubbo-admin部署

2. 建立服務介面

建立Maven工程,如工程artifactId為test-dubbo-api,新增要對外提供介面,並使用maven打包/安裝/部署到maven伺服器即可(package|install|deploy)。
例如新增介面HelloService,對外提供sayHelloToDubbo方法。如下:

public interface HelloService {
  public String sayHelloToDubbo();
}

3. 釋出服務

建立Web工程,依賴上面的工程test-dubbo-api.jar,並實現服務介面,如下

public class HelloServiceImpl implements HelloService {
  public String sayHelloToDubbo() {
    return "Hello Dubbo, Nice to meet you!";
  }
}

依賴dubbo和spring相關pom檔案,如下

    <dependencies>
        <dependency>
            <groupId>com.xxx</groupId>
            <artifactId>test-dubbo-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.3</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring-version}</version>
        </dependency>

        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
    </dependencies>

    <properties>
        <spring-version>4.1.6.RELEASE</spring-version>
        <java-version>1.7</java-version>
    </properties>

在spring中配置dubbo

在<beans>中新增dubbo的xmlns相關宣告

<beans xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation=
    "http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

配置dubbo資訊,zookeeper的地址以及要提供的服務介面

    <bean id="helloService" class="com.xxx.testdubbo.api.HelloServiceImpl"></bean>

    <!-- 提供方應用名稱資訊 -->
    <dubbo:application name="hello_server"></dubbo:application>
    <!-- 使用zookeeper註冊中心 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" subscribe="false" register=""></dubbo:registry>
    <!-- 要提供的服務介面 -->
    <dubbo:service interface="com.xxx.testdubbo.api.HelloService" ref="helloService" />

啟動服務即可註冊到dubbo

4. 呼叫服務

使用maven建立web工程,依賴test-dubbo-api.jar,以及dubbo相關jar包,這裡必須要依賴zkclient,maven依賴與釋出服務相同。

配置Spring

    <!-- 在dubbo註冊應用名稱 -->
    <dubbo:application name="dubbo_client"></dubbo:application>
    <!-- zookeeper地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false"></dubbo:registry>
    <!-- 依賴的服務 -->
    <dubbo:reference interface="com.xxx.testdubbo.api.HelloService" id="helloService"></dubbo:reference>

配置完成後,在專案中呼叫helloService就想呼叫本地服務一樣了。

相關文章