Dubbo?
Dubbo是资源调度和治理中心的管理工具
服务端:发布服务---注册服务
客户端:连接注册---返回结果---调用服务
官方推荐使用Zookeeper作为Dubbo的注册中心
Zookeeper:
1.可以作为集群管理工具使用。
2.可以集中管理配置文件。
安装zoopeeker:
进入Apache官网,找到zookeeper项目下载http://www.apache.org/index.html#projects-list
导航:project------点击
找到: Getting Started---Download
利用工具吧zookeeper上传到linux系统中
解压:
创建一个目录:
进入conf文件夹中,拷贝zoo_sample.cfg--->zoo.cfg
编辑刚刚复制好的cfg文件
vim zoo.cfg
修改:把数据文件放到之前创建好的data目录中去
进入bin目录中启动zookeeper
启动:./zkServer.sh start
查看状态:./zkServer.sh status
关闭:./zkServer.sh stop
如果遇到启动了 但是查看状态的时候说没启动的时候,吧data里面的pid文件删除 重启ok
自选:1.关闭防火墙(自己的虚拟机,开毛线的防火墙呀)
2.配置防火墙,开启端口 2181
防火墙开放端口
vim /etc/sysconfig/iptables
二选一
到此,注册中心配置文成
发布服务:
工程中需要添加dubbo依赖的jar包,zookeeper以及zookeeper的客户端zkclient
| <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> </dependency> |
spring配置文件:
| 加上dubbo的前缀以及约束 xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd |
|
<!-- 使用dubbo发布服务 --> <dubbo:application name="服务的工程名(别重复)" /> <!-- 表明注册中心是什么 集群:192.168.233.128:2181,192.168.233.128:2182..... --> <dubbo:registry protocol="zookeeper" address="192.168.233.128:2181" /><!-- 用dubbo协议在20880端口暴露服务,默认:20880 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="接口的全限定名[com.xyh.service.TestService]" ref="testServiceImpl[实现类对象]" timeout="600000" /> |
到此,服务已经可以发布,接下来是引用服务
同样的需要引入相关的jar包
|
SpringNVC.XML: xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd |
| pom.xml: <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> </dependency> |
引用服务-----reference
|
<dubbo:application name="工程名"/> <dubbo:registry protocol="zookeeper" address="192.168.233.128:2181"/> <dubbo:reference interface="com.xyh.service.TestService" id="testService"/> |
Controller中就可以直接注入使用
|
@Autowired private TestService testService; |
到此,已经可以使用,现在需要启动工程来测试就ok~~
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd