dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。可以取代WebServcie。
1、搭建zookeeper(注册中心)
单机版的zookeeper使用zookeeper的默认配置即可,记得关闭防火墙。
1、上传zookeeper压缩包到linux。
2、修改权限:chmod 777 zookeeper-3.4.5.tar.gz
3、解压:tar -zxvf zookeeper-3.4.5.tar.gz
4、添加配置文件:
进入zookeeper根目录
cd conf
cp zoo_sample.cfg zoo.cfg
5、启动:
进入zookeeper根目录
cd bin
./zkServer.sh start
6、查看状态:./zkServer.sh status
出现如下内容即ok
[root@localhost bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/mao/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: standalone
2、配置dubbo服务提供方
src/main/resources/config/dubbo-provider.xml
<!-- 搭建dubbo的服务提供方 -->
<!-- 1、dubbo服务方提供方名称 -->
<dubbo:application name="babasport-service-product" />
<!-- 2、连接zookeeper注册中心 (如果zookeeper是多台机器用,间隔) -->
<dubbo:registry address="192.168.56.101:2181" protocol="zookeeper" />
<!-- 3、暴露 IP PORT 接口 http://ip:port 默认端口号:20880 -->
<dubbo:protocol port="20880" name="dubbo" host="127.0.0.1" />
<!-- 4、暴露 接口 ref="testTbService" 使用注解注入时,需要在实现类的Service注解里面起个名字-->
<dubbo:service interface="cn.itcast.core.service.TestTbService"
ref="testTbService" />
@Service("testTbService")
@Transactional
public class TestTbServiceImpl implements TestTbService
3、配置dubbo服务消费方
src/main/resources/dubbo-consumer.xml
<!-- 搭建dubbo的服务消费方 -->
<!-- 1、dubbo消费方提供方名称 -->
<dubbo:application name="babasport-console" />
<!-- 2、连接zookeeper注册中心 (如果zookeeper是多台机器用,间隔) -->
<dubbo:registry address="192.168.56.101:2181" protocol="zookeeper" />
<!-- 3、调用接口 -->
<dubbo:reference interface="cn.itcast.core.service.TestTbService" id="testTbService" />
并且在Springmvc.xml中导入dubbo-consumer.xml
<!-- 导入dubbo的相关配置 -->
<import resource="dubbo-consumer.xml"/>
4、将接口参数序列化
public class TestTb implements Serializable {
private static final long serialVersionUID = 1L;
......
5、dubbo配置优化
设置超时时间src/main/resources/dubbo-consumer.xml
<!-- 局部设置 -->
<dubbo:reference interface="cn.itcast.core.service.TestTbService" id="testTbService" timeout="600000" />
<!-- 全局设置 -->
<dubbo:consumer timeout="600000" />
6、消费方直接连服务方
src/main/resources/config/dubbo-provider.xml
<!-- 2、连接zookeeper注册中心 (如果zookeeper是多台机器用,间隔) -->
<!-- <dubbo:registry address="192.168.56.101:2181" protocol="zookeeper" /> -->
<!-- 不使用注册中心 -->
<dubbo:registry address="N/A"/>
src/main/resources/dubbo-consumer.xml
<!-- 不使用注册中心 -->
<dubbo:registry address="N/A"/>
<!-- 3、调用接口 -->
<dubbo:reference interface="cn.itcast.core.service.TestTbService"
id="testTbService" timeout="600000" url="dubbo://127.0.0.1:20880" />
7、消费方不去检查服务方
src/main/resources/dubbo-consumer.xml
<!-- 不使用注册中心 -->
<dubbo:registry address="N/A" />
<!-- 3、调用接口 -->
<dubbo:reference interface="cn.itcast.core.service.TestTbService"
id="testTbService" timeout="600000" url="dubbo://127.0.0.1:20880" />
<!-- 全局设置超时时间 -->
<dubbo:consumer timeout="600000" check="false"/>