Apache Cassandra Learning Step by Step (5): 实战性的JTwissandra项目
在完成了Apache Cassandra的四个基本学习步骤之后,可以尝试下实战性的编码了。
?
如有必要,建议再简单回顾一下:
?
?
?
?
?
?
?
?
基于第四点的建模思路,接下来我们要做的,就是搭建一个叫做JTwissandra的实战性项目,就是所谓的Java版本的Twissandra了。
?
其目的是为了以Twitter为假想对象,使用最简约(或者直接说简陋得了)的建模和实现,表达采用Apache Cassandra作为NoSQL平台的基本实现过程。
?
JTwissandra的基本编码环境:
1. Maven来管理
2. JUnit来测试
?
3. 基于hector client来作为Apache Cassandra的Java 客户端
?
大家可以通过下面的Github链接,直接clone出来最新的代码:
JTwissandra:?https://github.com/itstarting/jtwissandra
?
也欢迎大家Fork或在这里直接拍砖——反正咱在NoSQL也是新手,脸皮厚点不要紧啦:)
?
1. 首先需要一个HFactoryHelper来初始化并建立Cassandra的客户端连接池和必要的对象:
?
??
?
3.4?TweetService
?
?这是个一锅端的测试用例,全部跑一次可以覆盖几乎所有的业务服务逻辑。
?
?
5. 最后,别忘了在跑之前创建必要的schema:
?
drop keyspace JTWISSANDRA;create keyspace JTWISSANDRAwith placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy'and strategy_options = [{replication_factor:1}];use JTWISSANDRA;create column family USERwith comparator = UTF8Type and key_validation_class = UTF8Typeand default_validation_class = UTF8Typeand column_metadata = [{column_name: user_name, validation_class: UTF8Type, index_name:user_name_idx, index_type:KEYS }{column_name: user_password, validation_class: UTF8Type}{column_name: create_timestamp, validation_class: LongType, index_name:create_timestamp_idx, index_type:KEYS}];create column family FRIENDwith comparator = LongType and key_validation_class = UTF8Typeand default_validation_class = UTF8Type;create column family FOLLOWERwith comparator = LongType and key_validation_class = UTF8Typeand default_validation_class = UTF8Type;create column family TWEETwith comparator = UTF8Type and key_validation_class = UTF8Typeand default_validation_class = UTF8Typeand column_metadata = [{column_name: user_uuid, validation_class: UTF8Type}{column_name: tweet_content, validation_class: UTF8Type}];create column family TIMELINEwith comparator = LongType and key_validation_class = UTF8Typeand default_validation_class = UTF8Type;?
6.?其他?
?
有些咋想,就不贴了吧,略过……有兴趣的可从Github clone下来跑跑看。
?
?
?
==========所发现的问题,接下来再谈再讨论,最最希望有丰富经验的高手前来助阵,去我谜团,谢谢!==========
?