dubbo+zookeeper的簡單例子

標準的框架模式:

1.   將parent、model、common、service、service-impl、dao、dao-impl分開打包。將功能模塊化。

        其中parent只負責存放jar包,其他項目繼承parent。

        common

         control依賴model與service。只需要在pom.xml中依賴即可。

        service-impl是具體處理業務的模塊,依賴model、common、service、dao、dao-impl。



1. dubbo jar包依賴

    

   未使用到montior,所以未導入該包。


    由於dubbo底層使用是用netty實現,所以導入netty包。


    需要註冊zookeeper,導入zookeeper包。

2.啓動zookeeper

    下載zookeeper,更改zoo.cfg文件,在bin下啓動服務端與客戶端。啓動成功如下:


3. provider端構建

    (1)提供一個service層接口並寫出該實現類。

    (2) 寫一個類,用來啓動spring容器。

	public static void main(String[] args) throws IOException {
		ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(
				new String[]{"provider.xml"});
		context.start();
		System.in.read();
	}

    (3)配置xml

  <!-- 提供方應用信息,用於計算依賴關係 ,-->
  <dubbo:application name="provider"/>
  <!-- 使用zookeeper註冊中心暴露服務地址 -->
  <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
  <dubbo:protocol name="dubbo" port="20880"/>
  <!-- 內部註冊bean -->
  <bean id="sampleProviderService" class="com.provider.service.impl.SampleProviderServiceImpl"/>
  <!-- 暴露出來,給別人調用,指向本地的bean -->
  <dubbo:service interface="com.provider.service.SampleProviderService" ref="sampleProviderService" />
	

3. consumer端構建

    (1)需要要provider的service層搬過來。

    (2)配置consumer的xml

   	<!-- 消費方應用名,用於計算依賴關係,不是匹配條件,不要與提供方一樣 -->
	<dubbo:application name="consumer" />       
    <!-- 使用zookeeper註冊中心暴露服務地址 -->
	<dubbo:registry address="zookeeper://127.0.0.1:2181" />
	<!-- 表示引用一個服務,生成遠程服務代理,可以像使用本地bean一樣使用demoService
	 檢查級聯依賴關係 默認爲true 當有依賴服務的時候,需要根據需求進行設置
	 check=false,表示關閉該服務啓動時檢查,
	 若是此時關閉掉服務提供者的服務器,此時啓動客戶端的服務器,可以正常啓動, -->
	<dubbo:reference id="sampleProviderService" check="false" interface="com.provider.service.SampleProviderService" />
	

    (3)調用provider中的service。

public static void main(String[] args) {	
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				new String[]{"consumer.xml"});
		context.start();
		SampleProviderService service = (SampleProviderService)context.getBean("sampleProviderService");
		User user = service.getUser();
		System.out.println(user.toString());
	}

    (4)調用成功,顯示結果。





發佈了33 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章