标签: load-balancing

将数组拆分为平衡和的P子阵列的算法

我有一个很长的N长度,让我们说:

2 4 6 7 6 3 3 3 4 3 4 4 4 3 3 1
Run Code Online (Sandbox Code Playgroud)

我需要将这个数组拆分成P个子数组(在这个例子中,P=4这是合理的),这样每个子数组中元素的总和尽可能接近sigma,是:

sigma=(sum of all elements in original array)/P
Run Code Online (Sandbox Code Playgroud)

在这个例子中sigma=15.

为清楚起见,一个可能的结果是:

2 4 6    7 6 3 3   3 4 3 4    4 4 3 3 1
(sums: 12,19,14,15)
Run Code Online (Sandbox Code Playgroud)

我已经写了一个非常天真的算法,基于我如何手工划分,但我不知道如何强加条件,其总和为(14,14,14,14,19)比一个差.那是(15,14,16,14,16).

先感谢您.

arrays algorithm parallel-processing load-balancing

20
推荐指数
2
解决办法
7535
查看次数

如何在Heroku Cedar堆栈上使用.htaccess重定向到HTTPS

我是云托管新手......

我正在开发一个PHP Web应用程序,它作为"Cedar"应用程序在Heroku上托管.Heroku为他们所有的子域提供"背负式"SSL,所以我可以正常加载https://myapp.herokuapp.com.但我也可以加载http://myapp.herokuapp.com.我想通过将http请求重定向到强制SSL https.

通常,这很容易.我只想使用mod_rewrite如下:

RewriteCond %{HTTPS} != on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)

但是这对HEROKU没有用!

看来SSL会在流量到达我的应用之前终止上游.因此%{HTTPS}从未满足条件,结果是重定向循环.我也试过以下,但也没有用:

RewriteCond %{SERVER_PORT} != 443 #<--also redirect loop
RewriteCond %{REQUEST_SCHEME} !https #<--also redirect loop
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何在上游终止时检测/重定向到HTTPS?

.htaccess mod-rewrite ssl load-balancing heroku

19
推荐指数
1
解决办法
7618
查看次数

使用Nginx的代理TCP流(MySQL和Redis)

我读到了Nginx Fabric Model,它引起了我的注意力,重新配置应用程序如何与MySQL和Redis进行通信.如果本地Nginx实例可以高效且快速地代理HTTP流量,那么现在它也可以代理TCP而不必担心网络,即使在紧急情况下使用数据库slave作为主服务器并且可能封装数据库分片.所有这些好处都可以简化应用程序配置及其逻辑,网络(拥塞,延迟,超时,重试)将不再是功能开发的重点.

我使用最新的Docker和一组容器:Nginx,Redis,MySQL.我尝试了以下配置:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log info;
pid        /var/run/nginx.pid;


events {
  worker_connections  1024;
}

stream {
  upstream redis {
    # prefer first server but limit connections
    server 172.17.0.8:6379 weight=2 max_conns=1;
    server 172.17.0.3:6379;
  }

  upstream mysql {
    # use second server in case of failure
    server 172.17.0.4:3306;
    server 172.17.0.5:3306 backup;
  }

  server {
    listen 6379 so_keepalive=on;
    proxy_pass redis;
  }

  server {
    listen 3306 so_keepalive=on;
    proxy_pass mysql;
  }
}
Run Code Online (Sandbox Code Playgroud)

我有一些问题: …

mysql performance load-balancing nginx redis

19
推荐指数
1
解决办法
3768
查看次数

AWS - 停止负载均衡器

根据免费等级,我有750h的负载均衡器.我想尝试创建多个负载均衡器.现在我想停止它以避免浪费自由计划.

但我没有找到任何"停止"按钮. 在此输入图像描述

load-balancing amazon-ec2

18
推荐指数
1
解决办法
6394
查看次数

如何告诉AWS应用程序负载均衡器不转发路径模式?

