使用Dubbo实现RPC远程调用(Maven工程)

server项目目录结构

创建统一的api接口(提供给服务提供者和服务消费者使用)

public interface ILoginService {
    String login(String username,String password);
}

将改暴露的接口导出

 

dubbo-server端

引入pom文件(引入nacos或者zookeeper依赖)

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
<!--引入自己对应暴露的接口-->
    <dependency>
      <groupId>com.jgh</groupId>
      <artifactId>dubbo-server-api</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.apache.dubbo</groupId>
      <artifactId>dubbo</artifactId>
      <version>2.7.8</version>
    </dependency>
<!--    <dependency>-->
<!--      <groupId>org.apache.dubbo</groupId>-->
<!--      <artifactId>dubbo-dependencies-zookeeper</artifactId>-->
<!--      <version>2.7.8</version>-->
<!--    </dependency>-->
<!--注册到zookeeper依赖-->
    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <version>3.4.7</version>
    </dependency>
    <dependency>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-framework</artifactId>
      <version>2.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-recipes</artifactId>
      <version>2.8.0</version>
    </dependency>
<!--    注册到nacos依赖 -->
    <dependency>
      <groupId>com.alibaba.nacos</groupId>
      <artifactId>nacos-client</artifactId>
      <version>1.2.1</version>
    </dependency>
  </dependencies>

server端暴露接口的实现类

public class LoginServiceImpl implements ILoginService{
    public String login(String username, String password) {
        if (username.equals("admin")&&password.equals("admin")){
            return "success";
        }
        return "failed";
    }
}

dubbo配置实现类application.xml

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/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-4.3.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <dubbo:application name="dubbo-server"/>

    <dubbo:protocol name="dubbo" port="20880" />

    <dubbo:registry address="nacos://192.168.56.10:8848"/>

    <dubbo:service interface="com.jgh.service.ILoginService" ref="loginService"/>

    <bean id="loginService" class="com.jgh.service.LoginServiceImpl"/>


</beans>

配置server端启动类(Maven项目启动方式---自行更换成springboot)

public class App 
{
    public static void main( String[] args )
    {
        Main.main(args);
    }
}

dubbo-client端

client目录结构

 pom文件(引入nacos和zookeeper注册中心)

    <dependencies>
        <dependency>
            <groupId>com.jgh</groupId>
            <artifactId>dubbo-server-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.8.0</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.2.1</version>
        </dependency>
    </dependencies>

此处dubbo-server-api引入不成功的话,可能是本地maven仓库的地址没有统一

 设置同一个仓库地址之后就能引入成功了

配置application.xml文件

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/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-4.3.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <dubbo:application name="dubbo-server"/>

    <dubbo:registry address="nacos://192.168.56.10:8848" timeout="10000"/>

    <dubbo:reference id="loginService" interface="com.jgh.service.ILoginService" />


</beans>

client端启动程序

public class App {
    public static void main(String[] args) {
        ILoginService loginService = null;
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext
                ("classpath:META-INF/spring/application.xml");
        loginService = applicationContext.getBean(ILoginService.class);

        System.out.println(loginService.login("admin","admin"));
    }
}

以上就是使用dubbo整合nacos/zookeeper的流程。

如何使用启动nacos和zookeeper可参考下一篇文章。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值