首页 > 解决方案 > 如何使用 java SDK 在 GCP 中创建 http 负载均衡器?

问题描述

我正在尝试使用 java SDK 创建负载均衡器,但截至目前我收到范围不匹配错误。我是 GCP 的新手,不知道我在做什么错误。

我收到以下异常:

Scope mismatch between forwarding rule and backend service, forwarding rule scope: region us-east1, backend service scope: global.

    Backend backend = new Backend().setGroup("");
    BackendService backendService = new BackendService()
            .setName("backendservice")
            .setPort(80)
            .setProtocol("TCP")
            .setPortName("http")
            .setTimeoutSec(30)
            .setBackends(Collections.singletonList(backend))
            .setHealthChecks(Collections.singletonList(""));
    compute.backendServices()
            .insert("", backendService)
            .execute();


    ForwardingRule forwardingRule = new ForwardingRule()
            .setName("lb-forwarding-rule")
            .setPortRange("80-80")
            .setIPProtocol("TCP")
            .setIpVersion("IPv4")
            .setLoadBalancingScheme("EXTERNAL")
            .setBackendService("");
        
    compute.forwardingRules().insert("", "us-east1", forwardingRule).execute();

标签: google-cloud-platform

解决方案


坎帕西:

转发规则和后端应该具有相同的范围才能协同工作,因此它们应该是区域性的或全局性的。尝试再次创建您的转发规则,但指定一个全局范围。验证您尝试创建的资源的范围并相应地设置范围,以便它们可以匹配。

考虑以下情况,负载均衡器可以有两种网络服务层,高级或标准。对于前者,范围是全球性的,对于后者,范围是区域性的。


推荐阅读