我已将AWS应用程序负载均衡器配置为具有以下规则:

  • /images/*转发到服务器A(https://servera.com)
  • /videos/*转发到服务器B(https://serverb.com)

这正确地转发到相应的服务器.但是,我不希望负载均衡器将请求转发为https://servera.com/images&https://serverb.com/videos.我只想要在没有路径模式的情况下命中各个服务器为https://servera.com&https://serverb.com(没有请求中的路径模式).

我不想修改我的请求参数或更改我的服务器端代码.有没有办法告诉应用程序负载均衡器不转发路径模式?

load-balancing amazon-web-services

18
推荐指数
1
解决办法
3191
查看次数

应用程序负载均衡器(ELBv2)SSL通过

我正在尝试配置AWS Application Load Balancer(相对于传统负载均衡器)以将流量分配到我的EC2 Web服务器.出于合规性原因,我需要为我的应用程序端到端SSL/HTTPS加密.

在我看来,确保在客户端和Web服务器之间完全加密流量的最简单方法是终止Web服务器上的HTTPS连接.

我的第一个问题:是否可以通过AWS Application Load Balancer以这种方式将HTTPS流量传递到负载均衡器后面的Web服务器?

根据我从AWS文档中收集的信息,可以使用经典负载均衡器(通过TCP传递)以这种方式传递流量.但是,Application Load Balancer看起来好像要终止HTTPS连接本身,然后执行以下操作之一:

  • 将流量发送到未加密的Web服务器,由于合规性原因,我无法做到这一点
  • 创建一个到Web服务器的新HTTPS连接,这似乎是额外的工作量

我的第二个问题:对文档的理解是否正确?

ssl load-balancing amazon-web-services

18
推荐指数
1
解决办法
1万
查看次数

负载平衡Web应用程序

有负载平衡的tomcat Web服务器.每个请求都可以由不同的tomcat服务器提供.

在为基于j2ee(struts)的Web应用程序编写代码时,我们如何处理这个问题?

java tomcat load-balancing

17
推荐指数
1
解决办法
1万
查看次数

负载平衡多个Django Web服务器

我想知道是否有人曾经实现过多个指向单个数据库的Django Web服务器,基本上通过负载平衡作为单个网站运行?

您使用什么软件进行负载平衡?

您的Django Web服务器需要哪些其他设置/配置?

你需要以任何方式修改你的Django代码吗?

django load-balancing

17
推荐指数
1
解决办法
4206
查看次数

Haproxy ssl配置 - 安装根证书和中间证书

经过大量的谷歌搜索,我终于让我的haproxy ssl工作.但是现在我遇到了问题,因为没有安装root和中间证书所以我的ssl没有绿色条.

我的haproxy配置

global
      maxconn     4096 
      nbproc      1
      #debug
      daemon
      log         127.0.0.1    local0

  defaults
      mode        http
      option      httplog
      log         global
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

  frontend unsecured
      bind 192.168.0.1:80
      timeout     client 86400000
      reqadd X-Forwarded-Proto:\ http
      default_backend      www_backend

  frontend  secured
  mode http
   bind 192.168.0.1:443 ssl crt /etc/haproxy/cert.pem
   reqadd X-Forwarded-Proto:\ https
  default_backend www_backend

  backend www_backend
      mode        http
      balance     roundrobin
      #cookie      SERVERID insert indirect nocache
      #option      forwardfor
      server      server1 192.168.0.2:80  weight 1 maxconn 1024 check
      server      server2 192.168.0.2:80  weight …
Run Code Online (Sandbox Code Playgroud)

ssl openssl load-balancing centos haproxy

17
推荐指数
1
解决办法
4万
查看次数

如何在服务实例上管理/平衡半持久作业

我看到了我们尝试开发的服务的常见模式,我想知道是否有工具/库可以帮助到这里.虽然微服务文献中讨论的默认作业来自REQUEST - > RESPONSE属性,但我们的工作或多或少是半永久性任务的分配.

此类任务的示例

  • 在消息队列中侦听来自源X和Y的数据,关联进来的数据并将其存储在Z中.
  • 保留一个内存缓冲区,每次有新数据输入时,它会计算过去15分钟数据的运行平均值.

目前我们的服务是用PHP编写的.由于PHP进程的感知开销和与消息队列的连接,我们希望单个服务进程能够同时处理多个这些作业.

一张图表,希望能够说明我们头脑中的设置: services_setup

  • Service Workers目前是deamonized PHP脚本
  • 对于Service Registry,我们正在关注Zookeeper

当Zookeeper(和Curator)进行负载均衡时,我没有找到任何可以分发永久作业的东西(可以更新,可移动,并且必须在工作者死亡时重新分配)

职位经理的职责

  • 知道工作
  • 了解可以完成这些工作的服务
  • 可以将作业分配给服务
  • 可以向服务发送作业更新
  • 如果工人死亡,可以重新分配工作

是否有任何库/工具可以解决这些问题,因此可以作为作业管理器使用?或者这是一个很大的反模式,我们应该采取其他方式吗?

php load-balancing microservices apache-zookeeper

17
推荐指数
2
解决办法
287
查看次数