Flare3D 是一款功能強(qiáng)大的引擎,它使得 Flash 中的 3D 內(nèi)容管理變得更為簡(jiǎn)便。 它的設(shè)計(jì)宗旨是提供一個(gè)完美的開發(fā)工作流程,以便你能夠獲得事半功倍的效果。
Flare安裝步驟
Flare的安裝共包括三個(gè)軟件包: bzip2-1.0.6.tar.gz、Flare.rar、zlib-1.2.7.tar.gz
準(zhǔn)備工作:
1、安裝gcc、gcc++編譯器
2、root的環(huán)境變量配置C編譯環(huán)境的環(huán)境變量,用64位編譯
export CC="gcc -m64"
export GCC="gcc -m64"
export CXX="g++ -m64"
一、解壓zlib-1.2.7.tar.g z,并安裝:
二、解壓bzip2-1.0.6.tar.gz,并安裝
修改/bzip2-1.0.6/Makefile文件中,如下兩個(gè)字段屬性的值:
CC=gcc –m64
CFLAGS=-O3 -DUSE_MMAP –fPIC (一般針對(duì)64位電腦)
三、解壓Flare.rar ,安裝Tokyocabinet
1、 yum配置代理
vi /etc/yum.conf
添加 proxy=http://username:password@ip:port
2、 安裝Tokyocabinet
若發(fā)現(xiàn)缺少依賴包 zlib,則:
sudo yum install zlib* make*sudo yum install bzip* make* (下載依賴包)
重新執(zhí)行configure成功
四、安裝boost
因?yàn)閒lare 安裝依賴于 boost 所以需要先安裝 boost。
兩種方式:
1、直接利用 yum –y install boost
如果這種方式安裝成功,則編譯flare 的時(shí)候boost參數(shù)可以不填寫。
2、另外一種如下:
五、安裝flare-1.0.12
Flare 安裝成功后,在/home/flare/flare-1.0.12/bin下有兩個(gè)文件 flared、flarei。
這時(shí)候啟動(dòng)flared很可能起不來,提示找不到libtokyocabinet.so.8這個(gè)文件,由于/home下面的路徑不會(huì)自動(dòng)加載到動(dòng)態(tài)鏈接庫(kù)的查找路徑中,因此需要手動(dòng)添加,修改/etc/ld.so.conf這個(gè)文件,在其中加入/home/flare/tokyocabinet-1.4.47/lib,執(zhí)行l(wèi)dconfig,然后flare應(yīng)該就可以正常啟動(dòng)了。
六、配置及調(diào)試
1、拷貝flare安裝包下的etc目錄到/home/flare/flare-1.0.12
2、創(chuàng)建data及其子目錄proxy、index、master1、master2、slave
3、修改配置文件 /etc/flarei.conf ,該配置文件對(duì)應(yīng)data中的index節(jié)點(diǎn),如下
在/etc目錄下,手工創(chuàng)建flarep.conf、flarem1.conf、flarem2.conf、flares.conf,并修改其data-dir、端口號(hào)、Ip等信息。
4、然后啟動(dòng)相應(yīng)的進(jìn)程,具體如下:
Index server:
索引服務(wù)器,用于控制node server的狀態(tài)。Client不直接和index server進(jìn)行交互。
Node server:
實(shí)際存儲(chǔ)節(jié)點(diǎn),node有3種role:master / slave / proxy.
Master 是主節(jié)點(diǎn),slave是分流節(jié)點(diǎn),用于同步復(fù)制master。
Proxy則將client的請(qǐng)求轉(zhuǎn)發(fā)到當(dāng)前合適的節(jié)點(diǎn)(包括master /slave)。
啟動(dòng)flare管理節(jié)點(diǎn)(主機(jī)):
./flarei -f /home/flarei.conf --daemonize
啟動(dòng)flare受管節(jié)點(diǎn)(主機(jī)):
./flared -f /home/flare/flare-1.0.12/etc/flarep.conf --daemonize
(對(duì)應(yīng) data中的proxy,proxy中的*.pid文件是自動(dòng)生成的臨時(shí)文件)
./flared -f /home/flare/flare-1.0.12/etc/flarem1.conf --daemonize
(對(duì)應(yīng)data中的master1,同上)
./flared -f /home/flare/flare-1.0.12/etc/flarem2.conf --daemonize
(對(duì)應(yīng)data中的master2,同上)
./ flared -f /home/flare/flare-1.0.12/etc/flares.conf --daemonize
(對(duì)應(yīng)data中的slave,同上)
若沒有手工創(chuàng)建larep.conf、flarem1.conf、flarem2.conf、flares.conf等配置文件,則Nodes可以采取下面的啟動(dòng)方式:
a. 啟動(dòng)proxy.
# ./bin/flared --daemonize --data-dir data/proxy/ --index-server-name127.0.0.1 --index-server-port 12120 --server-name 127.0.0.1 --server-port 12121 -p var/run/flared.proxy.pid
b. 啟動(dòng)master
# ./bin/flared --daemonize --data-dir data/master1/ --index-server-name127.0.0.1 --index-server-port 12120 --server-name 127.0.0.1 --server-port 12122 -p var/run/flared.master.pid
# ./bin/flared --daemonize --data-dir data/master2/ --index-server-name127.0.0.1 --index-server-port 12120 --server-name 127.0.0.1 --server-port 12123 -p var/run/flared.master2.pid
d. 啟動(dòng)slave.
# ./bin/flared --daemonize --data-dir data/slave/ --index-server-name127.0.0.1 --index-server-port 12120 --server-name 127.0.0.1 --server-port 12124 -p var/run/flared.slave.pid
進(jìn)程都正常啟動(dòng),如下:
5、當(dāng)某個(gè)node加入時(shí),默認(rèn)是proxy role,因此需要修改這些role
telnet index server
修改node節(jié)點(diǎn)role
node role 127.0.0.1 12122 master 1 0
node role 127.0.0.1 12123 mater 1 1
node role 127.0.0.1 12124 slave 2 0
node role [node server name] [node server port] [role=(master|slave|proxy)] [balance] ([partition])
其中balance為0表示不使用,值越大使用頻率越高,partition為分區(qū),多個(gè)master之間可以自動(dòng)由proxy將數(shù)據(jù)分區(qū)存放,master中存放的數(shù)據(jù)與其對(duì)應(yīng)分區(qū)的slave中是完全一致的,slave其實(shí)相當(dāng)于該分區(qū)master數(shù)據(jù)的一個(gè)備份。
修改完畢后,再執(zhí)行stats nodes ,如下:
6、Telent master1,插入數(shù)據(jù),進(jìn)行測(cè)試:
telnet slave節(jié)點(diǎn),查看數(shù)據(jù)是否同步。
附錄一:libbz2.a,libz.so導(dǎo)致tokyocabinet make失敗問題解決方法
缺少zlib.h這個(gè)文件
//******************************************************************************************************************************//
/usr/bin/ld: /usr/local/lib/libbz2.a(bzlib.o): relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libbz2.a: could not read symbols: Bad value
collect2: ld 返回 1
make: *** [libtokyocabinet.so.8.22.0] 錯(cuò)誤 1
//******************************************************************************************************************************//
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
make: *** [libtokyocabinet.so.8.22.0] 錯(cuò)誤 1
凡是這兩個(gè)問題,很重要一個(gè)原因是bzip的開發(fā)依賴包沒有裝好,或者沒裝。
首先要下載這兩個(gè)安裝包
1、bzip2-1.0.4.tar.gz
2、zlib-1.2.3.tar.gz
我上網(wǎng)找過很多解決方法。但是問題依舊,依然編譯不過去。
即使用了ubuntu的apt-get install libbz2-dev。。。
網(wǎng)上一般都是修改bzip源碼包的Makefile文件。(裝個(gè)小東西,知識(shí)一定要豐富。
網(wǎng)上的解決方法:
在gcc編譯參數(shù)中加入-fPIC(對(duì)于該參數(shù),我在備注中有解釋,適合菜鳥級(jí)c語言用戶理解)
但是問題,有時(shí)后就只刁難你,還是不怎么奏效。
我總結(jié)了一下方法:
1、注意順序問題:(這三個(gè)東西一環(huán)扣一環(huán),真麻煩)
如果發(fā)現(xiàn) libbz2.a: could not read symbols: Bad value
就應(yīng)該把/usr/local/lib中的libbz2.a刪掉
進(jìn)入解壓縮的zlib-1.2.3目錄,用make clean命令清理一下。
同樣,/usr/local/lib/libz.a: could not read symbols
操作同上,刪掉libz.a,把bzip2-1.0.4目錄的編譯文件清理一下。
如果找不到這兩個(gè)文件的位置,可以在終端敲上:
find -name libbz2.a
....
2.修改zlib-1.2.3的Makefile文件
把gcc的編譯參數(shù)加上 -fPIC
原文:CFLAGS=-O3 -DUSE_MMAP
修改為:CFLAGS=-O3 -DUSE_MMAP -fPIC
如果還是過不去,勸你硬來CC=gcc 直接后面跟上-fPIC讓他們?nèi)开?dú)立編譯
重申:如果你之前編譯過了,一定要用make clean清掉,否則還是徒勞。。
最后make 還有 make install
3.修改bzip2-1.0.4的Makefile文件
CC=gcc -fPIC 《===這個(gè)就是我發(fā)飆的結(jié)果,全部讓他 -fPIC
AR=ar
RANLIB=ranlib
LDFLAGS=
BIGFILES=-D_FILE_OFFSET_BITS=64
CFLAGS=-fPIC -Wall -Winline -O2 -g $(BIGFILES) 《===當(dāng)然這里也可以加上
同樣,bzip2有一個(gè)Makefile-libbz2_so的文件,編譯時(shí)會(huì)調(diào)用,當(dāng)然你也可以單個(gè)編譯:
make -f Makefile-libbz2_so
make clean <------------保守建議,還是clean一下
make
make install
具體bzip2的安裝方法可以參照:
http://lamp.linux.gov.cn/Linux/LFS-6.2/chapter06/bzip2.html
最后重新安裝tc
我用的是最新版本:tokyocabinet-1.4.31.tar.gz
估計(jì)應(yīng)該修復(fù)了一些bug。
make clean
make
當(dāng)輸出:
#================================================================
# Ready to install.
#================================================================
一切ok,裝吧 make install
附錄二: flares.conf配置內(nèi)容如下:
data-dir = /home/flare/flare-1.0.12/data/slave
index-server-name = localhost
index-server-port = 12120
log-facility = local5
max-connection = 256
mutex-slot = 32
proxy-concurrency = 2
server-name = 127.0.0.1
server-port = 12124
storage-type = tch
thread-pool-size = 16
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版