gearman mysql编译_gearman初探(一、编译和安装)
gearman是一个任务分发系统,将计算比较耗时的任务分发给不同的机器专门进行计算,而任务发起的初始程序不必等待这些任务完成就可以返回而继 续执行。笔者最开始做PHP邮件发送的时候,因为邮件发送耗时比较长,这时PHP脚本就会被阻塞,必须等待邮件发送完毕后,脚本才能运行结束。不但用户体 验不好,也会带来负载的问题,那么可不可以把发送邮件的任务分派给其他机器,程序把任务分派之后就立即返回呢。答案就是:gearman
我们先来编译和安装gearman
gearman官网上的文档很详细:http://gearman.org/getting-started/
其中涉及到各平台的安装方法,包括windows : http://www.phpvs.net/2010/11/30/installing-gearman-and-gearmand-on-windows-with-cygwin/ . 这里采取源代码安装的方式(yum安装有时候让人沮丧,因为repository里可能没有这个软件)
因为gearmen的工作原理,它分为Job Server和 Client & Worker APIs两部分,如下图所示(图片取自gearman官网)
整个程序执行的流程自上而下,上面的和下面的两个蓝色块都是你的程序代码——实现你的业务逻辑,上面的蓝色块是你的任务发起代码,比如你的邮件数据 的准备和发送请求的准备,下面的蓝色块是任务执行的代码,比如邮件发送的执行。三个黄色块的总和就是gearman,上面的黄色块是Client API,提供和各种语言沟通的统一接口,下面的黄色块是Worker API,也是提供统一的接口,只不过一个靠近请求发送,另一个靠近请求处理。两者统称为Client & Worker APIs。中间的黄色块就是gearman的服务部分了,即Gearman Job Server(gearmand)。我们首先安装Gearman Job Server.
Gearman Job Server 有三个实现版本(http://gearman.org/download/): gearmand(c)、java-gearman-service(java) 和 Gearman::Server(perl)。三种语言,三种实现版本,这里选择gearmand(c),你也可以根据你熟悉的语言进行选择。
在https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz 上将源码下载后
#cd ~/下载
#tar -xvzf gearman-1.1.12.tar.gz
#cd ./gearman-1.1.12
在./configure 之前,请确保你的系统里 gcc 和 g++ 能正常工作,如果没有安装,请yum install。如果yum无法安装g++,可以使用Gnome的系统工具—管理—添加/删除软件功能,添加C++ support for gcc。有一点要注意的是,如果没有g++,那么即使你安装了boost和boost-devel库,也会提示你找不到boost-lib.
然后确认是否安装 gperf、libevent开发包、libuuid开发包和mysql开发包。
如果没有安装,分别进行yum安装
yum install gperf
yum install libevent-devel
yum install libuuid-devel
yum install mysql-devel
然后./configure,成功后make && make install
在编译过程中,笔者还遇到一个问题,就是提示找不到mysql.h头文件,这是缺失mysql开发包导致的,执行whereis mysql 果然没有看到 include路径,解决方法就是 yum install mysql-devel,成功后再次执行whereis mysql 看到了include路径,然后编译gearmand(c)成功,安装成功。
安装成功后,启动gearmand
#gearmand -d
但在笔者的机器上提示了一个错误:
gearmand: Could not open log file “/usr/local/var/log/gearmand.log”, from “/root/下载/geard-1.1.12″, switching to stderr. (No such file or directory) 这是/usr/local文件夹的权限导致的,gearmand(c)服务程序没有写这个文件夹的权限,将/usr/local的权限改为766 或者建立/usr/local/var/log/文件夹即可。
gearman mysql编译_gearman初探(一、编译和安装)相关推荐
- gearman mysql持久化_gearman + mysql方式实现持久化操作示例
本文实例讲述了gearman+mysql方式实现持久化操作.分享给大家供大家参考,具体如下: 1.为什么要持久化? gearman的job server中的工作队列存储在内存中,一旦服务器有未处理的任 ...
- gearman mysql 扩展_Gearman分布式任务处理系统(二)扩展应用
对于绝大多数发展中等的web 2.0网站来说,LAMP结构已经不能满足现在的需要了,新的架构组合是GLAMMP,G=Gearman(分布式远程过程处理),M=Memcached(高性能的分布式的内存对 ...
- gearman mysql 扩展_Gearman的安装和使用
Gearman 是一个分布式任务分发系统,通过程序调用(API,跨语言)分布式地把工作委派给更适合做某项工作的机器,且这些机器可以以并发的.负载均衡的形式来共同完成某项工作.当计算密集型场景时,适合在 ...
- mysql 编译_mysql 5.7 编译——VS2017
主要步骤: vs 2017 下载就不写了,需要安装win 8.1 sdk,没有的需要打开setup安装即可. (1)从 mysql 的官网下载 mysql src 5.7.20 (2)下载后解压到某个 ...
- MySQL 5.5单实例 编译安装
1.建立MySQL账号 首先以root登录到Linux,然后执行如下命令创建MySQL组及用户 [root@loveyu home]# groupadd mysql[root@loveyu home] ...
- mysql基础(一) 编译安装mysql5.5
一:编译mysql useradd -M -s /sbin/nologin mysql #创建mysql用户 yum -y install cmake ...
- mysql 5.6.23 源码包安装报错_Ubuntu 14.10下编译安装MySQL 5.6.23
1. 安装环境: Ubuntu Server 14.10 MySQL-5.6.23.tar.gz 2. 安装必备的工具 sudo apt-get install make bison g++ buil ...
- mysql 5.7 源码编译安装_mysql-5.7.*源码编译安装
mysql-5.7.*源码编译安装 系统安装条件 官方文档说明:http://dev.mysql.com/doc/refman/5.7/en/source-installation.html 1> ...
- 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(二、编译连接)
本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动到qt连接mysql数据库(一.编译连接前准备) [全教程]qt连接mysql--从qt编译mysql驱动到qt连接my ...
最新文章
- 优秀产品必经的14个拷问
- C语言-实现矩阵的转置-随机函数产生随机数并赋予数组中-190222
- 助记词创建以太坊钱包源码_墨客科普 | MOAC区块链钱包账号管理
- 微信公众号服务器推送307,关于公众号模板消息推送结果
- 从LFS官方文档构建完整Linux系统
- 经理必看的8个管理网站
- 那些还在传程序猿35岁职业危机
- SanDisk U盘加密软件 在其他u盘使用
- bootdo框架中使用shiro控制的权限(bootstrap)
- 2022-2027年(新版)中国工程造价咨询行业现状动态与未来前景预测报告
- Pyserial库使用心得
- oracle中算百分比,Oracle百分比分析函数RATIO_TO_REPORT() OVER()实例详解
- 计算机图形学立方体旋转代码,Flash AS教程:旋转立方体
- excel双击打不开,但是点击文件里的打开就行
- 小米手机5s简单刷成开发版获得ROOT权限的方法
- 设定软件使用期限,根据网络时间保护试用软件产品的方法
- 谁与争锋,JDK动态代理大战CGLib动态代理
- JS逆向——破解百度翻译参数(sign)爬虫 超级详细
- Vim 8文本处理实战 第二章 高级编辑和文本浏览 阅读笔记2
- Sphinx (Sphinx(斯芬克司))
热门文章
- Dapr Meetup 3.22【周六】
- 如何在 .NET 中使用 Redis缓存
- C#实现乞丐版IOC容器
- .NET Core开源任务调度平台ScheduleMaster上新了
- 修复被破坏的 vs 工程设置
- 揭秘 .NET 5 和Java 互操作
- 中国速度之二神山建设(4):全能运维,召之即来,来之即战 | IDCF DevOps案例研究...
- .NET ORM FreeSql 第一个正式版本发布 v1.0.0
- EF Core For MySql查询中使用DateTime.Now作为查询条件的一个小问题
- 【.NET Core 跨平台 GUI 开发】第一篇:编写你的第一个 Gtk# 应用