2026-01-14 14:49:20.324 WARN 292120 --- [ctor-http-nio-2] o.s.c.l.core.RoundRobinLoadBalancer : No servers available for service: order-service

是在开发网关的灰度发布出现的,

因为之前一直使用这套配置文件都是没有问题,所以我开始去找适合的依赖,通过sca官网看到了

适合的版本推荐

image

image

 

image

 版本依赖

image

 如果你是2.6.13,之后的版本,可以保持sca版本和springcloud版本不变,改变springboot版本

如下

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version>
        <relativePath/>
    </parent>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <skipTests>true</skipTests>
        <springcloud-version>2021.0.6</springcloud-version>
        <springcloudalibaba-version>2021.0.5.0</springcloudalibaba-version>
    </properties>

  调用结果

image

这样就不会提示服务找不到的那问题了

文档地址  https://sca.aliyun.com/docs/2021/overview/version-explain/?spm=5176.29160081.0.0.74805c720dMw6t

 下面给出网关依赖和配置,提供给大家

pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.gate</groupId>
    <artifactId>gateway-service-three</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version>
        <relativePath/>
    </parent>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <skipTests>true</skipTests>
        <springcloud-version>2021.0.6</springcloud-version>
        <springcloudalibaba-version>2021.0.5.0</springcloudalibaba-version>
    </properties>

    <dependencyManagement>

        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${springcloud-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${springcloudalibaba-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-gateway</artifactId>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-loadbalancer</artifactId>
            </dependency>

        </dependencies>


</project>

  配置文件

server.port=10010

# Nacos
spring.application.name=gateway-service
spring.cloud.nacos.discovery.server-addr=192.168.31.60:8850
spring.cloud.nacos.discovery.service=${spring.application.name}
spring.cloud.nacos.discovery.namespace=gateway-test
management.endpoints.web.exposure.include=*


#spring.cloud.loadbalancer.nacos.enabled=true

#灰度发布
spring.cloud.gateway.routes[0].id=order-gray
spring.cloud.gateway.routes[0].uri=lb://order-service-v2
spring.cloud.gateway.routes[0].predicates[0]=Path=/order/**
spring.cloud.gateway.routes[0].predicates[1]=Header=X-User-Id,10086
#spring.cloud.gateway.routes[0].filters[0].name=SetRequestHeader
spring.cloud.gateway.routes[0].filters[0]=SetRequestHeader=X-Version,v2


spring.cloud.gateway.routes[1].id=order_normal
spring.cloud.gateway.routes[1].uri=lb://order-service
spring.cloud.gateway.routes[1].predicates[0]=Path=/order/**

# ===== Nacos 服务发现 =====
logging.level.com.alibaba.cloud.nacos=DEBUG
logging.level.com.alibaba.nacos.client.naming=DEBUG
logging.level.com.alibaba.nacos.client.config=DEBUG

logging.level.com.gate=debug
logging.level.org.springframework.web.client.RestTemplate=info
logging.level.org.springframework.web.HttpLogging=info
logging.level.web=debug
spring.devtools.add-properties=false

  代码部分

package com.gate;

/**
 * @Description:
 * @Author: tutu-qiuxie
 * @Create: 2026/1/10 21:33
 */
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class GatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }

    @Bean
    public CommandLineRunner printNacosNamespace(
            NacosDiscoveryProperties nacosDiscoveryProperties) {
        return args -> {
            System.out.println("===== NACOS DISCOVERY =====");
            System.out.println("namespace = " + nacosDiscoveryProperties.getNamespace());
            System.out.println("serverAddr = " + nacosDiscoveryProperties.getServerAddr());
            System.out.println("===========================");
        };
    }
}

  

 

posted @ 2026-01-14 16:39  板凳哲学家  阅读(2)  评论(0)    收藏  举报