此文章是本人从项目中copy出来的,不足之处请各位前辈指出...
注释: 基于zookeeper的dubbo整合,可以选择从官网下载zookeeper, 如果在单机模式下启动zookeeper的话,直接找到bin目录下的zkServer.cmd就可以直接在本地启动了!
对于监控中心dubbo-admin 的使用更加简单,直接在GitHub地址下载dubbo-admin 的项目,然后使用命令把dubbo-admin 打成war包放到tomcat/webapps 目录下, tomcat启动会自动在webapps目录下生成dubbo-admin文件夹,当然配置账号和密码可以在dubbo-admin里的WEB-INF下的dubbo.properties里面修改的,这时候先启动zookeeper,再启动tomcat就行了,访问ip+本地配置tomcat的端口+生成dubbo-admin的文件夹的名称就登录就可以了
zookeeper官网地址: https://zookeeper.apache.org/
dubbo-admin GitHub地址: https://github.com/apache/incubator-dubbo
1.配置接口提供者的pom文件依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency><!-- dubbo依赖-->
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency><dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency><!-- maven依赖 -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
</dependency>
2.配置properties 或者 yml文件
spring.dubbo.application.name=provider //命名
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 //注册zookeeper的ip和端口
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20881 //dubbo端口号
spring.dubbo.scan=org.medical //扫描包,多个以逗号分隔
spring.dubbo.provider.retries=0 //超时连接,设置重启次数1次
spring.dubbo.service.invoke.timeout=60000 //执行超时时间
3.在serviceImpl上命名service注解,目的是把service接口注册到zookeeper上,版本信息,超时时间等属性
@com.alibaba.dubbo.config.annotation.Service(interfaceName="org.common.service.Service",version = "1.0.0", timeout = 60000)
注:interfaceName是service接口的全路径,version是版本信息,要和客户端的对应,timeout是超时时间
这样service接口便可以访问了,当然还可以配置swagger.ui去测试这些接口
4.配置客户端的pom文件依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency><dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
</dependency><dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
5.配置properties 或者 yml文件
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=cn.technology.apt.controller,cn.technology.apt.interceptor
spring.dubbo.consumer.timeout=120000
spring.dubbo.consumer.retries=1
6.在controller里注入service接口的时候要声明dubbo版本
@Reference(version="1.0.0")
private Service ServiceImpl
这样便可以调用service接口了!