日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

任务分发Gearmand的简介及搭建

發布時間:2024/3/26 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 任务分发Gearmand的简介及搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Releases · gearman/gearmand · GitHub?

一、Gearmand簡介
Gearmand是一個任務分發系統,是用來將工作委派給其他機器、分布式的調用,做任務分發。常用來并發的做某項工作,都在多個調用間做負載均衡,或用來調用其他語言的函數的系統。

簡而言之,就是客戶端程序會把請求提交給gearmand,gearmand 會把請求轉發給合適的 worker 來處理這個請求,最后還通過 gearmand 返回結果。

二、實現原理
運行流程圖:

?

Client – > Job --> Worker
Client:任務發起者
Job:任務分配者
Worker:任務處理者
支持 mysql、pq、sqlit、brizzle、memcachedb做持久化存儲
可開啟多個進程,支持failover(自動故障轉移)

簡述執行流程:
Client 端作為請求發起者,客戶端程序可以是任何一種語言,C、PHP、Perl、Python 等,
Job 請求調度者,負載協調把 Client 發出的請求轉發給合適的 Worker
Worker 請求處理者,處理 Job 分發來的請求,可以是任何一種語言

三、源碼編譯搭建
gearmand安裝包下載地址:https://github.com/gearman/gearmand/releases
我這里下載的是版本是gearmand-1.1.19.1.tar.gz

  • 安裝依賴:
configure: error: could not find boost,==> yum -y install gcc-c++.x86_64 gperf[root@test-36 gearmand-1.1.19.1]# yum -y install boost-devel gperf libevent-devel libuuid-devel gcc boost boost-devel gcc-c++.x86_64 gperf
  • 編譯,安裝?
[root@test-36 gearmand-1.1.19.1]# ./configure [root@test-36 gearmand-1.1.19.1]# make [root@test-36 gearmand-1.1.19.1]# make install/usr/bin/mkdir -p '/usr/local/bin'/bin/sh ./libtool --mode=install /usr/bin/install -c bin/gearman bin/gearadmin '/usr/local/bin' libtool: install: /usr/bin/install -c bin/.libs/gearman /usr/local/bin/gearman libtool: install: /usr/bin/install -c bin/gearadmin /usr/local/bin/gearadmin[root@test-36 gearmand-1.1.19.1]# ls /usr/local/bin/ gearadmin gearman[root@test-36 gearmand-1.1.19.1]# gearmand -Vgearmand 1.1.19.1 - https://github.com/gearman/gearmand/issues

啟動gearmand程序

[root@test-36 sbin]# mkdir /usr/local/var/log/ -p [root@test-36 sbin]# touch /usr/local/var/log/gearmand.log# 啟動gearmand # 啟動gearmand,-L 指定只監聽 IPV4,-d 以守護進程的方式啟動,-p port 默認 4730 [root@test-36 sbin]# ./gearmand -L 0.0.0.0 -d[root@test-36 sbin]# ps -ef | grep gearmand root 13205 1 0 23:43 ? 00:00:00 gearmand -L 0.0.0.0 -dport: [root@test-36 sbin]# netstat -atunpl | grep gearmand tcp 0 0 0.0.0.0:4730 0.0.0.0:* LISTEN 13205/gearmand

編寫gearmand啟動腳本

cat gearman_ctl #!/bin/bash #gearmand Startup script for the Gearman server # # chkconfig: - 85 15 # description: Gearman is a distributed job system. # processname: gearmand # config: /etc/sysconfig/gearmand # pidfile: /var/run/gearmand/gearmand.pid # ### BEGIN INIT INFO # Provides: gearmand # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: # Default-Stop: # Short-Description: start and stop the Gearman server # Description: Gearman is a distributed job system. ### END INIT INFO o# Configurations PREFIX="/usr/local" #gearmand 目錄 USER="root" # 執行用戶# Source function library. . /etc/rc.d/init.d/functionsif [ -f /etc/sysconfig/gearmand ]; then/etc/sysconfig/gearmand fiif [ ! -d "/var/run/gearmand" ]; thenmkdir /var/run/gearmandchown $USER /var/run/gearmandchmod 700 /var/run/gearmand fi[ -z "${PIDFILE}" ] && pidfile="/var/run/gearmand/gearmand.pid" [ -z "${LOCKFILE}" ] && lockfile="/var/lock/subsys/gearmand"gearmand=$PREFIX/sbin/gearmand prog=gearmandRETVAL=0start() {echo -n $"Starting $prog: "#daemon --pidfile=$pidfile --user=$USER $gearmand -d $OPTIONSdaemon --pidfile=$pidfile --user=$USER $gearmand -d -p 4730RETVAL=$?echo[ $RETVAL = 0 ] && (touch $lockfile; pgrep -f $gearmand > $pidfile)return $RETVAL}stop() {echo -n $"Stopping $prog: "killproc -p $pidfile $gearmandRETVAL=$?echo[ $RETVAL = 0 ] && rm -f $lockfile $pidfile }# See how we were called. case "$1" instart)start;;stop)stop;;status)status -p $pidfile $gearmandRETVAL=$?;;restart|reload)stopstart;;condrestart|try-restart)if status -p $pidfile $gearmand >&/dev/null; thenstopstartfi;;*)echo $"Usage: $prog {start|stop|restart|reload|condrestart|status|help}"RETVAL=3 esacexit $RETVAL

?

總結

以上是生活随笔為你收集整理的任务分发Gearmand的简介及搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。