dubbo-provider
1, 创建spring-boot项目
2,不需要勾选额外的starter
3 ,按照1,2步骤依次创建module子目录
demo-test-dubbo的pom依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.myf.test</groupId>
<artifactId>demo-test-dubbo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>demo-test-dubbo</name>
<modules>
<module>demo-test-dubbo-provider</module>
<module>demo-test-dubbo-service-face</module>
<module>demo-test-dubbo-service-impl</module>
</modules>
<dependencies>
<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.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.2.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
demo-test-dubbo-provider的pom依赖
<dependencies>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-zookeeper</artifactId>
<version>3.2.4</version>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.curator</groupId>
<artifactId>curator-x-discovery</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
</exclusion>
</exclusions>
// 把自带的curator版本排除掉不然会导致Session 0x0 for server 10.1.21.244/<unresolved>:2181, unexpected error, closing socket connection and attempting reconnect 这个错误.网上说是jdk版本引起的
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-x-discovery</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>com.oppo.myf</groupId>
<artifactId>demo-test-dubbo-service-impl</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
//引入这个依赖springBoot启动的时候才会编译到target目录
</dependencies>
新增dubbo配置并创建一个测试的service及其实现类
dubbo.properties
dubbo.application.name=demo-user-provider
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.registry.address=zookeeper://127.0.0.1:2181
启动类代码
@SpringBootApplication(scanBasePackages = "com.myf.test.demo.test.dubbo")
@EnableDubbo(scanBasePackages = "com.myf.test.demo.test.dubbo.service.impl")
public class DemoTestDubboProviderApplication {
public static void main(String[] args) {
SpringApplication.run(DemoTestDubboProviderApplication.class, args);
}
}
@DubboService
public class DemoDubboServiceImpl implements DemoDubboService {
@Override
public String testDubbo() {
return "Hello 小羊";
}
}
4,启动zk
5,启动dubbo-provider
6,在zk客户端查看dubbo接口提供者
dubbo-cousumer
1,再创一个dubbo消费者的project
@SpringBootApplication(scanBasePackages = "com.myf.test.demo.dubbo")
@EnableDubbo
public class DemoDubboConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(DemoDubboConsumerApplication.class, args);
}
}
@RestController
@RequestMapping("/api/demo/dubbo")
public class DemoTestController {
@DubboReference
DemoDubboService demoDubboService;
@RequestMapping("/dubbo-test")
public Object testUser() {
return demoDubboService.getDemoName();
}
}
因为我这个DemoUserService是在另一个demo-dubbo项目下面,没有maven远程仓库可以推送,所以我把这个service生成了一个jar包放在目录下的lib文件夹下面,然后在pom里面加一个依赖就能引入这个service了
<dependencies>
<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-web</artifactId>
</dependency>
<dependency>
<groupId>com.myf.test</groupId>
<artifactId>demo-dubbo-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/demo-dubbo-service-0.0.1-SNAPSHOT.jar</systemPath>
</dependency>
</dependencies>
demo-dubbo-consumer的pom文件
<dependencies>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-zookeeper</artifactId>
<version>3.2.4</version>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.curator</groupId>
<artifactId>curator-x-discovery</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-x-discovery</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>com.myf.test</groupId>
<artifactId>demo-dubbo-controller</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
2,启动dubbo-consumer
3,访问接口
这就是简单的spring boot 整合dubbo的全部内容了