1、使用dubbo需要先安装zookeeper,使用zookeeper作为dubbo的注册中心。
2、搭建的项目,一共有五个项目,使用maven来管理该项目信息。
3、搭建父工程,导入相应的jar包,导入ssm的jar包。
4、搭建pojo项目,然后根据数据库字段设计相应的实体信息。然后maven install到本地仓库。
5、搭建dubbo-provider-service生产者的接口项目,在pom.xml文件里面加入pojo的jar包。里面只负责写接口,不需要导入其他包。然后maven install到本地仓库。
5、搭建dubbo-provider-service-impl生产者的提供具体服务的项目,需要继承dubbo-provider-service里面的接口,然后实现相应的接口,该项目和我们常规项目差不多。需要导入ssm项目的jar包,然后导入dubbo-provider-service的jar包。
<dependency> <groupId>com.yu</groupId> <artifactId>dubbo-provider-service</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
<!-- dubbo的jar -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<artifactId>spring</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
<!-- 访问zookeeper的客户端jar -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
5.1:访问数据库,需要添加数据库的信息,加入spring的配置文件和dubbo的配置文件,spring的配置文件用来扫描注解信息,事务控制等作用。dubbo的配置文件用来配置duboo的基本信息。如果使用dubbo的启动类来启动项目,必须把dubbo的配置文件放在类路径下/META-INF/spring/*.xml下。为了让spring的配置文件一起使用,也可以把该文件放在此目录下,或者在dubbo的配置文件中导入该配置文件。
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:context="http://www.springframework.org/schema/context" 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://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 给dubbo的提供者命名 在monitor或管理工具中区别是哪个provider--> <dubbo:application name="menuProvider"/> <!-- 配置zookeeper注册中心 address:注册中心的ip和端口 protocol使用哪种注册中心--> <dubbo:registry address="129.204.6.53:2181,129.204.6.53:2182,129.204.6.53:2183" protocol="zookeeper"/> <!-- 配置协议与端口 --> <dubbo:protocol name="dubbo" port="20881"/> <!-- 注册功能 --> <dubbo:service interface="com.yu.provider.service.ProductService" ref="productServiceImpl"></dubbo:service> <bean id="productServiceImpl" class="com.yu.provider.service.impl.ProductServiceImpl"/> <!-- 引入spring的配置信息 --> <import resource="../../applicationContext-spring.xml"/> </beans>5.2、写启动类来启动dubbo-provider-service-impl项目。
public class ProviderStart {
public static void main(String[] args) { Main.main(args); } }
6、admin界面管理,获取注册中心的消费者和生产者,通过web界面的方式呈现出来。
6.1、dubbo-admin-2.5.3.war上传到服务器tomcat中,启动tomcat解压这个这个war包。然后删除对应的war包。
6.2、dubbo-admin-2.5.3/WEB-INF/dubbo.properties,修改第一行为zookeeper的ip和端口,第二行和第三行为管理界面的用户名和密码
6.3、启动tomcat,然后访问dubbo系统。
7、dubbo-consumer的创建,消费者一般是web项目。消费者负责调用生产者提供的服务,不需要访问数据库,只需要把数据展示给页面就可以啦!
7.1、搭建好项目之后,导入项目的jar包。除了spring的之后还有dubbo的包,pojo的包,生产者的jar包,zookeeper的包。
7.2、项目启动之后,为了能访问到dubbo里面的配置信息,需要在web.xml中修改<init-value>applicationContext-*.xml,然后spring的配置文件和dubbo的配置文件相应以-*.xml结尾。
7.3、dubbo的配置文件:applicationContext-dubbo.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:context="http://www.springframework.org/schema/context" 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://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 给dubbo的提供者命名 --> <dubbo:application name="menuConsumer"/> <!-- 配置zookeeper注册中心 --> <dubbo:registry address="129.204.6.53:2181,129.204.6.53:2182,129.204.6.53:2183" protocol="zookeeper"/> <!-- 配置注解扫描 扫描的是dubbo提供的注解 @Reference--> <dubbo:annotation package="com.yu.consumer.service.impl"/> </beans>7.4、不需要开发mapper,只需要开发service,然后调用生产者提供的服务,然后在controller里面渲染对应的数据。
@Service public class ProductConsumerServiceImpl implements ProductConsumerService{
/** * 服务提供者 @Reference dubbo提供的注解 */ @Reference private ProductService productService; @Override public ProductModel findById(String pid) { return productService.findById(pid); }
}
7.5、另外还需要spring的配置文件用来扫描注解@service,需要springMVC的配置文件。然后启动项目。启动项目之前先启动生产者,在admin界面查询服务信息,然后在启动消费者。注意:配置注解扫描的时候,service扫描service层,具体到每一层,不要扫描的包的外面,dubbo的扫描和spring的扫码不兼容,会报错。