微服务引擎MSE

如何在MSE上为Dubbo应用构建服务注册中心

2025-05-28 08:22:12
事前准备

      本文的目的是关于Dubbo 应用接入MSE注册配置中心。首先是工程准备,一般情况下是两个Spring Boot 应用和一个公共的接口模块 。

模块说明:

(1)    common-api ,公共接口模块(接口),供服务消费者和服务提供者调用。

(2)    dubbo-provider服务提供者模块(接口实现类),依赖common-api模块

(3)    dubbo-consumer服务消费者模块(controller),依赖common-apii模块

消费者和提供者通过公共接口模块进行rpc远程调用。

 

Dubbo主要相关的依赖项和版本如下所示:

<!--dubbo相关-->
  <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>2.7.15</version>
  </dependency>
 
  <dependency>
      <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-registry-nacos</artifactId>
        <version>2.7.15</version>
  </dependency>

在接入之前需要有一个MSE Nacos实例,并获得期访问信息。

公共模块

公共接口模块里面只有一个接口,没有配置文件,打jar包

public   interface InfoService{
      String getInfo();
  }

Provider模块

application.yml配置文件

server:
    port: 22020
  spring:
    application:
      name: dubbo-provider
 
  dubbo:
    registry:
      address: nacos://
访问地址?username=nacos&password=密码
    application:
      name: dubbo-provider
    protocol:
      name: dubbo
      port: PORT
    scan:
      base-packages:   com.ctg.mse.dubbo.pro.service
    provider:
      timeout: 30000

 

接口实现类,该类实现了公共接口模块创建的接口.注意包路径必须包含在配置文件的sacn.base-package路径中。

package   com.ctg.mse.dubbo.pro.service;
 
  import com.ctg.mse.common.InfoService;
  import org.apache.dubbo.config.annotation.DubboService;
  import org.springframework.stereotype.Component;
 
  @Component
  @DubboService
  public class InfoServiceImpl implements InfoService {
      @Override
      public String getInfo() {
          return "Hello , dubbo   provider method!";
      }
  }

 

Provider启动类

@EnableDubbo
  @SpringBootApplication
  public class DubboProviderApplication {
      public static void main(String[]   args) {
            SpringApplication.run(DubboProviderApplication.class, args);
      }
  }

 

 

Consumer模块

application.yml配置文件:

server:
    port: 21060
  spring:
    application:
      name: dubbo-consumer
 
  dubbo:
    registry:
      address: nacos://Nacos
访问地址?username=用户名&password=密码
    application:
      name: dubbo-consumer
    consumer:
      timeout: 30000

 

 

controller,调用公共接口模块创建的接口

@RestController
  public class InfoController {
 
      @DubboReference(check = false)
      private InfoService infoService;
 
      @GetMapping("/getInfo")
      public String getInfo() {
          return infoService.getInfo();
      }
  }

 

Consumer启动类

@EnableDubbo
  @SpringBootApplication
  public class DubboConsumerApplication {
      public static void main(String[]   args) {
            SpringApplication.run(DubboConsumerApplication.class, args);
      }
  }

 

服务调用测试

打MSE 开Nacos控制台页面查看注册中心中的服务,查看服务注册情况。

启动服务提供者和服务消费者,调用服务消费者的getInfo接口,服务提供者会返回结果。

至此,dubbo融合MSE Nacos作为注册中心成功。


yda7s1i2y78M