gearmand

下載: http://gearman.org/index.php?id=download

作業系統:CentOS

前置作業:yum install libevent-devel , boost –with-program-options , yum libdrizzle-devel

drizzle 好像是一個 MySQL 的分支,是要處理擴展性跟底層修改測試部份的專案,所以他也可以跟原生的 MySQL 溝通,

要先裝好 libdirzzle-devel ,這樣在裝 gearmand 的時候 configuration 才會啟用 libdrizzle 可以把 job 的資料配合存進 MySQL 內的佇列。

但是在 0.20 的 gearmand 在這部份有些問題 自動建立表跟插入的 SQL 有錯,可以參考下面這個修正再重編譯,算是少兩個逗號吧 Create 跟 Insert 的地方

https://code.launchpad.net/~clint-fewbar/gearmand/fix-sql-regression/+merge/59064

後來 Woker 在處理 Queue 時出錯…,訊息如下:

ERROR [ proc ] snprintf(DELETE)(Success) -> libgearman-server/plugins/queue/drizzle/queue.cc:416
ERROR [ proc ] Remove from persistent queue(QUEUE_ERROR) -> libgearman-server/server.c:495

https://bugs.launchpad.net/gearmand/+bug/778306

參考上面這篇的問題一樣改 queue.cc 裡面,維護者說已經修正過了,所以去找一下 build 版本的 source code

http://bazaar.launchpad.net/~gearman-developers/gearmand/build/view/head:/libgearman-server/plugins/queue/drizzle/queue.cc

所以改這段~

- if (query_size < 0 || query_size > (ssize_t)sizeof(query))
+ if (query_size < 0 || size_t(query_size)> query.size())

改完上面的好像跑來就ok了~可以測不開 Woker 只跑 client ,job 就會進 Queue 裡面了~

其他細節待續 ,…趕林揚…伺服器被打雷打掉了沒有細節了~

開伺服器的命令,主要指定 libdrizzle 的 host 跟 user 跟資料表還有 bug 不能指定 mysql 密碼…

vvv 是 log 顯示等級


$ gearmand -u apache --queue-type=libdrizzle --libdrizzle-host=antslab.tw --libdrizzle-user=assist --libdrizzle-db=assist --libdrizzle-table=global_gearman_queue --libdrizzle-mysql -vvv &

參考資料:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *