对与较大的应用程序,采用分布式服务框架有很大的优势。

如今服务设计己经比较成熟。在springmvc 中引入dubbo十分的方便,使用zookeeper管理服务(主要是其他的不会)。

1.基于maven引入dubbo pom.xml文件添加如下配置即可(版本不同可另行参考资料)

<!--引入dubbo -->
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.4.10</version> <exclusions> <exclusion> <artifactId>spring</artifactId> <groupId>org.springframework</groupId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> </exclusions> </dependency>

 


<!-- 引入zookeeper--> 
<dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.7</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

 

2.在dubbo配置文件中配置服务,需要的spring配置中加入dubbo的配置(注册服务)

 <import resource="dubbo-provider.xml" /> 单独使用一个配置文件方便管理编写。

具体注册方法配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"
    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="dubbo_name" />
    <dubbo:registry id="zookeeper_service" protocol="zookeeper" address="zookeeper_url" />
    <dubbo:protocol name="dubbo" port="dubbo_service_port" />

    <dubbo:service interface="com.test.ITestService" ref="iTestService"
        registry="zookeeper_service" />

    <dubbo:service interface="com.test.IService2Client" ref="iService2ClientDubbo" registry="zookeeper_service">
        <dubbo:method name="getPase" timeout="3000" />
        <dubbo:method name="AuthUser" timeout="7000" />
    </dubbo:service>
    
</beans>

dubbo:registry :指定注册服务容器,可以有多个注册服务容器。

  id:标识,protocol:协议,address:服务地址(可以多个,用(,)分割)

dubbo:protocol:指定服务名称和端口,在注册容器中端口要唯一,名称随意

  name:名称 ,port:端口

<dubbo:service interface="com.test.IService2Client{接口完整名称}" ref="iService2ClientDubbo{实现been}" registry="zookeeper_service{注册到那个容器}">
        <dubbo:method name="getPase{方法名}" timeout="3000{超时时间}" />
        <dubbo:method name="AuthUser" timeout="7000" />
    </dubbo:service>

3.dubbo引入服务(使用容器注册的接口)

具体注册方法配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
       http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <dubbo:reference id="iTestlService" interface="com.test.ITestlService"
        timeout="60000" retries="0" registry="zookeeper_service" check="false" />

</beans>

 

 

 <dubbo:reference id="iTestlService {been的id使用时可以直接获取@Autoweited}" interface="com.test.ITestlService{注册的接口}"
        timeout="60000" retries="0" registry="zookeeper_service{服务提供者}" check="false{是否检查服务}" />简单

over !学习笔记很多不足,可看靠其他信息。