- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中com.netflix.loadbalancer.ZoneAffinityServerListFilter
类的一些代码示例,展示了ZoneAffinityServerListFilter
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZoneAffinityServerListFilter
类的具体详情如下:
包路径:com.netflix.loadbalancer.ZoneAffinityServerListFilter
类名称:ZoneAffinityServerListFilter
[英]This server list filter deals with filtering out servers based on the Zone affinity. This filtering will be turned on if either CommonClientConfigKey#EnableZoneAffinity or CommonClientConfigKey#EnableZoneExclusivity is set to true in IClientConfig object passed into this class during initialization. When turned on, servers outside the same zone (as indicated by Server#getZone()) will be filtered out. By default, zone affinity and exclusivity are turned off and nothing is filtered out.
[中]此服务器列表筛选器用于根据区域关联筛选出服务器。如果在初始化期间传递到此类的IClientConfig对象中将CommonClientConfigKey#EnableZoneAffinity或CommonClientConfigKey#EnableZoneExclusivity设置为true,则将打开此筛选。打开时,同一区域外的服务器(如服务器#getZone()所示)将被过滤掉。默认情况下,区域亲缘关系和排他性处于关闭状态,不过滤任何内容。
代码示例来源:origin: org.springframework.cloud/spring-cloud-netflix-ribbon
@Override
public List<Server> getFilteredListOfServers(List<Server> servers) {
List<Server> output = super.getFilteredListOfServers(servers);
if (this.zone != null && output.size() == servers.size()) {
List<Server> local = new ArrayList<>();
for (Server server : output) {
if (this.zone.equalsIgnoreCase(server.getZone())) {
local.add(server);
}
}
if (!local.isEmpty()) {
return local;
}
}
return output;
}
代码示例来源:origin: com.netflix.ribbon/ribbon-loadbalancer
public ZoneAffinityServerListFilter(IClientConfig niwsClientConfig) {
initWithNiwsConfig(niwsClientConfig);
}
代码示例来源:origin: com.netflix.ribbon/ribbon-loadbalancer
@Override
public List<T> getFilteredListOfServers(List<T> servers) {
if (zone != null && (zoneAffinity || zoneExclusive) && servers !=null && servers.size() > 0){
List<T> filteredServers = Lists.newArrayList(Iterables.filter(
servers, this.zoneAffinityPredicate.getServerOnlyPredicate()));
if (shouldEnableZoneAffinity(filteredServers)) {
return filteredServers;
} else if (zoneAffinity) {
overrideCounter.increment();
}
}
return servers;
}
代码示例来源:origin: com.netflix.ribbon/ribbon-loadbalancer
private boolean shouldEnableZoneAffinity(List<T> filtered) {
if (!zoneAffinity && !zoneExclusive) {
return false;
}
if (zoneExclusive) {
return true;
}
LoadBalancerStats stats = getLoadBalancerStats();
if (stats == null) {
return zoneAffinity;
} else {
logger.debug("Determining if zone affinity should be enabled with given server list: {}", filtered);
ZoneSnapshot snapshot = stats.getZoneSnapshot(filtered);
double loadPerServer = snapshot.getLoadPerServer();
int instanceCount = snapshot.getInstanceCount();
int circuitBreakerTrippedCount = snapshot.getCircuitTrippedCount();
if (((double) circuitBreakerTrippedCount) / instanceCount >= blackOutServerPercentageThreshold.get()
|| loadPerServer >= activeReqeustsPerServerThreshold.get()
|| (instanceCount - circuitBreakerTrippedCount) < availableServersThreshold.get()) {
logger.debug("zoneAffinity is overriden. blackOutServerPercentage: {}, activeReqeustsPerServer: {}, availableServers: {}",
new Object[] {(double) circuitBreakerTrippedCount / instanceCount, loadPerServer, instanceCount - circuitBreakerTrippedCount});
return false;
} else {
return true;
}
}
}
代码示例来源:origin: nutzam/nutzboot
public Object getLoadBalancer(String name, FeignInject fc) {
EurekaClient eurekaClient = ioc.get(EurekaClient.class, "eurekaClient");
DefaultClientConfigImpl clientConfig = DefaultClientConfigImpl.getClientConfigWithDefaultValues(name);
ServerList<DiscoveryEnabledServer> list = new DiscoveryEnabledNIWSServerList(name, ()->eurekaClient);
ServerListFilter<DiscoveryEnabledServer> filter = new ZoneAffinityServerListFilter<DiscoveryEnabledServer>(clientConfig);
ServerListUpdater updater = new EurekaNotificationServerListUpdater(()->eurekaClient);
IRule rule = null;
switch (getLbRuleString(fc.lbRule())) {
case "random":
rule = new RandomRule();
break;
case "availability":
default:
AvailabilityFilteringRule _rule = new AvailabilityFilteringRule();
_rule.initWithNiwsConfig(clientConfig);
rule = _rule;
break;
}
ZoneAwareLoadBalancer<DiscoveryEnabledServer> lb = LoadBalancerBuilder.<DiscoveryEnabledServer>newBuilder()
.withDynamicServerList(list)
.withRule(rule)
.withServerListFilter(filter)
.withServerListUpdater(updater)
.withClientConfig(clientConfig)
.buildDynamicServerListLoadBalancerWithUpdater();
return LBClient.create(lb, clientConfig);
}
}
代码示例来源:origin: org.springframework.cloud/spring-cloud-netflix-ribbon
@Override
public void initWithNiwsConfig(IClientConfig niwsClientConfig) {
super.initWithNiwsConfig(niwsClientConfig);
if (ConfigurationManager.getDeploymentContext() != null) {
this.zone = ConfigurationManager.getDeploymentContext().getValue(
ContextKey.zone);
}
}
代码示例来源:origin: com.netflix.ribbon/ribbon-loadbalancer
List<T> zoneAffinityFiltered = super.getFilteredListOfServers(servers);
Set<T> candidates = Sets.newHashSet(zoneAffinityFiltered);
Set<T> newSubSet = Sets.newHashSet(currentSubset);
代码示例来源:origin: com.netflix.ribbon/ribbon-loadbalancer
@Override
public void initWithNiwsConfig(IClientConfig clientConfig) {
super.initWithNiwsConfig(clientConfig);
sizeProp = new DynamicIntProperty(clientConfig.getClientName() + "." + clientConfig.getNameSpace() + ".ServerListSubsetFilter.size", 20);
eliminationPercent =
new DynamicFloatProperty(clientConfig.getClientName() + "." + clientConfig.getNameSpace() + ".ServerListSubsetFilter.forceEliminatePercent", 0.1f);
eliminationFailureCountThreshold = new DynamicIntProperty( clientConfig.getClientName() + "." + clientConfig.getNameSpace()
+ ".ServerListSubsetFilter.eliminationFailureThresold", 0);
eliminationConnectionCountThreshold = new DynamicIntProperty(clientConfig.getClientName() + "." + clientConfig.getNameSpace()
+ ".ServerListSubsetFilter.eliminationConnectionThresold", 0);
}
Nginx默认支持'Round Robin'负载平衡,如果我将kubernetes服务类型设置为'LoadBalancer'(我认为这是服务提供商的network-LB?如this),那不会在堆栈中形
本文整理了Java中com.netflix.loadbalancer.ZoneAwareLoadBalancer类的一些代码示例,展示了ZoneAwareLoadBalancer类的具体用法。这些代码
本文整理了Java中com.netflix.loadbalancer.ZoneAvoidanceRule类的一些代码示例,展示了ZoneAvoidanceRule类的具体用法。这些代码示例主要来源于G
本文整理了Java中com.netflix.loadbalancer.ZoneAffinityServerListFilter类的一些代码示例,展示了ZoneAffinityServerListFil
我有一个 clusterIP 类型的 k8s 服务..我需要通过 CLI 更改以下配置 http 端口到 https 端口 端口号 负载均衡器的类型 有没有办法做到这一点..? 最佳答案 您无法删除现
我正在尝试使用 python/paramiko 将 SFTP 服务器部署到 AKS 中。 这已成功部署到裸机开发服务器中,但是我在将其部署到 AKS 中时遇到问题。 问题在创建 LoadBalance
我有 6 个 Pod,每个 Pod 应用程序从不同的端口监听,每个 Pod 都有自己的 IP 地址。 我有 Kubernetes LoadBalancer 服务 (Azure LoadBalancer
我有一项使用 Azure Kubernetes 群集和 AKS 负载均衡器的服务。我想将一些 HTTP(客户端)请求转发到所有实例。一般来说,有什么方法可以使用 AKS 或 Kubernetes 配置
Kubernetes 同时拥有 Ingress (在服务前面)和服务类型: LoadBalancer .这些似乎做相同的事情:允许公共(public)流量进入与服务选择器匹配的 pod。各自的优点和缺
我有一项使用 Azure Kubernetes 群集和 AKS 负载均衡器的服务。我想将一些 HTTP(客户端)请求转发到所有实例。一般来说,有什么方法可以使用 AKS 或 Kubernetes 配置
我有一个关于使用 Spring-Cloud Netflix 进行客户端负载平衡的问题。 启用负载平衡后,Ribbon 将选择要调用的服务器。选择规则取决于被选择的 IRule 实现。 以下实现之间有什
更新: 我编辑了我的问题,使其更加关注问题。 上下文 编写代码以了解负载平衡的工作原理。Debian 64 位。 127.0.0.1:36001 上的负载均衡器后端位于 127.0.0.1:36000
我正在尝试学习如何将 Kibernetes 与 Minikube 一起使用,并具有以下部署和服务: --- kind: Service apiVersion: v1 metadata: name:
apiVersion: v1 kind: Service metadata: name: nginx labels: name: nginx spec: ports: #
我用 nginx-ingress-controller:0.24.1 (Inspired by) 我想将 DNS A 记录设置为 LB IP 地址,以便将其连接到根中具有公共(public) inde
我有一个配置为 LoadBalancer 的服务,在运行 1.9.11 的五节点集群上运行。 LoadBalancer 位于运行 ASP.NET Core Web 应用程序的三个 pod 前面(该应用
我刚刚开始使用 Kubernetes,我对 NodePort 和 LoadBalancer 类型的服务之间的区别感到困惑。 我理解的区别是 LoadBalancer 不支持 UDP,但除此之外,每当我
我正在尝试在 Azure AKS 中部署 ftp 服务器镜像。为了向公众公开服务器,我添加了一个 LoadBalancer 类型的服务。 apiVersion: v1 kind: Service me
我在负载均衡器 (F5) 后面运行 2 个 OAuth2 授权服务器实例。我正在使用 JdbcTokenStore。一切工作正常,但有时我会收到错误“处理错误:InvalidGrantExceptio
我使用 Helm 图表在我的测试集群上安装了 Spinnaker。当我尝试创建 LoadBalancer 时,我注意到对话框中的“命名空间”下拉列表是空白的。当我刚刚尝试创建负载均衡器时,我看到错误“
我是一名优秀的程序员,十分优秀!