浏览 4522 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2014-11-22
最后修改:2014-12-25
最新代码已托管到oschina;https://git.oschina.net/wjyuian/jssdb
前两天,我在一个闲聊群中,看到同事给我推荐一个noSQL的数据库——SSDB 。说实话,再一次听到noSQL的时候,感觉这是另一个MongoDB,会有非常简单的安装配置、轻松写意的主从配置、甚至是分布式分片。不过,话虽如此,作为一个勇于接收新鲜事物的码农来说,对于这种我第一次听说的数据库,肯定不会就此放过它。 进入ssdb的官网一看,乖乖,中文的各种介绍瞬间让我感到轻松不少,哈哈。然后就下了安装包,在公司的测试服务器上按照步骤,迅速完成了安装。当时只有单主服务器,不过命令行操作风格确实和redis几乎一模一样,相当熟悉。 接下来,我当然得去网上去查查,它到底有什么过人的地方,这不查不知道一查吓一跳啊http://www.ideawu.net/blog/ssdb。 “SSDB 是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持zset(sorted set), map(hash), kv, list 等数据结构, 用来替代或者与 Redis 配合存储十亿级别的列表数据. SSDB 同时也被国内外业界的众多互联网企业所使用, 如 QIHU 360, TOPGAME, 汽车之家, 比亚迪等.” “2014开源中国开源世界高峰论坛, 中国开源优秀项目奖项目” 紧接着在这个网站上找到了关于SSDB另一个吸引人的特性——多主多从模式,不仅可以读写分离,而且都解决了单点故障。鄙人是一个在Java岛上蹦跶了5年的程序猿,自然对java的ssdb包格外关注。经过一番简单的测试,对java的api有了初步的使用经验,但是好像这个简单的包不支持主连接池啊,而连接池在java项目中的重要性是众所周知的。这个时候,本人就萌发了一个念头,自己仿照jedis连接池的方式,来写一个jssdb的小项目。虽然我知道,肯定已经有技术大拿在第一时间出品了java端支持ssdb的连接池项目了,例如ssdb4j。 不过“码农,就是这么任性”,反正自己写写,练练手,顺便熟悉下GitHub的相关操作,于是就诞生了我这个Jssdb【https://github.com/wjyuian/jssdb】项目。它有如下特性:支持多主多从,宕机自动连接下一个可用服务器,服务器恢复后自动进入待连接队列(已测试) ------------------------------------------------------ 属性文件中配置: MASTER_HOST_PORT_TIME=ip1:port1:timeout1;ip2:port2:timeout2 SLAVER_HOST_PORT_TIME=ip3:port3:timeout3;ip4:port4:timeout4 ------------------------------------------------------ 在spring中集成jssdbClient,代码如下: <bean id="jssdbPoolConfig" class="com.wj.jssdb.pool.JssdbPoolConfig" > <property name="testOnBorrow" value="true"/> <!-- set for re-connect --> <property name="maxActive" value="30" /> <property name="maxIdle" value="10" /> <property name="maxWait" value="1000" /> </bean> <bean id="masterJssdbPool" class="com.wj.jssdb.pool.JssdbPool"> <constructor-arg index="0" ref="jssdbPoolConfig"/> <constructor-arg index="1" type="String" value="${MASTER_HOST_PORT_TIME}" /> </bean> <bean id="slaverJssdbPool" class="com.wj.jssdb.pool.JssdbPool"> <constructor-arg index="0" ref="jssdbPoolConfig"/> <constructor-arg index="1" type="String" value="${SLAVER_HOST_PORT_TIME}" /> </bean> <!-- write/read client --> <bean id="jssdbClient" class="com.wj.jssdb.pool.JssdbClient"> <property name="masterJssdbPool" ref="masterJssdbPool" /> <property name="slaverJssdbPool" ref="slaverJssdbPool" /> </bean> 此项目还没有经过严格的性能测试,还不清楚连接池会不会有泄漏的情况。其中JssdbClient类中,目前只封装了我在项目中比较常用到的接口,还有一大部分接口没有实现,欢迎各位有兴趣的童鞋一同来完善这个小小的项目。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2014-11-27
支持下任性的LZ
|
|
返回顶楼 | |
发表时间:2015-04-13
Nosql详细讲解:http://dwz.cn/GFbSI
|
|
返回顶楼 | |