首先,如果要使用dubbo的话,需要下载一个注册中心,比较常用的是 zookeeper
所以我们首先需要下载并安装 zookeeper
下载地址为
http://mirrors.hust.edu.cn/apache/zookeeper/ 然后点击版本进去下载即可
我下载的是 zookeeper-3.4.11.tar.gz 版本的,这个应该是linux的包,不过可以在Windows下直接解压使用
解压完直接去 conf下面的 zoo_sample.cfg 把它改名为 zoo.cfg
然后再到bin目录下
需要注意的是你已经把jdk配置到环境变量中了,不过一般也会配置吧,执行完看到下面的界面就说明启动成功了
至于zookeeper 的其他操作就请自行百度理解吧,现在可以跑起来就行了
启动了这个之后,就可以进行dubbo的demo实例了
需要建立三个maven工程
dubbo-api 存放接口的工程
dubbo--provider 服务的提供者工程,实现了接口的类和一些dao类
dubbo--coustmer 服务的消费者
首先是建立dubbo-api 工程(jar工程),这个很简单,只有一个接口在里面
package com.dubbo.api;
import java.util.List;
/**
* @author while(true)
* @date 2018年2月9日 下午10:42:20
* @Desction 用于提供对外暴露的服务演示接口
* @version 1.0
*/
public interface DemoService {
List getPermission(Long id);
}
pom文件也是不需要配置什么就可以了
然后是建立 dubbo--provider(war工程)工程 ,需要依赖 dubbo-api工程
下面说一下配置文件
web.xml配置springmvc的一些基本东西,如果这些不知道的话,可以看一下我的另一篇文章
http://blog.csdn.net/zxc_user/article/details/73784798
web.xml
springDispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
1
springDispatcherServlet
/
contextConfigLocation
classpath:spring.xml
org.springframework.web.context.ContextLoaderListener
然后是配置springmvc的文件
springmvc.xml
至于spring.xml文件提供一个空的就行了,或者你有什么配置自己加吧
demoService的实现类
package com.dubbo.provider;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.dubbo.api.DemoService;
/**
* @author while(true)
* @date 2018年2月9日 下午11:26:00
* @Desction 服务的实现类
* @version 1.0
*/
@Service("demoService")
public class DemoServiceImpl implements DemoService{
//模拟的静态数据
private static Map> data;
static {
data = new HashMap<>();
data.put(1l, Arrays.asList("zxc", "ldh", "hzh"));
data.put(2l, Arrays.asList("111", "222", "333"));
data.put(3l, Arrays.asList("aaa", "bbb", "ccc"));
}
@Override
public List getPermission(Long id) {
return data.get(id);
}
}
然后还有一个pom文件,各种依赖和tomcat插件,虽然有点长,还是贴出来吧。
4.0.0
com.demo.dubbo
dubbo--provider
0.0.1-SNAPSHOT
war
4.3.8.RELEASE
4.3.8.RELEASE
3.1.0
2.2
com.demo.dubbo
dubbo-api
0.0.1-SNAPSHOT
org.springframework
spring-context
${spring.version}
org.springframework
spring-web
${springmvc.version}
org.springframework
spring-webmvc
${springmvc.version}
javax.servlet
javax.servlet-api
${servlet.version}
provided
javax.servlet.jsp
jsp-api
${jsp.version}
provided
com.fasterxml.jackson.core
jackson-core
2.8.1
com.fasterxml.jackson.core
jackson-databind
2.8.1
com.fasterxml.jackson.core
jackson-annotations
2.8.1
com.alibaba
dubbo
2.5.3
org.springframework
spring
com.101tec
zkclient
0.10
org.apache.tomcat.maven
tomcat7-maven-plugin
8081
/
然后启动该项目,如果启动成功就说明你配置对了
最后是创建 dubbo--coustmer(war工程),需要依赖 dubbo-api工程
基本上的配置跟 dubbo -- provider 一致
只说一下不同的地方,springmvc.xml
spring.xml
然后是记得tomcat插件的端口要改一下,改为8082端口的
记得扫描包要在springmvc中扫,不要在ioc容器中扫
最后是一个controller使用注册中心里面的service层
package com.dubbo.coustmer;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.dubbo.api.DemoService;
@RestController
@RequestMapping("/demo")
public class DemoController {
@Autowired
private DemoService demoService;
@RequestMapping("/test/{id}")
public List demoTest(@PathVariable("id") Long id) {
return demoService.getPermission(id);
}
}
然后把这个项目也启动一下即可
启动完成之后在浏览器输入
http://localhost:8082/demo/test/2
看到下面的界面就可以了
管理控制台功能
路由规则,动态配置,服务降级
访问控制,权重调整
负载均衡
下载dubbo-admin,可自行根据网上介绍安装。大致做法就是将dubbo-admin中 的某个文件夹内容替换到tomcat的conf中,再运行tomcat即可。但我在实际操作中发现JDK8无法运行,后来找到一个JDK8可以实现的dubbo-admin版本,下载地址:http://www.itmayun.com/it/files/226631678709806/resource/901920001882583/1.html。
成功开启输入用户名密码root后,即可进入控制台首页查看消费者提供者情况:
查看提供者:
查看消费者: