dubbo怎么对外提供接口的?dubbo接口的基本原理是什么?

Dubbo是一款高性能、轻量级的开源Java RPC框架,它能使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成,那dubbo怎么对外提供接口的?下面来我们就来给大家讲解一下。

dubbo怎么对外提供接口的.jpg

首先需要提供接口的人给你接口地址,注册中心地址,以及参数类型,参数类型可以是实体类,可以让客户直接把实体类发给你

接口地址就是类名地址以及要调用的方法

比如: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工具网。

推荐阅读:

java三元运算符怎么用?java三元运算符流程是什么?

java程序员怎么才能进大厂?java程序员进大厂工资高吗?

javaidea怎么用?javaidea的简单使用教程