Dubbo是一款高性能、轻量级的开源Java RPC框架,它能使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成,那dubbo怎么对外提供接口的?下面来我们就来给大家讲解一下。
首先需要提供接口的人给你接口地址,注册中心地址,以及参数类型,参数类型可以是实体类,可以让客户直接把实体类发给你
接口地址就是类名地址以及要调用的方法
比如:com.aaa.interface.ToInterService.sendService
其中com.aaa.interface是包名
ToInterService是类名
sendService是方法名
准备工作做好了就开始干吧
1.配置dubbo的配置文件 spring-dubbo.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"> <!-- 描述 --> <description>dubbo客户端服务配置</description> <!-- 消费者系统标志 --> <dubbo:application name="ACTUARY-SYSTEM"/> <!-- 注册中心地址 --> <dubbo:registry protocol="zookeeper" address="注册中心IP:端口号" client="zkclient"/> <!-- 消费者 --> <dubbo:reference id="toInterService" interface="com.aaa.interface.ToInterService" url="dubbo://调用服务IP:端口号" check="false" timeout="600000"/> </beans>
需要注意的是:注册中心的address,以及消费者需要调用的interface,url要正确
2.在本地新建类com.aaa.interface.ToInterService
需要注意:本地新建类的包名,类型,以及方法要和提供的一致,可以让客户提供,自行复制粘贴即可
package com.aaa.interface; import webservice.provider.prpall.bean.VoucherRequestRequest; public abstract interface ToInterService { public abstract String sendService(String param); }
3.加载spring-dubbo.xml
4.测试
@Autowired ToInterService toInterService; public void test() { System.out.println("开始"); String result = toInterService.sendService("aa"); System.out.println("结果==" + result); } <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.8.4</version> <exclusions> <exclusion> <artifactId>curator-framework</artifactId> <groupId>org.apache.curator</groupId> </exclusion> <exclusion> <artifactId>curator-client</artifactId> <groupId>org.apache.curator</groupId> </exclusion> <exclusion> <artifactId>guava</artifactId> <groupId>com.google.guava</groupId> </exclusion> <exclusion> <artifactId>spring-web</artifactId> <groupId>org.springframework</groupId> </exclusion> </exclusions> </dependency> < !--zookeeper注册中心工具包-- > <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency> < dependency > <groupId>com.101tec</groupId> < artifactId > zkclient < /artifactId> < version > 0.9 < /version> < /dependency> < !--JunitTest依赖, 仅仅junit测试使用-- > <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-server</artifactId> <version>9.2.10.v20150310</version> <scope>test</scope> </dependency>
dubbo接口的基本原理是什么?
1.服务提供者:对外提供接口服务方;
2.服务消费者:调用远程服务方提供方;
3.服务注册中心:负责服务地址的注册与查找,服务提供者和消费者只在启动时与注册中心交互
4.服务监控中心:负责统计各服务调用次数,调用时间等。
服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心;服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心。
了解dubbo接口基本原理我们才能外提供接口,毕竟接口调用就是dubbo的功能之一!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: