dubbo+sping+zookeeper入門教程

條件受限我這裏是win7 java

準備工做:dubbo-admin-2.5.4-SNAPSHOT.war、zookeeper-3.4.5.tar.gz、tomcat(配的是8080端口) web

1、安裝zookeeper(實際開發中都是運維直接配置好的) spring

把zookeeper解壓到D盤,進入D:\zookeeper-3.4.5\conf ;把zoo_sample.cfg文件中的dataDir=修改成dataDir=D:\\zookeeper-3.4.5\\data,保存而後重命名爲:zoo.cfg,能夠再log4j.properties裏面修改日誌路徑 tomcat

2、啓動cmd d:     cd:D:\zookeeper-3.4.5\bin   輸入zkServer.cmd 就啓動了,使用netstat – ano命令查看clientPort 端口號(clientPort=2181)在監聽服務 app

3、安裝dubbo ,直接把war包丟到tomcat webapps中解壓 所有放到root中,檢查WEB-INF下的dubbo.properties配置的dubbo.registry.address是否是跟已裝的zk一致;啓動tomcat: 運維

訪問:http://127.0.0.1:8080;用戶名密碼都是:root webapp

4、測試 ide

部分jar包在dubbo的lib下面直接複製過來 測試

生產者: google

package com.dk.provider.service;

import java.util.List;

/**
 * PS  :
 * User: alec
 * Date: 13-08-12
 * Time: 下午4:11
 */
public interface ProviderService {
    
    String sayHello(String name);
    public List getNames();
}
實現類
package com.dk.provider.service.impl;

import com.dk.provider.service.ProviderService;
import com.google.common.collect.Lists;

import java.util.List;

/**
 * PS  :
 * User: alec
 * Date: 13-08-12
 * Time: 下午4:12
 */
public class ProviderServiceImpl implements ProviderService {


    @Override
    public String sayHello(String name) {
        return "hello" + name;
    }

    @Override
    public List getNames() {
        return Lists.newArrayList("張三", "李四", "王五");
    }
}
啓動:
package com.dk.provider;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * PS  :
 * User: alec
 * Date: 13-08-12
 * Time: 下午4:31
 */
public class Provider {
    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"application-provider.xml"});
        context.start();
        System.out.println("provider ready");
        System.in.read(); // 爲保證服務一直開着,利用輸入流的阻塞來模擬  
    }
}


application-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-3.2.xsd
       http://code.alibabatech.com/schema/dubbo
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 具體的實現bean -->
    <bean id="providerService" class="com.dk.provider.service.impl.ProviderServiceImpl" />

    <!-- 提供方應用信息,用於計算依賴關係 -->
    <dubbo:application name="fuck_provider"  />

    <!-- 使用zookeeper註冊中心暴露服務地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />

    <!-- 用dubbo協議在20880端口暴露服務 -->
    <dubbo:protocol name="dubbo" port="20880" />

    <!-- 聲明須要暴露的服務接口 -->
    <dubbo:service interface="com.dk.provider.service.ProviderService" ref="providerService" />
</beans>


消費者:
package com.dk.consumer;

import com.dk.provider.service.ProviderService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

/**
 * PS  :
 * User: alec
 * Date: 13-08-12
 * Time: 下午4:36
 */
public class Consumer {
    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"application-consumer.xml"});
        context.start();

        ProviderService providerService = (ProviderService) context.getBean("providerService");
        String hello = providerService.sayHello("alec");
        System.out.println(hello);

        List list = providerService.getNames();
        for (Object obj : list) {
            System.out.println(obj);
        }

        System.in.read();
    }
}

application-consumer.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-3.2.xsd
       http://code.alibabatech.com/schema/dubbo
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 消費方應用名,用於計算依賴關係,不是匹配條件,不要與提供方同樣 -->
    <dubbo:application name="fuck_consumer" />

    <!-- 使用zookeeper註冊中心暴露服務地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />

    <!-- 生成遠程服務代理-->
    <dubbo:reference id="providerService" interface="com.dk.provider.service.ProviderService" />
</beans>




依次執行Provider,Consumer

不粗什麼意外應該輸出如下結果:

進入dubbo頁面,導航欄 ====》》》 服務選項

相關文章
相關標籤/搜索