一、简介
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。现在已经是apache基金会的顶级开源项目。
总体架构

二、zookeeper安装启动
系统环境:ubuntu 16.04
apt-get install zookeeper
service zookeeper start
查看zookeeper进程
ps aux | grep zookeeper

zookeeper启动成功
三、dubbo服务提供者provider代码
pom.xml依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
服务提供方的接口 :
HelloWorld.java
package com.zhuyun.dubbo;
public interface HelloWorld {
public String run();
}
接口实现类:
HelloWorldImpl.java
package com.zhuyun.dubbo.impl;
import org.springframework.stereotype.Component;
import com.zhuyun.dubbo.HelloWorld;
@Component("helloWorld")
public class HelloWorldImpl implements HelloWorld{
public String run(){
return "Hello world!";
}
}
spring配置文件:
applicationContext.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:p="http://www.springframework.org/schema/p"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<context:component-scan base-package="com.zhuyun"></context:component-scan>
<dubbo:application name="dubboProvider" />
<!-- registry address, used for consumer to discover services -->
<dubbo:registry protocol="zookeeper" address="192.168.10.15:2181" />
<dubbo:consumer timeout="50000" />
<!-- which service to consume? -->
<!-- 具体的实现bean -->
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" host="192.168.10.200" port="20888" threads="1000" queues="1000" accepts="1000"/>
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.zhuyun.dubbo.HelloWorld" ref="helloWorld" actives="1000" executes="1000" />
</beans>
Main方法:
Main.java
package com.zhuyun.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) throws Exception {
ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
while (true) {
System.in.read();
}
}
}
四、dubbo服务消费者consumer代码
消费方需要调用的接口需要跟提供者的一致(包括包名和类名):
HelloWorld.java
package com.zhuyun.dubbo;
public interface HelloWorld {
public String run();
}
spring配置文件:
applicationContext.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:p="http://www.springframework.org/schema/p"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
<dubbo:application name="dubboConsumer" />
<!-- registry address, used for consumer to discover services -->
<dubbo:registry protocol="zookeeper" address="192.168.10.15:2181" />
<dubbo:consumer timeout="50000" />
<!-- which service to consume? -->
<dubbo:reference id="helloWorld" interface="com.zhuyun.dubbo.HelloWorld" check="false" sent="true"/>
</beans>
Main方法:
Main.java
package com.zhuyun.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.zhuyun.dubbo.HelloWorld;
import com.zhuyun.user.dubbo.UserController;
public class Main {
public static void main(String[] args) {
ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld helloWorld = (HelloWorld) act.getBean("helloWorld");
System.out.println(helloWorld.run());
}
}
五、执行结果
provider:
![]()
consumer:

本文介绍了高性能、轻量级的开源Java RPC框架Dubbo,它具备远程方法调用、智能容错和负载均衡、服务自动注册和发现等核心能力。还讲述了在Ubuntu 16.04系统下Zookeeper的安装启动,给出了Dubbo服务提供者和消费者的代码示例,并展示了执行结果。
5511

被折叠的 条评论
为什么被折叠?



