Skip to content

nacos group servicecomb app cross

chengyouling edited this page Nov 23, 2023 · 1 revision

Nacos微服务跨Group、Servicecomb微服务跨应用调用

Servicecomb注册中心跨应用调用

  • 服务端设置

服务端开启跨应用调用,在bootstrap.yaml文件中配置开启跨应用调用开关配置,配置如下:

spring:
  cloud:
    servicecomb:
      discovery:
        version: 0.0.1
        allowCrossApp: true
  • 客户端调用开启跨应用配置的服务端

跨应用调用时,需要在请求的url中加上provider所属的应用名称,格式为[appID].[microserviceName]

示例: 假设provider所属应用为basic-application-cross,微服务名称为basic-provider; consumer所属应用为basic-application,微服务名称为basic-consumer,请求url代码如下:

@GetMapping("/sayHello")
public String sayHello(@RequestParam("name") String name) {
	return restTemplate.getForObject("http://basic-application-cross.basic-provider/sayHello?name={1}", String.class, name);
}

Nacos注册中心跨Group调用

相对于Servicecomb引擎实现跨应用调用,Nacos跨Group调用只需要客户端开启跨Group调用,并配置服务端的服务名和组名集合关系即可实现对其他组服务的调用,具体配置如下:

  • 开启跨Group调用开关
spring:
  cloud:
    servicecomb:
      cross-group:
        enabled: true
  • 配置服务端的服务名和组名集合
spring:
  cloud:
    servicecomb:
      cross-group:
        service-group-mappings:
          price: DEFAULT_GROUP
          order: CROSS_GROUP

请求url还是跟Nacos的Group组内调用一样,无需调整。

注意事项

Nacos跨Group调用版本要求:1.11.3-2021.0.x/1.11.3-2022.0.x及以上版本。

Clone this wiki locally