如今很多项目规模逐步增加,同时也需要减轻服务器的压力,提高性能,很多项目都使用了分布式架构,实现分布式架构的方式有很多,这里就简要介绍一下使用Dubbo框架实现分布式,该框架是由阿里开发的,目前应用在很多项目中,既然是分布式,那就有主从或提供者消费者的概念...,下面就简要介绍一下其使用步骤;
一,引入dubbo相关的jar依赖;
使用dubbo框架,首先得引入对应的jar包依赖,推荐使用高版本,我这里使用2.5.3版本;
<!-- start: dubbo 相关依赖jar -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
</dependency>
<!-- end: dubbo 相关依赖jar -->
二,dubbo的provider和consumer端的建立;
dubbo, provider端简要建立步骤:
1,引入dubbo相关jar依赖;
2,相关model建立,这里须同customer端;
3,相关接口service建立,这里须同customer端,
有些把2,3两步抽离出来作为一个公共项目,以jar包提供其它项目使用;
4,相关接口的实现,完成具体的业务功能;
5,建立dubbo的配置XML,参考如下,并在spring配置文件中导入或在web.xml使用;
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="productServiceProvider" />
<!-- 如果使用广播注册中心暴露服务地址则启用 -->
<!--
<dubbo:registry protocol="zookeeper" check="false"
address="127.0.0.1:6181,127.0.0.1:6182,127.0.0.1:6183"/>
-->
<dubbo:registry address="N/A" />
<!-- 用dubbo协议在5018端口暴露服务 -->
<dubbo:protocol name="dubbo" port="5018" />
<!-- 声明需要对外部暴露的服务接口 -->
<dubbo:service id="outProductService" interface="com.pro01.service.ProductService" ref="productService"/>
<!-- 实现服务Bean -->
<bean id="productService" class="com.pro01.service.impl.ProductServiceImpl"/>
</beans>
dubbo, consumer消费端简要建立步骤:
1,引入dubbo相关jar依赖;
2,相关model建立,这里须同provider端;
3,相关接口service建立,这里须同provider端,
有些把2,3两步抽离出来作为一个公共项目,以jar包提供其它项目使用;
4,建立dubbo的配置XML,参考如下,并在spring配置文件中导入或在web.xml使用;
5,以service形式在其它的service的实现类或controller中使用;
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="dubboServiceConsumer" />
<!-- 如果使用zookeeper注册中心暴露服务地址则启用 -->
<!--
<dubbo:registry protocol="zookeeper" check="false"
address="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"/>
-->
<dubbo:registry address="N/A" />
<!-- 声明需要跟Provider端对外暴露的服务接口相同 -->
<dubbo:reference id="consumerService" interface="com.pro01.service.ProductService"
url="dubbo://127.0.0.1:5018/com.pro01.service.ProductService"/>
</beans>
三,dubbo相关的项目启动;
首先启动provider服务端,其次在启用consumer消费端;如果使用相关的服务注册中心,那就无所谓了;
好了,大致就这些,难免可能遗留或不妥之处,欢迎拍砖...