aerospike 使用总结

使用aero近一年的时间,坑踩了一些,也做了一些尝试,总的来看,aero是个很不错的分布式存储服务。

我们使用的是索引在内存,数据在磁盘的方式,持久化存储使用,心跳使用的是mesh方式,因为涉及到跨网段,跨机房,使用的是社区版本,基线是3.6.0,后续新搭建的服务一直使用最新的稳定版本,在aero的官网上可以看到,社区版本的更新速度非常快,说明之前bug还是比较多的。。

aero官网:http://www.aerospike.com/


使用中也有一些小的注意点:

1. 一次分配好存储空间和使用的数据类型,因为aero集群扩容和兼容都会非常慢,涉及到大数据量的迁移,迁移过程中,aero集群的响应时间有抖动。

2. 对于复杂数据类型-LDT数据类型,最好区分可丢和不可丢数据,并且不要使用多列,每个key一列,这样在高并发下可以避免key冲突的几率。

3. string类型的数据和CDT数据使用的namespace最好独立开。

4. 只有在string类型数据上可以使用多列,并且可以一起获取。

5. 对于大存储机器,一个机器部署多个服务,会比一个机器只起一个服务,用满整个磁盘要好,因为数据恢复的过程中会重现建立内存索引,1T的数据恢复会非常非常慢,多个服务是为了把单服务的数据减少,加快启动速度。

6. 可以考虑搭建多个aero集群,比如10台机器,可以搭建一个集群,每个上面一个aero服务,也可以搭建两个机器,每个集群上面各一个aero服务,最大的好处就是减少key冲突,减少单个集群的数据存储,在集群扩容减容的时候,只有一个集群会抖动,而不是所有服务都抖动。类似于分库的方式。

你可能感兴趣的:(aerospike)