路由器实现负载均衡的三种模式

“负载均衡”概念运用在网络上,简单来说是利用多个网络设备通道均衡分担流量。就像是寺庙一天要挑10桶水,1个尚必需要走10趟,但同时指派10 个和尚却只要一趟即可完成工作的道理一样。负载均衡可运用多个网络设备同时工作,达成加速网络信息的处理能力,进而优化网络设备的性能,取代设备必须不停 升级或淘汰的命运。目前普遍被运用在网络设备中,如服务器、路由器、交换机等。 首先提出多WAN概念的侠诺科技,在多WAN的基础之上,也很快地就加入了负载均衡的功能。“侠诺负载均衡”根据接入运营商种类,可区分为两大类 型。第一类是接入多条相同运营商线路时,可运用智能型负载均衡、指定路由模式,达成多条线路均衡负载的作用,避免单一线路出现雍塞的弊病。第二类是接入不 同运营商线路时,可采用侠诺策略路由,将属于不同运营商线路的应用封包流量,清清楚楚的分流,有效降低跨网的门坎,达成信息存取加速的目的。

RabbitMQ 消息队列服务器 与进程通讯

过去的4年里,人们写了有好多好多的开源的MQ服务器啊。其中大多数都是某公司例如LiveJournal写出来用来解决特定问题的。它们的确不关心上面跑的是什么类型的消息,不过他们的设计思想通常是和创建者息息相关的(消息的持久化,崩溃恢复等通常不在他们考虑范围内)。不过,有三个专门设计用来做及其灵活的消息队列的程序值得关注: Apache ActiveMQ ZeroMQ RabbitMQ Apache ActiveMQ 曝光率最高,不过看起来它有些问题,可能会造成丢消息。不可接受,下一个。 ZeroMQ 和 RabbitMQ都支持一个开源的消息协议,成为AMQP。AMQP的一个优点是它是一个灵活和开放的协议,以便和另外两个商业化的Message Queue(IBM和Tibco)竞争,很好。不过ZeroMQ不支持消息持久化和崩溃恢复,不太好。剩下的只有RabbitMQ了。如果你不在意消息持久化和崩溃恢复,试试ZeroMQ吧,延迟很低,而且支持灵活的拓扑。 ”这里我要着重说一下zeromq,很值得一试。 rabibitmq是用erlang写的,具有很好的稳定性,“而且,RabbitMQ支持持久化。是的,如果RabbitMQ死掉了,消息并不会丢失,当队列重启,一切都会回来。”

RabbitMQ集群+负载均衡方案

RabbitMQ虽然是天生的分布式消息队列,但其本身并不支持负载均衡。 Connecting to Clusters from Clients A client can connect as normal to any node within a cluster. If that node should fail, and the rest of the cluster survives, then the client should notice the closed connection, and should be able to reconnect to some surviving member of the cluster. Generally, it’s not advisable […]

Hadoop MapReduce 上利用Lucene实现分布式索引

在HDFS上处理数据时,为快速访问,有时候需要对数据进行分布式索引。很不巧,我们所熟悉的Lucene并不支持HDFS上的索引操作。Lucene中的Document不支持MapReduce输出类型的Writable接口,因此我们无法直接使用Document作为MapReduce的输出类型。虽然Nutch这一搜索爬虫基于Lucene实现HDFS上建立和维护索引的功能,但是在Nutch中对Lucene进行了很多的重写。

php Apache开启Mod_Rewrite实现URL重写的配置方法(解决静态页404错误)

配置步骤: 第一步:找到apache的配置文件httpd.conf(文件在conf目录下) 第二步:你首先必须得让服务器支持mod_rewrite,如果你使用的是虚拟主机,请事先询问你的主机提供商。 打开httpd.conf,找到 #LoadModule rewrite_module modules/mod_rewrite.so 把#去掉 找到AllowOverride None 改成 AllowOverride All, 再加 .htaccess 文件定义对应URL重写规则就ok,一般改这两个设置 然后重启apache就会生效了。下面是网络其他资源进一步详细说明,大家可以看看注:AllowOverride 的参数设置为ALL,表示整台服务器上都支持URL规则重写。Apache 服务器要读每个网站下目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则就不会有任何效果。

PHP-CGI 进程 CPU 100% 很可能由于 file_get_contents 函数

有时候,运行 Nginx、PHP-CGI(php-fpm) Web服务的 Linux 服务器,突然系统负载上升,使用 top 命令查看,很多 php-cgi 进程 CPU 使用率接近100%。后来,我通过跟踪发现,这类情况的出现,跟 PHP 的 file_get_contents() 函数有着密切的关系。 大、中型网站中,基于 HTTP 协议的 API 接口调用,是家常便饭。PHP 程序员们喜欢使用简单便捷的 file_get_contents(“http://example.com/”) 函数,来获取一个 URL 的返回内容,但是,如果 http://example.com/ 这个网站响应缓慢,file_get_contents() 就会一直卡在那儿,不会超时。 我们知道,在 php.ini 中,有一个参数 max_execution_time 可以设置 PHP 脚本的最大执行时间,但是,在 php-cgi(php-fpm) 中,该参数不会起效。真正能够控制 PHP 脚本最大执行时间的是 php-fpm.conf 配置文件中的以下参数: view plainprint? The timeout (in seconds) for serving a single request after which the worker process will be terminated Should be used when ‘max_execution_time’ ini option does not stop script execution for some reason ‘0s’ means ‘off’ <value name=”request_terminate_timeout”>0s</value> 默认值为 0 秒,也就是说,PHP 脚本会一直执行下去。这样,当所有的 php-cgi 进程都卡在 file_get_contents() 函数时,这台 […]

根据淘宝商品num_iid批量生成淘宝客链接的PHP函数

根据淘宝商品 num_iid 批量生成淘宝客链接的 PHP 文件内容如下。 淘宝 API 有调用次数限制,一次 API 调用,可以最大返回40个商品的淘宝客链接,因此,在本函数内,如果需要批量生成的淘宝商品 num_iid 数大于40,将按照40个一次,分多次调用。如果调用淘宝 API 查询过的商品 num_iid,不管其是否有淘宝客链接(有些商品没有淘宝客推广链接),都将利用 Memcached 缓存起来,下次直接查缓存,不会重复调用淘宝 API。