RPC-Dubbo快速入门

Posted 健哥说编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RPC-Dubbo快速入门相关的知识,希望对你有一定的参考价值。

1、Dubbo快速入门

 

1、依赖

(1) ZookeeperZookeeperdubbo的注册中心。

 

以下为了快速演示,在windows上安装zookeeper。注意,zookeeperwindows上的命令,与在linux上存在一些差异,仅用于快速学习。正式使用zk请使用linux服务器。

1、在windows上安装zookeeper

解压zookeeper-3.4.12.tar.gz即可:

 

RPC-Dubbo快速入门

2、配置zookeeper

conf目录下,修改zoo.cfg文件:

RPC-Dubbo快速入门

主要配置:

dataDir=D:/programfiles/zookeeper-3.4.12/datas

其他保持默认就可以了。

 

 

3、启动zookeeper

注意,这儿的启动命令,与windows有所不同。

 

RPC-Dubbo快速入门

 

 

4、开发Provider

1、创建mavenjava项目添加以下依赖

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<version>2.6.2</version>

</dependency>

<dependency>

<groupId>org.apache.zookeeper</groupId>

<artifactId>zookeeper</artifactId>

<version>3.4.13</version>

</dependency>

<dependency>

<groupId>org.apache.curator</groupId>

<artifactId>curator-recipes</artifactId>

<version>4.0.1</version>

</dependency>

2、开发接口及实现类

接口:

package cn.dubbo;

public interface IHello {

public String say(String name);

}

 

实现类:

package cn.dubbo;

import java.util.Date;

public class HelloImpl implements IHello {

public String say(String name) {

System.out.println("Hello.." + name);

return "Hello " + name + "," + new Date().toString();

}

}

 

3、开发Spring配置文件

创建名称为p.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-admin  dubbo-monitor 会显示这个名字,方便辨识 -->

<dubbo:application name="demotest-provider"

owner="programmer" organization="dubbox" />

<!--使用 zookeeper 注册中心暴露服务,注意要先开启 zookeeper -->

<dubbo:registry address="zookeeper://localhost:2181" />

<!-- 用dubbo协议在20880端口暴露服务 -->

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

<!--使用 dubbo 协议实现定义好的 api.PermissionService 接口 -->

<dubbo:service interface="cn.dubbo.IHello"

ref="helloService" protocol="dubbo" />

<!--具体实现该接口的 bean -->

<bean id="helloService" class="cn.dubbo.HelloImpl" />

</beans>

 

4、开发Provider类用于对外提供服务

package cn.dubbo;

import java.io.IOException;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Provider {

public static void main(String[] args) throws IOException {

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("cn/dubbo/p.xml");

System.out.println(context.getDisplayName() + ": here");

context.start();

System.out.println("服务已经启动...");

System.in.read();

context.close();

}

}

 

5、启动上面的类

 

现在可以去检查zookeeper客户端中的数据:

RPC-Dubbo快速入门输入zkCli.cmd登录:

 

RPC-Dubbo快速入门

 

使用ls查看目录结构:

RPC-Dubbo快速入门

查看节点内容:

 

RPC-Dubbo快速入门

 

5、开发消费者

1、使用同样的maven依赖。

2、将接口类放到这个项目中。

 

直接在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="demotest-consumer"

owner="programmer" organization="dubbox" />

<dubbo:registry address="zookeeper://localhost:2181" />

<!--使用 dubbo 协议调用定义好的 api.PermissionService 接口 -->

<dubbo:reference id="hello" interface="cn.dubbo.IHello" />

</beans>

 

6、调用测试

package cn.dubbo.client;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.dubbo.IHello;

public class Client {

public static void main(String[] args) {

// 测试常规服务

ClassPathXmlApplicationContext context = //

new ClassPathXmlApplicationContext("cn/dubbo/client/c.xml");

context.start();

System.out.println("consumer start");

IHello hello = context.getBean("hello", IHello.class);

String name = hello.say("张三");

System.out.println("name is:" + name);

}

}

 

测试成功:

 

RPC-Dubbo快速入门

更多dubbo项目示例,如与springmvc集成:

RPC-Dubbo快速入门



更多学习:

 

 

 


以上是关于RPC-Dubbo快速入门的主要内容,如果未能解决你的问题,请参考以下文章

EFK教程 - EFK快速入门指南

Python要如何快速入门?

Flume快速入门

Gojs 快速入门

Guzzle 的快速入门

Dva快速入门,5分钟入门10分钟精通