Dubbo是阿里巴巴在2011年开源的分布式服务框架,是SOA服务法治理方案的核心框架,每天为阿里巴巴内部的2000多个服务提供3000000000多次访问量的支持(目前,在阿里巴巴内部使用的是新一代的RPC框架HSF,全称High Speed Framework,也被称为”好舒服”),并在国内被很多大公司广泛应用于各系统中。Dubbo官方曾停止维护Dubbo很长一段时间(虽然目前有重新开始维护,不过还是还有很长的路要走),但是国内也有很多热心的团队在更新和维护它,比如当当在Dubbo的基础上开源了Dubbox等。Dubbo的结构如图
Dubbo 主要提供了三方面的功能:远程接口调用:负载均衡和容错:自动服务注册和发现.我们可以非常容易地通过Dubbo来构建分布式服务。下面我们就以Dubbo官方提供的demo开始
1.准备环境
首先,安装zookeeper。zookeeper使用java程序编写的,运行在java环境上,因此需要安装好java环境,jdk1.7及以上。从官网下载 http://zookeeper.apache.org/ 解压后有bin和conf这两个目录
- bin 是zookeeper的可执行脚本目录,包括zookeeper的服务进程,客户端脚本。其中,.sh是linux环境下的脚本,
.cmd是Windows环境下的脚本。 - conf是配置文件目录,其中,zoo_sample.cfg是样列配置文件,需要将其修改为自己的名称,一般为zoo.cfg
2.开始编写
官方提供的 dubbo-demo
官方的注册中心不是zookeeper我们需要改成zookeeper.
demo的结构图
我们重点来看xml文件
提供方的xml文件的配置
消费放的xml文件配置
需要将注册中该为zookeeper,当然我们本地必须先正常启动zookeeper服务。
如果你的jar包没有正常引入的话,运行项目的时候,就会报dubbo.xsd文件找不到
入口部分,只需要写个ApplicationContext载入这个xml配置文件即可
“`
public class Provider {
public static void main(String[] args) throws Exception {
//Prevent to get IPV6 address,this way only work in debug mode
//But you can pass use -Djava.net.preferIPv4Stack=true,then it work well whether in debug mode or not
System.setProperty("java.net.preferIPv4Stack", "true");
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-demo-provider.xml"});
context.start();
System.in.read(); // press any key to exit
}
修改后的xml文件
提供方的XML文件
消费放的XML文件
我们先启动提供方的实体类
启动提供方
启动服务方
这样就正常启动项目了,这里只是简单的介绍了Dubbo的入门,后面会逐渐深入和研究源码。