以下dubbo架构图出自官网 : http://dubbo.io/
本次应用基于dubbox 来自于当当的扩展,dubbox详细资料请转至: https://github.com/hutai123/dubbox
项目中的调用方式如下 :
上图中的kyro是指传输的序列化方式,在文章 “在Dubbo中使用高效的Java序列化(Kryo和FST)” 详细描述了可用的各种序列化方式并对几种方式做了详细的比对。最后采用了文中的kyro
服务端xml :
<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-2.5.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="ylpw_cts_provider_modules" owner="programmer" organization="dubbox"/>
<!-- 指定zookeeper注册中心 -->
<dubbo:registry protocol="zookeeper" address="192.168.1.4:2181"/>
<!--指定序列化方式 -->
<dubbo:protocol name="dubbo" serialization="kryo" port="-1"
optimizer="cn.com.ylpw.cts.api.SerializationOptimizerImpl"/>
<dubbo:provider timeout="6000" />
<!-- 报名服务 -->
<bean id="applySignServiceApiImpl" class="cn.com.ylpw.cts.provider.orders.ApplySignServiceApiImpl" />
<dubbo:service interface="cn.com.ylpw.cts.api.orders.ApplySignServiceApi" ref="applySignServiceApiImpl" protocol="dubbo"/>
<!-- 个人中心服务 -->
<bean id="userServiceApiImpl" class="cn.com.ylpw.cts.provider.user.UserServiceApiImpl" />
<dubbo:service interface="cn.com.ylpw.cts.api.user.UserSignServiceApi"
ref="userServiceApiImpl" protocol="dubbo"/>
</beans>
消费端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-2.5.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- http://dubbo.io/ -->
<dubbo:annotation />
<dubbo:consumer check="false" timeout="2000" loadbalance="leastactive" />
<dubbo:application name="web-consumer" owner="programmer" organization="dubbox"/>
<dubbo:registry address="192.168.1.4:2181" protocol="zookeeper" />
</beans>
消费端应用代码 :
@Controller("ApplyController")
public class ApplyController extends BasicController {
@Reference
private ApplyServiceApi applyServiceApi;
@RequestMapping("/test-{msid}.html")
public String apply(){
.......
applyServiceApi.apply();
.........
}
}
后来考虑很多新项目已逐渐抛弃xml 配置使用 annotation , 请参见“使用JavaConfig方式配置dubbox” 一文
未完待续