它已经存在了一段时间,但现在亚马逊发布了Elastic Load balance(ELB),您对为高流量Web应用程序部署此解决方案有何看法?
我们应该更换HAProxy还是将ELB视为HAProxy面前的免费服务?
我知道这与拥有各种负载平衡服务器有关,但为什么有些网站会使用不同名称的"www"子域名(www2.somesite.com,www3.somesite.com等),而其他网站可能非常庞大没有这样做 - 即所有流量都是www.hugesite.com.
它是否表明某些架构决策/具有特定目的?是否可以避免或者以某种方式限制网站规模?
我使用nginx作为几个tomcats前面的负载balencer.在我的传入请求中,我编码了查询参数.但是当请求到达tomcat时,参数被解码:
传入nginx的请求:
curl -i "http://server/1.1/json/T;cID=1234;pID=1200;rF=http%3A%2F%2Fwww.google.com%2F"
Run Code Online (Sandbox Code Playgroud)
传入tomcat的请求:
curl -i "http://server/1.1/json/T;cID=1234;pID=1200;rF=http:/www.google.com/"
Run Code Online (Sandbox Code Playgroud)
我不希望我的请求参数被转换,因为在那种情况下我的tomcat会抛出405错误.
我的nginx配置如下:
upstream tracking {
server front-01.server.com:8080;
server front-02.server.com:8080;
server front-03.server.com:8080;
server front-04.server.com:8080;
}
server {
listen 80;
server_name tracking.server.com;
access_log /var/log/nginx/tracking-access.log;
error_log /var/log/nginx/tracking-error.log;
location / {
proxy_pass http://tracking/webapp;
}
}
Run Code Online (Sandbox Code Playgroud)
在我当前的apache负载均衡器配置中,我有AllowEncodedSlashes指令来保留我的编码参数:
AllowEncodedSlashes NoDecode
Run Code Online (Sandbox Code Playgroud)
我需要从apache转移到nginx.
我的问题与这个问题完全相反:避免nginx在proxy_pass上转义查询参数
我正在开发一个使用docker-swarm建立云架构的项目.我知道使用swarm我可以部署服务的副本,这意味着该图像的多个容器将运行以服务请求.
我还读到docker有一个内部负载均衡器来管理这个请求分配.
但是,我需要帮助理解以下内容:
假设我有一个容器,将服务公开为REST API或说它是一个Web应用程序.如果我在swarm中部署了多个容器(副本),并且我有其他容器(运行一些应用程序)与此HTTP/REST服务通信.
然后,当我写那些IP:PORT组合的应用程序时,我会使用吗?是否有任何工作节点IP运行这些服务?即使在运行相同服务的其他工作人员/经理之间,这样做是否会适当地分配负载?
或者我应该调用管理器,而管理器又适当地处理路由(即使管理器节点没有运行此特定服务的容器)?
谢谢.
PHP将其会话信息存储在建立该会话的服务器主机的文件系统上.在多主机PHP环境中,负载在每个主机之间非智能地分布,每个请求都不能使用PHP会话变量(除非偶然将请求分配给同一主机 - 假设我们无法控制负载均衡器) .
这个名为"The Hitchhikers PHP负载平衡指南"的网站建议覆盖PHP会话处理程序并将会话信息存储在共享数据库中.
您认为,在多PHP主机环境中维护会话信息的最佳方法是什么?
更新:感谢您的反馈.对于任何寻找示例代码的人,我们找到了一个关于为MySQL编写Session Manager类的有用教程,我建议您查看.
我们的postgres服务器是关于它的容量,我们正在寻找添加第二个数据库服务器.是否有任何缩放解决方案特别适合postgres设置?
我试图阅读Windows Azure中的负载平衡,并且有关它的所有信息都非常模糊和非特定.我真正想要的只是一个简单的答案:Azure如何执行负载平衡?
许多应用程序使用会话或内存数据来提高性能.使用Azure,我不确定这是否可行,因为(据我所知),Azure没有任何类型的"粘性"会话.即使它不是基于会话的,而只是基于IP的平衡,这对于许多应用来说已经足够了.
那么,当天的问题 - Azure究竟如何执行其负载平衡?
我正在尝试确定如何平衡TCP流量.我理解HTTP负载平衡是如何工作的,因为它是一个简单的请求/响应架构.但是,当您的服务器尝试将数据写入其他客户端时,我不确定如何平衡TCP流量.我附上了一个简单的TCP聊天服务器的工作流图像,我们希望在N个应用服务器之间平衡流量.是否有任何负载平衡器可以做我正在尝试做的事情,或者我是否需要研究不同的主题?谢谢.

这是我的情况:
我在美国和欧洲有6台服务器.所有服务器都在负载均衡器上.当您访问网站(www.example.com)时,它指向负载均衡器IP地址,并从您的重定向到其中一个服务器.目前,如果您访问德国的网站,您将在其中一个服务器中随机转移.您可以转移到德国服务器或San Fransisco的服务器.
我正在寻找一种方法,根据用户的位置将用户重定向到最近的服务器,但不更改网址.所以我不希望有很多网址,例如www.example.com,www.example.co.uk,www.example.dk等
我正在寻找类似CDN的东西,你从最近的服务器(?)检索你的文件,所以我可以摆脱负载均衡器,因为如果它崩溃,网站不响应(?)
例如:
如果您来自英国,请重定向到IP 53.235.xx.xxx如果您来自美国西部,请重定向到IP ....如果您来自南欧,则重定向到IP ...等
DNSMadeeasy提供与此类似的功能,但它们的前期价格为600美元,对于一家不知道该功能是否能按预期工作或者没有我们买不起的试用版本的初创公司:http://www.dnsmadeeasy.com/企业的DNS /全球业务总监/
这样做的另一种方式是什么?
关于当前设置的另一个问题.即使有6台服务器全部连接到负载均衡器,如果负载均衡器存在延迟问题,它也需要一切,对吧?或者,如果有任何变化,该网站没有回应.那么消除停机时间的最佳方法是什么,以便如果一个服务器IP地址没有响应,则转移到下一个(如负载平衡器那样,但负载均衡器本身可能有问题)
我有一个很长的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).
先感谢您.
load-balancing ×10
scalability ×2
algorithm ×1
amazon-ec2 ×1
arrays ×1
azure ×1
database ×1
dns ×1
docker ×1
geolocation ×1
haproxy ×1
load ×1
memcached ×1
mysql ×1
nginx ×1
php ×1
postgresql ×1
redirect ×1
replication ×1
scaling ×1
session ×1
subdomain ×1
tcp ×1
url ×1