当前位置: 首页 > 知识库问答 >
问题:

Spring云负载均衡器中基于部署上下文的Vip地址

海雪松
2023-03-14

我们期待着迁移到Spring云负载平衡器以取代Ribbon。我们使用Eureka进行服务发现和注册。

它看起来像是从Spring云Netflix 3开始的。x、 Eureka客户端模块中的EurekaribbonClient配置已被删除。

我们使用deploymentContextBasedVipAddress配置将内部主机名映射到Eureka中的注册vip地址。

配置与此类似:

some-sevice-v1.ribbon.NIWSServerListClassName=com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList
some-sevice-v1.ribbon.DeploymentContextBasedVipAddresses=some_service-v1
some-sevice-v1.ribbon.NIWSServerListFilterClassName=com.netflix.loadbalancer.ServerListSubsetFilter

我们这样做是因为在Eureka注册的vip地址中包含一个,从技术上讲,这是主机名的无效字符;Java URI类将无法解析其中包含\uuu的主机。我们目前无法改变这一点。

所以我的问题是;Spring Cloud负载平衡器和Spring Cloud Netflix 3中的新Eureka客户端模块能否实现类似的配置。x、 我们在哪里可以提供vip地址的别名?

共有1个答案

蒙经纶
2023-03-14

我们遇到了同样的问题。目前,我们正在为我们的假客户使用以下解决方案:

@FeignClient(
    value = "${my.amazing.service.name:amazing-service-name-default}",
    contextId = "amazing-service",
    configuration = AmazingServiceClientConfiguration.class,
    path = "/amazing-service"
)
public interface AmazingServiceClient {
  ...
}

我们可以配置my.amazing.service.name的方式与DeploymentContextBasedVipAddors相同。

本期还有一张公开票:https://github.com/spring-cloud/spring-cloud-commons/issues/951

希望,这有帮助。

 类似资料:
  • 我创建了一个java应用程序,并将其部署到Google云计算引擎中,然后创建了一个负载平衡器,但当我尝试使用端口443访问负载平衡器前端IP时,它会重定向到端口80

  • 我想知道是否有可能将Google云负载平衡器链接到一个外部服务器——一个托管在Google云之外的服务器? 因此,负载均衡器可能会链接到Google Cloud实例,但也可能链接到外部服务器。

  • 这一小节中,我们将实战 Nginx 的四层和七层负载均衡功能。条件有限,使用一台公网主机,在上面搭建好 Nginx 服务。公网 IP 为 180.76.152.113。 首先会进行简单的四层负载均衡实验,不会涉及多种负载均衡算法,只使用默认的 Round-Robin算法。在后续的七层负载均衡实验中,会重点测试不同的负载均衡策略,完成相关实验。 1. Nginx的四层负载均衡实验 首先在 nginx

  • 负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载均衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载均衡服务通常是由专用软体和硬件来完成。 负载均衡最重要的一个应用是利用多台服务器提供单一服务,这种方案有

  • 负载均衡包括负载均衡实例、访问控制及证书。 实例 负载均衡实例是一个运行的负载均衡服务,通过设置的虚拟IP接收流量并将其转发分配给后端服务器。 访问控制 访问控制用于设置访问负载均衡的IP白名单或IP黑名单。 证书 当在负载均衡实例上配置HTTPS监听转发来自HTTPS协议的请求时,需要配置证书。

  • 一个简单的负载均衡的示例,把www.domain.com均衡到本机不同的端口,也可以改为均衡到不同的地址上。> http { : upstream myproject { : server 127.0.0.1:8000 weight=3; : server 127.0.0.1:8001; : server 127.0.0.1:8002; : server 127.0.0.1:8003; : }