spring集成dubbo簡單使用,maven管理

dubbo配置

provider生產者需要配置註冊中心,應用名稱,協議方式,暴露的服務

consumer消費者需要配置註冊中心,應用名稱,引用服務

在配置註冊中心,zookeeper註冊中心

配置這些基本就能啓動一個簡單的dubbo應用,

 

spring和dubbo配置,maven構建項目,引入需要的jar包,pom.xml如下

 <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <!-- Spring依賴 -->
        <!-- 1.Spring核心依賴 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- 2.Spring dao依賴 -->
        <!-- spring-jdbc包括了一些如jdbcTemplate的工具類 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- 3.Spring web依賴 -->
        <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>
        <!-- 4.Spring test依賴:方便做單元測試和集成測試 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>


        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.5</version>
        </dependency>
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.20.0-GA</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.netty</groupId>
            <artifactId>netty</artifactId>
            <version>3.2.5.Final</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.9</version>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>

    </dependencies>

這裏用最簡單的加載application.xml配置啓動,provider生產者只要在application中聲明一個bean,註冊註冊中心,應用名稱,暴露服務名,使用的協議.

<?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
        ">

    <!--聲明使用到的bean-->
    <bean id="demoService" class="com.serviceImpl.DemoServiceImpl"/>
    <!--dubbo應用名稱-->
    <dubbo:application name="test_application"/>
    <!--註冊中心-->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    <!--協議名稱-->
    <dubbo:protocol name="rmi" port="1099"/>
    <!--暴露的服務名稱-->
    <dubbo:service interface="com.service.DemoService" ref="demoService"/>

</beans>

consumer消費者在application裏配置應用名稱,註冊中心,引用的服務.

<?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="test_application"/>
    <!--註冊中心-->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    <!--引用服務,id需和生產者聲明的一致-->
    <dubbo:reference id="demoService"
                     interface="com.service.DemoService" />
</beans>

然後需要zoopeeper中心,我使用的是zookeeper-3.4.13,直接去官網下載,解壓之後將文件夾下面的config文件夾中的zoo_sample.cfg 複製一份,命名爲zoo.cfg,再去bin文件夾下啓動zkServer.cmd,就可以了

下面附上生產者啓動類

package test;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class Provider {
    public static void main(String args[]) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
        context.start();
        System.out.println("服務啓動");
        System.in.read(); // 爲保證服務一直開着,利用輸入流的阻塞來模擬
    }
}

消費者

import com.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String args[]){
        ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"application.xml"});
        context.start();
        DemoService service = (DemoService) context.getBean("DemoService");
        service.sayHello();
        context.close();
    }
}

dubbo-admin管理項目,從git下載源碼,然後idea編譯,啓動,就可以了.

下面是賬戶信息 root用戶密碼爲root,guest用戶密碼爲guest 而不是root用戶密碼爲guest

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

 

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