目录
开发环境
开始搭建Demo
1. 创建父工程
2. 删除无用src目录
3. 创建Dubbo服务提供者工程dubbo-provider
4. 创建Dubbo接口工程dubbo-client
5. 在父工程引入pom坐标
6. 创建接口DubboDemo
7. dubbo-provider引入dubbo-client
8. 创建DubboDemo的实现类DubboDemoImpl
9. 在实现类上添加注解@DubboService
10. 在resources中创建配置文件application.yml
11. 创建启动类
12. 创建消费者工程dubbo-consumer
13. 引入pom坐标
14. 在resources下创建application.yml
15. 创建controller进行消费
16. 创建启动类ConsumerApplication
17. 启动dubbo-provider和dubbo-consumer,查看nacos
18. 测试访问:localhost:8080/hello
4.0.0
com.sunrd
springboot-dubbo
pom
1.0-SNAPSHOT
dubbo-provider
dubbo-client
org.springframework.boot
spring-boot-starter-parent
2.3.1.RELEASE
org.apache.dubbo
dubbo-spring-boot-starter
2.7.7
org.apache.dubbo
dubbo-registry-nacos
2.7.7
com.alibaba.boot
nacos-config-spring-boot-starter
0.2.7
com.esotericsoftware
kryo
4.0.2
de.javakaffee
kryo-serializers
0.45
package com.sunrd.service;
public interface DubboDemo {
/**
* 测试接口
* @return
*/
String sayHello();
}
com.sunrd
dubbo-client
1.0-SNAPSHOT
package com.sunrd.service.impl;
import com.sunrd.service.DubboDemo;
/**
* @author sunrd
* @description
* @date 2020/7/28
*/
public class DubboDemoImpl implements DubboDemo {
@Override
public String sayHello() {
return "hello, dubbo";
}
}
@DubboService(interfaceClass = DubboDemo.class)
public class DubboDemoImpl implements DubboDemo {
@Override
public String sayHello() {
return "hello, dubbo";
}
}
spring:
application:
name: DUBBO-PROVIDER
dubbo:
protocol:
name: dubbo
serialization: kryo
port: 20980
registry:
address: nacos://192.168.5.3:8848 # 自己的nacos地址
check: false
group: noncore
version: 1.0
protocol: nacos
parameters:
namespace: dev
provider:
version: 1.0
group: noncore
package com.sunrd.service;
import org.apache.dubbo.config.spring.context.annotation.DubboComponentScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author sunrd
* @description
* @date 2020/7/28
*/
@SpringBootApplication
// dubbo服务扫描的包
@DubboComponentScan(basePackages = {
"com.sunrd.service.impl"
})
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
springboot-dubbo
com.sunrd
1.0-SNAPSHOT
4.0.0
dubbo-consumer
com.sunrd
dubbo-client
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-web
spring:
application:
name: DUBBO-CONCUMER
dubbo:
protocol:
name: dubbo
serialization: kryo
port: 20980
registry:
address: nacos://42.194.181.247:8848 # 自己的nacos地址
check: false
group: noncore
version: 1.0
protocol: nacos
parameters:
namespace: dev
consumer:
group: noncore
check: false
version: 1.0
package com.sunrd.controller;
import com.sunrd.service.DubboDemo;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author sunrd
* @description
* @date 2020/7/28
*/
@RestController
public class DubboTestController {
@DubboReference
private DubboDemo dubboDemo;
@RequestMapping("/hello")
public String sayHello(){
return dubboDemo.sayHello();
}
}
package com.sunrd.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author sunrd
* @description
* @date 2020/7/28
*/
@SpringBootApplication
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}