温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何理解Storm dubbo服务的调用

发布时间:2021-11-25 18:43:30 来源:亿速云 阅读:147 作者:柒染 栏目:云计算

本篇文章给大家分享的是有关如何理解Storm dubbo服务的调用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

针对一个具体的例子,来说明,如何调用dubbo的服务。

首先: 先保证您引入了以下的jar包:

如何理解Storm dubbo服务的调用如何理解Storm dubbo服务的调用

如果您的工程不是Mavn工程,并且您是在Storm之中调用的dubbo服务。那么以上的jar包是您需要放在工程之中的几个jar包

请参看右图,在其中我,我做了一个简易的区分:

dubbo: 所有duboo相关的jar包

lib: 所有Storm 所需要的jar包

NotStorm: 并不是Storm 所需要的jar包

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名称。

    到此,一个小的服务调用就完成了。 

以上就是如何理解Storm dubbo服务的调用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI