文章目录
1、服务提供者
maven依赖
<dependencies>
<!--Dubbo RPC 远程调用 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
<!-- 配置中 nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!-- 排除ribbon的依赖 -->
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.spring</groupId>
<artifactId>spring-context-support</artifactId>
<version>1.0.11</version>
</dependency>
<dependency>
<groupId>tjw</groupId>
<artifactId>dubbo-common</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
application.yml
server:
# 配置端口
port: 8500
# spring与dubbo的 application.name要一致
spring:
application:
name: dubbo-provider
main:
allow-bean-definition-overriding: true
dubbo:
application:
name: dubbo-provider
scan:
base-packages: com.ds.service
protocol:
name: dubbo
port: -1
registry:
address: nacos://127.0.0.1:8848
# nacos 配置略
service接口及其实现类
public interface UserService {
public String sayHello();
}
--------------------------------------------------
@Component
@DubboService(version = "1.0")
public class UserServiceImpl implements UserService {
public String sayHello() {
return "hello,dubbo";
}
}
启动类
@EnableDubbo
@SpringBootApplication
@EnableDiscoveryClient
@DubboComponentScan
public class ServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class,args);
}
}
2、服务消费者
maven依赖
同服务提供者
application.yml
server:
# 配置端口
port: 9005
# spring与dubbo的 application.name要一致
spring:
application:
name: dubbo-consumer
# 覆盖bean
main:
allow-bean-definition-overriding: true
dubbo:
# cloud:
# subscribed-services: dubbo-provider
application:
name: dubbo-consumer
qos-port: 20281
protocol:
name: dubbo
# -1表示自增端口,从20280开始
port: -1
# 注册到 Spring Cloud 注册中心
registry:
address: nacos://127.0.0.1:8848
controller类
@RestController
public class UserController {
//远程调用
@DubboReference(version = "1.0")
UserService userService;
@RequestMapping("/hello")
public String hello(){
return userService.sayHello();
}
}
3、Dubbo Admin修改注册中心为Nacos
dubbo-admin-server\src\main\resources 下
修改 application.properties
admin.registry.address=nacos://192.168.192.190:8848?group=DEFAULT_GROUP&namespace=public
admin.config-center=nacos://192.168.192.190:8848?group=dubbo
admin.metadata-report.address=nacos://192.168.192.190:8848?group=dubbo
然后输入mvn clean package打包,打包完成后运行jar包
然后查看端口
在浏览器输入localhost:8080
账号密码默认都是root
启动服务提供者,可以看到已经注册到dubbo-admin