对与较大的应用程序,采用分布式服务框架有很大的优势。
如今服务设计己经比较成熟。在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 !学习笔记很多不足,可看靠其他信息。
浙公网安备 33010602011771号