赞
踩
1.1 dubbo介绍
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。
1.2主要核心部件
1.3 工作原理
2.1 架构
在dubbo-test中创建了三个modle,分别为service接口层,service实现层以及MVC层,dao层这里省略。
2.2 service层
这里的service层只有写了个简单的接口,后续复杂的同理既可。
2.3 serviceimpl接口层(服务提供者:provider)
主要是实现2.2中的接口,需要在serviceimpl中导入service生成的jar包,可以直接使用maven安装到仓库,然后在pom中直接添加依赖既可。
项目中使用到的jar包和依赖,在本项目中我直接全部使用依赖的时候出现jar包冲突,所有我把一部分jar包和依赖分开了。
- <?xml version="1.0"?>
- <project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>com.bsoft.cn</groupId>
- <artifactId>dubbo-test</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </parent>
- <groupId>com.bsoft.cn</groupId>
- <artifactId>dubbo-serviceimpl</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>war</packaging>
- <name>dubbo-serviceimpl Maven Webapp</name>
- <url>http://maven.apache.org</url>
-
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.bsoft.cn.dubbo</groupId>
- <artifactId>dubbo-service</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- <version>4.3.10.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.apache.curator</groupId>
- <artifactId>curator-framework</artifactId>
- <version>2.8.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.curator</groupId>
- <artifactId>curator-recipes</artifactId>
- <version>2.8.0</version>
- </dependency>
-
- </dependencies>
- <build>
- <finalName>dubbo-serviceimpl</finalName>
- </build>
- </project>
applicationContext.xml配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:task="http://www.springframework.org/schema/task"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.2.xsd
- http://www.springframework.org/schema/task
- http://www.springframework.org/schema/task/spring-task-3.1.xsd
- http://dubbo.apache.org/schema/dubbo
- http://dubbo.apache.org/schema/dubbo/dubbo.xsd"
- default-lazy-init="true">
-
- <!-- 自动扫描 -->
- <context:component-scan base-package="com.bsfot.dubbo.serviceimpl" />
-
- <!--1. 配置别名,目的在后台可以看到这个服务的别名,名字可以任意取 -->
- <dubbo:application name="testDubbo"/>
- <!--2.配置注册中心 -->
- <dubbo:registry address="192.168.20.131:2181" protocol="zookeeper"/>
- <!--
- 3.告诉注册中心我是谁
- interface:接口
- ref:地表的是到底具体发布哪个服务(接口实现类)
- timeout:连接超时时间
- -->
- <dubbo:service interface="com.bsoft.cn.dubbo.service.TestDubboService" ref="dubboServiceImpl" timeout="60000"/>
- <!--4.配置端口
- 消费者要想连接我们,必须通过我们提供的ip和端口
- -->
- <dubbo:protocol name="dubbo" port="12345"/>
-
-
- </beans>
提供者在dubbo图像化界面显示如下:
2.4 MVC层(消费者:consumer)
mvc层也要使用到service接口,所以也要引入service层生成的jar,同样直接引入依赖既可。
代码:
依赖:
- <?xml version="1.0"?>
- <project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>com.bsoft.cn</groupId>
- <artifactId>dubbo-test</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </parent>
- <groupId>com.bsoft.cn</groupId>
- <artifactId>dubbo-web</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>war</packaging>
- <name>dubbo-web Maven Webapp</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>4.3.18.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>com.bsoft.cn.dubbo</groupId>
- <artifactId>dubbo-service</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.curator</groupId>
- <artifactId>curator-framework</artifactId>
- <version>2.8.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.curator</groupId>
- <artifactId>curator-recipes</artifactId>
- <version>2.8.0</version>
- </dependency>
-
- </dependencies>
- <build>
- <finalName>dubbo-web</finalName>
- </build>
- </project>
applicationContext.xml配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:task="http://www.springframework.org/schema/task"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.2.xsd
- http://www.springframework.org/schema/task
- http://www.springframework.org/schema/task/spring-task-3.1.xsd
- http://dubbo.apache.org/schema/dubbo
- http://dubbo.apache.org/schema/dubbo/dubbo.xsd"
- default-lazy-init="true">
-
- <!-- 自动扫描 -->
- <context:component-scan base-package="com.bsoft.cn.dubbo" />
- <!--
- 查找远程服务,找到对应的注册中心
- -->
- <!--1. 配置别名,目的在后台可以看到这个服务的别名,名字可以任意取 -->
- <dubbo:application name="consumer"/>
- <!--2.配置注册中心 -->
- <dubbo:registry address="192.168.20.131:2181" protocol="zookeeper"/>
- <!--3.告诉注册中心我要什么 -->
- <dubbo:reference interface="com.bsoft.cn.dubbo.service.TestDubboService" id="testService"/>
-
- </beans>
消费者在dubbo图像化界面显示如下:
在此次的学习中,遇到最大的问题是jar包的冲突,全部使用依赖引入jar时tomcat会启动异常,所以最后有些jar包是在lib下直接引入的。这个地方坑了好长时间,经验不足,写的不好的地方还请指出相互讨论。
上面的案列已经放到GitHub里面,有需要的可以去下载:源码地址
dubbo-admin下载地址:百度网盘链接:https://pan.baidu.com/s/1vpAhfnsmDgjPNsIMNDTGwg 密码:zm7d
有兴趣的朋友可以关注下本人的微信公众号:“JAVA菜鸟程序猿”
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。