亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Cassandra C++/NodeJs開發(fā)環(huán)境

系統(tǒng) 2941 0

工作的需要,開始更多地傾向于去中心化的結(jié)構(gòu),目前看來Cassandra算是去中心化DB中性能/管理最熱門的選擇,崇尚其P2P的理念。

自身原因?qū)AVA不擅長(周圍寫C的好少),還是更熱衷于C++/JS,所以把Cassandr C++/NODEJS(內(nèi)網(wǎng)環(huán)境下)搭建的過程記錄下來,共同好者分享。

1,一些條件:

VituralBox 4.3 Win7 x64?

Centos 6.4 x64_86(來自某國內(nèi)某鏡像網(wǎng)站)

thrift-0.9.1.tar.gz

openssl-1.0.1e.tar.gz

apache-cassandra-2.0.2-bin.tar.gz

repo指向

?

[base]
name=CentOS-$releasever - Base
baseurl=file:///media
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

?

2,預埋YUM庫

//DVD1

yum install -y automake libtool flex bison pkgconfig gcc-c++ boost-devel zlib-devel python-devel ruby-devel openssl-devel

yum install -y crypto-utils openssl

//DVD2

rpm -ivh libevent-devel-1.4.13-4.el6.x86_64.rpm libevent-doc-1.4.13-4.el6.noarch.rpm libevent-headers-1.4.13-4.el6.noarch.rpm

(libevent-devel 純本地盤似乎不支持yum)

3,openssl安裝

./config no-shared no-idea no-mdc2 no-rc5 zlib enable-tlsext no-ssl2 --prefix=/usr/local –openssldir=/usr/local/openssl

make depend

make?

make install

4,thrift安裝(依賴boost、libcry、libssl)

./configure

make

make install

5,生成CPP 4 CASSANDR驅(qū)動

cd /opt/cassandra/interface

thrift --gen cpp cassandra.thrift

[root@cent4 gen-cpp]# ll
total 2488
-rwxr-xr-x. 1 root root 1420936 Nov 21 07:33 aa
-rw-r--r--. 1 root root 3292 Nov 21 09:11 aa.cpp
-rw-r--r--. 1 root root 215304 Nov 19 09:11 aa.o
-rw-r--r--. 1 root root 390 Nov 19 20:32 cassandra_constants.cpp
-rw-r--r--. 1 root root 456 Nov 19 20:31 cassandra_constants.h
-rw-r--r--. 1 root root 474152 Nov 19 07:02 Cassandra.cpp
-rw-r--r--. 1 root root 186568 Nov 19 07:02 Cassandra.h
-rw-r--r--. 1 root root 9713 Nov 19 07:06 Cassandra_server.cpp
-rw-r--r--. 1 root root 9713 Nov 19 07:02 Cassandra_server.skeleton.cpp
-rw-r--r--. 1 root root 135803 Nov 19 07:02 cassandra_types.cpp
-rw-r--r--. 1 root root 69527 Nov 19 07:02 cassandra_types.h

5,編譯C++ SAMPLE

.bash_profile 加下 ?export LD_LIBRARY_PATH=/usr/local/lib

?g++ -I/usr/local/include/thrift aa.cpp ?Cassandra.cpp cassandra_types.cpp -L/usr/local/lib -lthrift ?-o aa

6,加載Nodejs SAMPLE

nodejs使用的是某大神寫的node-cassandra-cql-master,比較好用。

對于內(nèi)網(wǎng)的服務器,可以先CLONE一臺能上網(wǎng)的,npm install?node-cassandra-cql-master,然后把nodejs和?node-cassandra-cql-master直接scp就能使用

var cql = require('node-cassandra-cql');
var client = new cql.Client({hosts: ['192.168.137.104:9042'], keyspace: 'mykeyspace'});


client.execute('select * from users',['ConsistencyLevel.QUORUM'],
function(err, result)
{
if (err)
console.log('execute failed: '+err);
else
console.log('xxxx' + result.rows+'\n');
}
);

//client.shutdown();

client.streamRows('select * from standard9',
function(err, row) {
//the callback will be invoked per each row as soon as they are received
if (err)
console.log("Oh dear..."+err);
else {
console.log('sssse', row.get('name')+':'+row.get('age'));
}
}
);

==============================

7,建張SAMPLE表

create column family standard9 with
key_validation_class=UTF8Type and
comparator = UTF8Type and
column_metadata =
[
{column_name:name ,validation_class:UTF8Type},
{column_name: value, validation_class:UTF8Type},
{column_name: age, validation_class:UTF8Type},
];

插一下垃圾數(shù)據(jù)

insert into standard9 (key,name, value) values ('1745','aaa', 'bbb');
insert into standard9 (key,name, value) values ('1744','QWER', 'ddd');
insert into standard9 (key,age,name, value) values ('2931','99', 'ZXCV','AAA');

8,把system_autch replication_factor增加下

? ALTER KEYSPACE system_auth WITH REPLICATION = ?{'class' : 'NetworkTopologyStrategy', 'dc2' : 2};

建議全keyspace走NTSnitch

否則會遇到cassandra的一致性報錯

9,接下來跑apache給的examples

注意其中的cass.set_keyspace("mykeyspace");

string key = "2222";還有一些值需要設(shè)置為true的屬性。

一些接口說明的文檔網(wǎng)上都有,不再詳述。

10,總結(jié)

走thrift可以讓開發(fā)人員更好地掌握數(shù)據(jù)結(jié)構(gòu)、接口定義及一些thrift底層原理。橫擴移植需要一些基礎(chǔ)庫。

走NodeJS,開發(fā)效率相對較高,橫擴移植能力強。

未來,如果cassandra能增補regularexpress或者rawdevice,多吸引點粉絲,就更好了。

?

?

Cassandra C++/NodeJs開發(fā)環(huán)境


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日本综合一区二区三区 | 亚洲精品综合一区二区三区在线 | 午夜亚洲精品久久久久久 | 久久综合九色 | 这里是九九伊人 | 国产在线精彩视频 | 久久香蕉网 | 国产一区二区精品久 | 亚洲黄色大片 | 爱爱的免费视频 | 九九福利 | 成人欧美在线观看免费视频 | 国产精品乱码在线观看 | 国产欧美亚洲精品综合在线 | 亚洲精品高清国产一久久 | 午夜影院免费在线观看 | 香蕉视频在线观看黄 | 国产精品久久久久久永久牛牛 | 日本精品中文字幕在线不卡 | 国产精品久久国产三级国电话系列 | 日本中文在线播放 | 九热爱视频精品视频 | 国产精品美女自在线观看免费 | 国产区一区 | 操一操 | 第一福利视频网 | 伊在人亚洲香蕉精品区麻豆 | 亚洲国产视频在线 | 亚洲啪啪免费视频 | 久久亚洲综合中文字幕 | 一级片视频网站 | 国产日韩在线播放 | 国产全黄a一级毛片视频 | 9久热这里只有精品视频在线观看 | 国产精品va一区二区三区 | 国产精品成人观看视频国产 | 一本大道高清香蕉中文大在线 | 96精品视频在线播放免费观看 | 久久99热成人精品国产 | 欧洲做视频在线观看 | 国产精品免费视频能看 |