dubbo分布式服务框架

来源:互联网 发布:手机淘宝收货地址在哪 编辑:程序博客网 时间:2024/04/27 20:23

       跨项目的时候,需要使用其他项目的方法而又不能导入其他项目的时候,用到的远程服务调用的分布式框架——dubbo。

       *以下例子是在只使用一个服务器,不考虑集群,也就是调用的项目的地址都在一个服务器的情况下

       Dubbo是一个阿里开发的分布式服务框架。说白了就是个远程服务调用的分布式框架,用的时候只是暴露接口供其他人使用(不暴露自己的项目)。

       *在maven项目下使用ssm整合框架的时候,导入dubbo的jar包的时候,会依赖传递的导入spring的jar包,因为spring包已经在之前用spring框架的时候被导入了,这个时候需要去掉依赖传递。

( 

<exclusions>

<exclusion>

<groupId>org.springframework</groupId>

<artifactId>spring</artifactId>

</exclusion>

</exclusion>

    使用dubbo需要一个服务的提供者和服务的消费者,服务提供者需要提供一个接口,消费者需要使用一个接口,(将该接口独立出来放在一个项目中,随后导入提供者与消费者的项目之中去,不携带任何的实现类,到时候只需要将这个接口项目暴露给消费者就好)。dubbo需要配置文件,在将dubbo的配置文件导入到spring框架的的配置文件中(<import resource="配置文件的路径"/>) 

dubbo的配置文件的文件头为

<?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

">

</beans>

    1.服务提供者的配置文件

<dubbo:application name="任意"/>    ------为该服务起一个名字

<dubbo:registry  address="N/A"></dubbo:registry>

<dubbo:protocol port="20881"></dubbo:protocol> ------暴露端口号,默认20881

<dubbo:service interface="需要向外提供的服务的接口的完全限定名" ref="接口的实现类"></dubbo:service> ------ref里面的实现类必须是在IOC容器里的类,IOC容器里面的类都有一个注解,ref的值就是这个注解的名字。例如:@Resource("XXService")

那么ref的值就为XXService

   2.服务的消费者(使用者)的配置文件

  <dubbo:application name="任意"/>    ------为该服务起一个名字

  <dubbo:registry  address="N/A"></dubbo:registry>

 <dubbo:protocol port="20881"></dubbo:protocol> ------暴露端口号,默认20881

<dubbo:reference interface="需要向外提供的服务的接口的完全限定名" id="消费者的ref值" url="dubbo://127.0.0.1:20881(服务提供者的地址)"></dubbo:reference>

    ***这里的url在搭建集群的时候会改变,要解决这个问题,就要用到zookeeper注册。


原创粉丝点击