您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何理解Storm dubbo服務的調用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
針對一個具體的例子,來說明,如何調用dubbo的服務。
首先: 先保證您引入了以下的jar包:
如果您的工程不是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服務的調用,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。