关于阿里巴巴duboo分布式服务框架的一点记录。

新到的公司用的maven项目,ssm框架。因为是整体架构在设计时用的分布式架构。

所以用到了dubbo这个阿里巴巴的开源架构,具体为什么要用他,我也不是很清楚。以前没用过。

只能通过网上的资料结合项目本身做一些浅显的记录。怕到时候给忘了。


DOBBO是一个分布式的服务架构。

平时,作为maven项目,我们是把项目分为多个项目,而一般情况下,我们这些项目是分开开发的,并在通信方面,对外提供接口,让别的项目调用,

类似于webservice的wsdl,或者直接用soap实现远程调用。

而用dubbo则直接实现了一个类似中转的性质,不用那么麻烦服务器创建和维护wdsl,远程调用,直接在中转服务器中注册两个对象,一个服务者,一个消费者


好处:

1.很透明的远程调用,没有API侵入。在分布式项目上,调用远程接口和本地调用方法一样,只需要在spring上配置一下就好。

2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
3. 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

后两点,开发并不用操作,我也没发现具体应用到哪了。。。


现在讲讲 怎么用。。

服务方,下载zookeeper,解压完后,进步bin目录下,启动双击zkServer.cmd启动注册中心服务。

写一个接口,规定好提供服务的接口方法,并写好实现类。

在spring的配置文件里添加


  1. <!-- 具体的实现bean ,这里写你的实现类-->  
  2.     <bean id="demoService" class="com.unj.dubbotest.provider.DemoServiceImpl" />  
  3.       
  4.     <!-- 提供方应用信息,用于计算依赖关系,这里随便写,没关系 -->  
  5.     <dubbo:application name="xiaxie"  />  
  6.    
  7.     <!-- 使用multicast广播注册中心暴露服务地址   没明白这里要干嘛
  8.     <dubbo:registry address="multicast://224.5.6.7:1234" />-->  
  9.     
  10.     <!-- 使用zookeeper注册中心暴露服务地址 注册中心的地址,必须要有  -->  
  11.     <dubbo:registry address="zookeeper://127.0.0.1:2181" />   
  12.     
  13.     <!-- 用dubbo协议在20880端口暴露服务 -->  
  14.     <dubbo:protocol name="dubbo" port="20880" />  
  15.    
  16.     <!-- 声明需要暴露的服务接口 这里是接口,-->  
  17.     <dubbo:service interface="com.unj.dubbotest.provider.DemoService" ref="demoService" />  
  18.       
  19. </beans>  

实现类的具体实现方法,并不暴露给消费者调用。



消费者,同样要在zookeeper中心注册为消费者。并注册自己需要调用的接口。

在spring配置文件里配置,如果需要调用的接口很多,那么可以用applicationContext-dubbo-***.xml分类。


  1.  <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样就可以了 -->  
  2.     <dubbo:application name="hehe_consumer" />  
  3.   
  4.     <!-- 使用zookeeper注册中心暴露服务地址 -->  
  5.     <dubbo:registry address="zookeeper://127.0.0.1:2181" />  
  6.   
  7.     <!-- 生成远程服务代理,可以像使用本地bean一样使用demoService -->  
  8.     <dubbo:reference id="demoService"  
  9.         interface="com.unj.dubbotest.provider.DemoService" />  
  10.    <!-- 上面的调用 接口方法,只能看到接口,看不到实现方法的具体实现方法,防止API侵入  -->


最简单的dubbo实现方法就可以了。其实,感觉说白了,就是一个注册中心,服务和消费注册,双方更好的调用远程接口方法。不用考虑乱七八糟别的东西了。




你可能感兴趣的:(关于阿里巴巴duboo分布式服务框架的一点记录。)