1. Dubbo框架的使用
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案及SOA服务治理方案
1.1 在远程Linux中安装zookeeper
zookeeper是一个分布式应用程序协调服务组件,在Dubbo中主要负责数据发布与订阅
- 安装JDK环境
- 上传zookeeper.tar.gz文件
- 解压文件
- 在解压的目录中新建data目录(存放数据)
- 复制解压目录中的conf目录下的zoo_sample.cfg为zoo.cfg
- 修改zoo.cfg中的dataDir属性值修改为创建的data目录的绝对路径
- 进入解压目录的bin目录下启动zookeeper(./zkServer.sh start)
- 放行zookeeper的端口(默认端口号为2181)
- 查看zookeeper状态(./zkServer.sh status Mode:standalone表示单机版)
1.2 配置式开发
- provider
1.pom.xml中配置dubbo依赖(dubbo依赖及zookeeper的客户端依赖)
2.spring配置文件创建(该文件必须放在resources/META-INF/spring/下)<!--dubbo依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.7</version> </dependency> <!--zookeeper客户端依赖--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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-provider"></dubbo:application> <!--配置注册中心地址及端口--> <dubbo:registry address="zookeeper://192.168.76.20:2181"></dubbo:registry> <!--配置协议及端口--> <dubbo:protocol name="dubbo" port="20880"></dubbo:protocol> <!--配置注册服务接口--> <dubbo:service interface="com.bjsxt.service.IStarService" ref="starServiceImpl"></dubbo:service> <!--配置注册服务接口的实现类bean--> <bean id="starServiceImpl" class="com.bjsxt.service.impl.StarServiceImpl"></bean> </beans>
- consumer
1.pom.xml中配置dubbo依赖(dubbo依赖及zookeeper的客户端依赖)
2.复制provider的实体类及服务接口<!--dubbo依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.7</version> </dependency> <!--zookeeper客户端依赖--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency>
3.spring配置文件创建(该文件放在/resources)
4.远程调用服务<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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-consumer"></dubbo:application> <!--配置注册中心地址及端口--> <dubbo:registry address="zookeeper://192.168.54.20:2181"></dubbo:registry> <!--配置注册服务接口--> <dubbo:reference interface="cn.khue.service.StarService" id="starService"></dubbo:reference> </beans>
//获取配置文件 ApplicationContext ac=new ClassPathXmlApplicationContext("dubbo-consumer.xml"); //获取远程服务bean StarService starService=ac.getBean("starService",StarService.class); //调用远程服务 startService.showAllStar();
1.3 注解式开发
-
provider
1.pom.xml中配置dubbo依赖(dubbo依赖及zookeeper的客户端依赖)<!--dubbo依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.7</version> </dependency> <!--zookeeper客户端依赖--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency>
2.spring配置文件创建(该文件必须放在resources/META-INF/spring/下)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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-provider"></dubbo:application> <!--配置注册中心地址及端口--> <dubbo:registry address="zookeeper://192.168.76.20:2181"></dubbo:registry> <!--配置协议及端口--> <dubbo:protocol name="dubbo" port="20880"></dubbo:protocol> <!--配置注册服务接口的实现类的注解扫描--> <dubbo:annotation package="com.bjsxt.service.impl"></dubbo:annotation> </beans>
-
consumer
1.pom.xml中配置dubbo依赖(dubbo依赖及zookeeper的客户端依赖)<!--dubbo依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.7</version> </dependency> <!--zookeeper客户端依赖--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency>
2.复制provider的实体类及服务接口
3.创建自己的服务接口及其实现类@Service public class StarServiceImpl implements ConsumerStarService { @Reference private StarService starService; @Override public List<Star> showAllStar() { return starService.showAllStar(); } }
4.spring配置文件创建(该文件放在/resources)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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-consumer"></dubbo:application> <!--配置注册中心地址及端口--> <dubbo:registry address="zookeeper://192.168.54.20:2181"></dubbo:registry> <!--配置注册服务接口的实现类的注解扫描--> <dubbo:annotation package="com.bjsxt.service.impl"></dubbo:annotation> <!--配置注册服务接口的实现类bean--> <bean id="starConsumerServiceImpl" class="com.bjsxt.service.impl.StarConsumerServiceImpl"></bean> </beans>
5.远程调用服务
//获取配置文件 ApplicationContext ac=new ClassPathXmlApplicationContext("dubbo-consumer.xml"); //获取远程服务bean ConsumerStarService starService=ac.getBean("starService",ConsumerStarService.class); //调用远程服务 startService.showAllStar();
2. Registry可视化管理插件的安装步骤
- 复制dubbo-admin-2.5.10.war到tomcat的webapps目录下
- 启动tomcat(tomgcat将解压war包),然后再关闭
- 修改解压后的war包目录下的WEB-INF/dubbo.properties文件,将dubbo.registry.address修改为自己的zookeeper的地址及端口号(也可修改用户及密码信息)
- 再次启动tomcat,访问解压后的war包名即可
3. Assembly打包插件的安装步骤
- 在provider的maven项目的pom.xml文件中添加assembly插件
- 在provider的项目根目录下创建assembly目录
- 解压asemmbly目录中的压缩包,将bin及conf目录拷贝至新建的文件夹中,并将conf中的dubbo.properties文件清空
- 在assembly目录下新建assembly.xml,并添加如下内容
- 执行maven的packaging命令即可在target目录下生成对应的包文件