文章目录

1. 模块划分设计

模块名

工程名

端口

父工程

nacos-dubbo


服务端

nacos-dubbo-provider

9000

消费端

nacos-dubbo-consumer

8000

公共接口

nacos-dubbo-interface


2. 创建父工程

nacos-dubbo

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<modules>
<module>nacos-dubbo-interface</module>
<module>nacos-dubbo-provider</module>
<module>nacos-dubbo-consumer</module>
</modules>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>

<!--服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</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.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<!--spring-cloud-alibaba 版本控制-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
3. 创建公共接口
package com.cloud.alibaba.dubbo.service;

public interface DubboService {

String hello(String name);
}
4. 服务端
package com.cloud.alibaba.dubbo.service.impl;

import com.cloud.alibaba.dubbo.service.DubboService;

/**
* dubbo 服务端
*/
@org.apache.dubbo.config.annotation.DubboService
public class DubboServiceImpl implements DubboService {

@Override
public String hello(String name) {
return "hello " + name;
}
}
package com.cloud.alibaba.dubbo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {

public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class);
}
}
server:
port: 9000
spring:
application:
name: nacos-dubbo-provider
cloud:
nacos:
discovery:
server-addr: http://localhost:8848
config:
server-addr: http://localhost:8848
file-extension: yaml
# Dubbo服务配置
<dependency>
<groupId>com.gblfy</groupId>
<artifactId>nacos-dubbo-interface</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
5. 客户端
package com.cloud.alibaba.dubbo.controller;

import com.cloud.alibaba.dubbo.service.DubboService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DubboController {

@DubboReference
private DubboService dubboService ;

@GetMapping("/hello")
public String hello (String name) {
return dubboService.hello(name) ;
}
}
package com.cloud.alibaba.dubbo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApplication {

public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class);
}
}
server:
port: 8000
spring:
application:
name: nacos-dubbo-client
cloud:
nacos:
discovery:
server-addr: http://localhost:8848
config:
server-addr: http://localhost:8848
# Dubbo服务配置
<dependency>
<groupId>com.gblfy</groupId>
<artifactId>nacos-dubbo-interface</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
6. nacos

nacos集成dubbo实现远程服务调用_ide

7. 测试

请求地址

http://localhost:8000/hello?name=gblfy
8. 码云开源地址