JavaEE项目整合Dubbo

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"/>

 

相关文章

在网络请求时,总会有各种异常情况出现,我们需要提前处理这...
作者:宇曾背景软件技术的发展历史,从单体的应用,逐渐演进...
hello,大家好呀,我是小楼。最近一个技术群有同学at我,问我...
 一个软件开发人员,工作到了一定的年限(一般是3、4年左右...
当一个服务调用另一个远程服务出现错误时的外观Dubbo提供了多...
最近在看阿里开源RPC框架Dubbo的源码,顺带梳理了一下其中用...