你是否正在寻找关于gearman的内容?让我把最俱价值的东西奉献给你:
gearman的使用
对于分布式网络环境或者有大量任务的应用,我们需要将任务在不同的服务器之间进行分布,这个时候正好是gearman发挥实力的时候。虽然我们也可以使用MQ队列再加一些自己实现的调度算法来将任务进行分发,但是既然已经有了成熟的产品,为什么不使用下呢。
gearman介绍
Gearman提供了一种通用的程序框架来将你的任务分发到不同的机器或者不同的进程当中。它提供了你进行并行工作的能力、负载均衡处理的能力,以及在不同程序语言之间沟通的能力。Gearman能够应用的领域非常广泛,从高可用的网站到的复制任务,。总之,gearman就是负责分发处理的中枢系统,它的优点包括:
开源:gearman免费并且开源而且有一个非常活跃的开源社区,如果你想来做一些贡献,请点击 。
多语言支持:gearman支持的语言种类非常丰富。让我们能够用一种语言来编写Worker程序,但是用另外一种语言编写Client程序。
灵活:不必拘泥于固定的形式。您可以采用你希望的任何形式,例如 Map/Reduce。
快速:gearman的协议非常简单,并且有一个用C语言实现的,经过优化的服务器,保证应用的负载在非常低的水平。
可植入:因为gearman非常小巧、灵活。因此您可以将他置入到现有的任何系统中。
没有单点:gearman不仅可以帮助扩展系统,同样可以避免系统的失败。
gearman的工作原理
使用Gearman的应用通常有三部分组成:一个Client、一个Worker、一个 任务服务器。 Client的作用是提出一个 Job 任务 交给 Job Server 任务服务器。Job Server 会去寻找一个 合适的 Worker 来完成这项任务。Worker 执行由 Client 发送过来的 Job,并且将结果通过 Job Server 返回给 Client。Gearman 提供了 Client 和 Worker 的 API,利用这些API 应用可以同 Gearman Job Server来进行通信。gearman 内部 Client 和 Worker 之间的通信都是通过 TCP 连接来进行的。工作的流程如下图所示:

gearman的用处
Gearman首先提供了一个多语言通讯的接口,当然还有比这个更简单有效的办法。gearman可以将工作的负载分担到不同的机器中,如下图所示:

Job Server 可以开启多个实例,这样在其中一个发生故障的时候,可以 Failover 到其他的机器上。同时 Worker 也可以是多个实例进行运行,因为当前的服务器很多都是多核的。



gearman要依赖于 Boost C++ Libraries 中的 program_options 库,并且需要的版本大于 1.39。笔者的CentOS 5.2 系统中自带的 1.33 不能满足需求,在自己安装的过程中会遇到一些问题,建议参考 Boost 官方手册中的 Easy Build and Install 这部分。
安装Gearman之后,第一次启用可能会遇到error while loading shared libraries: libgearman.so.1 这个问题。可以用下面的方法解决:
当运行 /usr/local/sbin/gearmand -d 时出现error while loading shared libraries: libgearman.so.1
运行一下 /sbin/ldconfig -v ,然后再去运行gearman就可以了
ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录 下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc /ld.so.cache,此文件保存已排好序的动态链接库名字列表.
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-2711-1.html
有的东西保质期过了擦掉又从新打上新的生产日期
我没看懂MV前面写他粉丝怎么怎么欢迎
我想这样就好了