dubbo+sping+zookeeper入門教程
條件受限我這里是win7
準備工作:dubbo-admin-2.5.4-SNAPSHOT.war、zookeeper-3.4.5.tar.gz、tomcat(配的是8080端口)
一、安裝zookeeper(實際開發中都是運維直接配置好的)
把zookeeper解壓到D盤,進入D:\zookeeper-3.4.5\conf ;把zoo_sample.cfg文件中的dataDir=修改為dataDir=D:\\zookeeper-3.4.5\\data,保存然后重命名為:zoo.cfg,可以再log4j.properties里面修改日志路徑
二、啟動cmd d: cd:D:\zookeeper-3.4.5\bin 輸入zkServer.cmd 就啟動了,使用netstat – ano命令查看clientPort 端口號(clientPort=2181)在監聽服務
三、安裝dubbo ,直接把war包丟到tomcat webapps中解壓 全部放到root中,檢查WEB-INF下的dubbo.properties配置的dubbo.registry.address是不是跟已裝的zk一致;啟動tomcat:
訪問:http://127.0.0.1:8080;用戶名密碼都是:root
四、測試
部分jar包在dubbo的lib下面直接復制過來
生產者:
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(); // 為保證服務一直開著,利用輸入流的阻塞來模擬
}
}
<?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>
不粗什么意外應該輸出以下結果:
進入dubbo頁面,導航欄 ====》》》 服務選項
來自:http://my.oschina.net/ffy/blog/537535
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!