动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Dubbo消费者的消费服务

07-12 12:38 539浏览
举报 T字号
  • 大字
  • 中字
  • 小字

1.新建一个maven工程consumers,pom.xml文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.roadjava</groupId>
  <artifactId>consumers</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>com.101tec</groupId>
        <artifactId>zkclient</artifactId>
        <version>0.10</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>4.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.46</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.4</version>
    </dependency>
    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>4.0.35.Final</version>
    </dependency>
</dependencies>
</project>

2.新建一个api接口:

package com.roadjava.service;
/**
 * 接口类
 * @author zhaodaowen
 *
 */
public interface TextService {
	/**
	 * 
	 * @param txt:一段字符串
	 * @return :返回txt里面的关键词
	 */
	 String getKeyWords(String txt);
}

这个接口我们注意看下和provider中是完全一样的。

3.在src/main/resources目录下新建consumers.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://code.alibabatech.com/schema/dubbo 
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
 <!-- 定义服务提供方provider的应用名称,这是你随便起的,能保证唯一即可, 在计算依赖关系的时候用的到,
    为了统一管理,最好和应用名称一样 -->
    <dubbo:application name="consumers"/>
 	<!-- 指定zookeeper的地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    <!-- 生成远程服务代理,可以和本地bean一样使用textService,check属性指定的启动的时候是否检查,
    	设置为false代表启动的时候不检查-->
    <dubbo:reference id="textService" check="false" 
     interface="com.roadjava.service.TextService"/>
</beans>

4.新建TestConsumers.java来进行消费:

package consumers.test; 
import java.io.IOException; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import com.roadjava.service.TextService;  
public class TestConsumers {
	public static void main(String[] args) {
		ClassPathXmlApplicationContext ac = 
				new ClassPathXmlApplicationContext(new String[]{"consumers.xml"});
		ac.start();
		/*textService为consumers.xml中配置的名字:dubbo:reference id="textService"
		虽然consumers工程中没有TextService的实现类,但是dubbo的dubbo:reference标签帮我们
		生成了interface="com.roadjava.service.TextService"这个接口的代理,我们程序中真正
		使用的就是dubbo帮我们生成的代理对象*/
	   TextService ts = ac.getBean("textService", TextService.class);
	   	String keyWords = ts.getKeyWords("乐之者java用心去写教程");
	   	System.out.println(keyWords);
        try {
            System.in.read();
        } catch (IOException e) {
            e.printStackTrace();
        }
        ac.close();
	}
}

执行结果:

当然,要想执行成功,你的消费者应用、zookeeper都要在运行着。

5.在dubbo-admin上看一下,是否有消费者呢?

提供者页面显示正常:

消费者页面也显示出了消费者的信息:

在dubbo-admin上我们可以对服务或者消费者进行降级、倍权等各项操作。

动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看Dubbo框架视频教程学习哦!

0人推荐
共同学习,写下你的评论
0条评论
代码小兵279
程序员代码小兵279

75篇文章贡献270037字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消