【Storm-dubbo】服務調用


閱讀背景:1 您須要瞭解什麼是dubbo,如何使用dubbo拆分服務java

                2:您須要瞭解如何將所須要的服務註冊到dubbospring

                3: 您還可能須要瞭解如何使用zookeeper
小程序



本章主題:針對一個具體的例子,來講明,如何調用dubbo的服務。app



首先: 先保證您引入瞭如下的jar包:spa


若是您的工程不是Mavn工程,而且您是在Storm之中調用的dubbo服務。那麼以上的jar包是您須要放在工程之中的幾個jar包code


請參看右圖,在其中我,我作了一個簡易的區分:orm


dubbo: 全部duboo相關的jar包xml

lib: 全部Storm 所須要的jar包接口

NotStorm: 並非Storm 所須要的jar包get

Spring: 全部包含Spring的jar包



其次:請您務必配置好  application.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.xsd        
    http://code.alibabatech.com/schema/dubbo        
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd
    ">

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

	<!-- 使用zookeeper註冊中心暴露發現服務地址 223.203.216.238 192.168.50.247:2181?backup=192.168.50.248:2181,192.168.50.249:2181 -->

	<dubbo:registry
		address="zookeeper://192.168.50.247:2181?backup=192.168.50.248:2181,192.168.50.249:2181" />
	<!-- <dubbo:registry address="zookeeper://192.168.36.238:2181?backup=192.168.36.239:2181,192.168.36.240:2181,192.168.36.241:2181,192.168.36.242:2181" 
		/> -->
	<!-- <dubbo:registry address="zookeeper://192.168.50.247:2181?backup=192.168.50.248:2181,192.168.50.249:2181" 
		/> -->




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

	<!--接口 -->
	<!-- <dubbo:service timeout="5000" interface="com.wooboo.service.kafka.KafkaServie" 
		ref="KafkaServiceimpl" /> -->

	<!--實現類 -->
	<!-- <bean id="KafkaServiceimpl" class="com.wooboo.service.kafka.KafkaServiceimpl" 
		/> -->



	<dubbo:reference id="KafkaService"
		interface="com.wooboo.service.kafka.KafkaServie" />

	<dubbo:reference id="productCacheService"
		interface="com.wooboo.service.product.service.ProductService" timeout="50000" />

	<dubbo:reference id="productCategoryService" interface="com.wooboo.service.productcategory.service.ProductCategoryService" timeout="5000"/>
	



</beans>


  在以上的配置中:  


  1 reference id:   標識着具體的project 引用之中class的名稱。  


  2 interface: 表示着經過dubbo服務,給咱們提供的接口的名稱,在這裏,一般須要將接口的名稱註冊到zookeeper服務之中。


  3 zookeeper地址:

<dubbo:registry
		address="zookeeper://192.168.50.247:2181?backup=192.168.50.248:2181,192.168.50.249:2181" />

 

  下面,請參看咱們的一個具體小程序:依據商品id,獲得商品的其餘信息

            

package test;

import java.util.Set;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.wooboo.common.bean.ProductCache;
import com.wooboo.common.bean.ProductCategoryCache;
import com.wooboo.service.kafka.KafkaServie;
import com.wooboo.service.product.service.ProductService;
import com.wooboo.service.productcategory.service.ProductCategoryService;

public class TestDubbo {

	public static ClassPathXmlApplicationContext context = null;

	static {

		context = new ClassPathXmlApplicationContext(
				new String[] { "applicationContext.xml" });

		context.start();
	}

	public static void main(String[] args) throws Exception {

		// 商品的Service
		ProductService productService = (ProductService) context
				.getBean("productCacheService");

		// 商品分類的Service
		ProductCategoryService categoryService = (ProductCategoryService) context
				.getBean("productCategoryService");

		long goodsid = 627L;
		ProductCache cache = productService.getProduct(goodsid);
		//
		Long productCategoryId = cache.getProductCategoryId();
		//
		ProductCategoryCache categoryCache = categoryService
				.getProductCategory(productCategoryId);

		long parrent = categoryCache.getParent();
		Set<Long> child = categoryCache.getChildren();

		//
		System.err.println(parrent);

	}

	public static void p(Object o) {
		System.err.println(o.toString());
	}

}


   在這個小程序之中,請注意本地咱們的 

ProductCategoryService

   須要在本地有這個class類存在。在方法的調用過程之中,getBean()中傳遞的是咱們在 xml文件之中配置的id名稱。


    到此,一個小的服務調用就完成了。 至於,如何向dubbo註冊服務,提供Service,還請您自行GOOGLE。

相關文章
相關標籤/搜索