vi /etc/aerospike/aerospike.conf
service {} #调整参数和进程所有者
network { #用于配置集群内和应用程序节点通讯
service {} #工具/应用程序通信协议,应用、工具、远程XDR通过此端口访问AS集群
fabric {} #集群内部通讯、备份等操作用此端口
info {} #管理员telnet控制台协议
heartbeat {} #集群心跳端口,用来构建和维护集群
}
security { #(可选,仅企业版)启用集群上的ACL
enable-security true
}
logging {} #记录配置
xdr { #(可选,仅企业版)配置交叉数据中心复制
datacenter {} #远程数据中心节点列表
}
namespace { #定义名称空间记录策略和存储引擎
storage {} #配置持久性或缺乏持久性
set {} #(可选)设置特定的记录策略
}
配置步骤:
配置网络服务和心跳子上下文
配置命名空间
配置日志记录和日志轮换
(可选)配置安全性
(可选)配置机架感知
(可选)配置跨数据中心复制
配置样例
service {
user root
group root
paxos-single-replica-limit 1 # 副本数自动减少到1的节点数。
pidfile /var/run/aerospike/asd.pid
service-threads 20 # 4.7+应为vCPU数量的5倍,并且至少有一个SSD名称空间,否则为vCPU数量
proto-fd-max 15000
node-id-interface eth1
}
logging {
# 日志文件必须是绝对路径,不会自动建目录,需要已有的目录
file /var/log/aerospike.log {
context any info
}
}
network {
service {
address any #服务正在侦听的NIC的IP。
port 3000 #服务正在监听的端口。
access-address 192.168.1.100 #访问该服务的客户端的IP地址。
}
fabric {
address any
port 3001 # 集群内通信端口(迁移,复制等)
}
info {
address any
port 3003 #纯文本telnet管理端口。
}
# 基于UDP的模式
heartbeat {
mode multicast #使用多播发送心跳
address 239.1.99.2 #公网组播地址
port 9918 #组播端口
address 192.168.1.100 #将本机加入集群,用于发送心跳和绑定交换矩阵端口的NIC的IP
interval 150 #心跳之间的毫秒数
timeout 10 #在节点超时之前要等待的心跳间隔数
}
#基于TCP的模式
# heartbeat {
# mode mesh # 使用网格(单播)协议发送心跳
# address 192.168.1.100 # 该节点正在侦听心跳的NIC的IP
# port 3002 # 该节点正在侦听心跳的端口
# mesh-seed-address-port 192.168.1.100 3002 # 集群中种子节点的IP地址
# mesh-seed-address-port 192.168.1.101 3002 # 集群中种子节点的IP地址
# interval 150 # 心跳之间的毫秒数
# timeout 20 # 使节点超时之前要等待的心跳间隔数
# }
}
#纯内存数据储存方案
namespace test_memory {
replication-factor 2
memory-size 4G
default-ttl 30d # 30天,使用0永不过期
storage-engine memory
}
# SSD及索引储存方案
namespace bar_ssd {
memory-size 4G # 主索引和辅助索引的最大内存分配
# 警告-定义的原始分区设备中的遗留数据将被擦除。
# 这些分区不能被文件系统挂载。
storage-engine device { #配置存储引擎以使用持久性添加原始设备。最大大小为2 TiB
device /dev/sdb3
device /dev/sdc3
device /dev/sdd3
device /dev/sde3
# 下面的2行针对SSD进行了优化。
scheduler-mode noop
write-block-size 128K #调整块大小以使其有效用于SSD。
}
}
#HDD及内存混合存储方案
namespace bar_hdd_mem {
memory-size 4G # 主索引和辅助索引的最大内存分配
single-bin true #索引数据必须为true。
data-in-index true #在索引整数存储中启用。
#配置存储引擎使用持久性
storage-engine device {
file /opt/aerospike/data1 #服务器上数据文件的位置。
file /opt/aerospike/data2 #服务器上数据文件的位置。
# device /dev/sdb3 #使用文件的可选替代方法。
filesize 16G #每个文件的最大大小GB,接近这个值将不再写入数据。最大大小为2TiB
data-in-memory true #设置data-in-memory设置为true,开启内存存储机制
}
}
#HDD及索引储存方案
namespace bar_hdd {
#设置备份数量,针对集群
replication-factor 2
memory-size 4G # 主索引和辅助索引的最大内存分配
single-bin true #索引数据必须为true。
data-in-index true #在索引整数存储中启用。
#配置存储引擎使用持久性
storage-engine device
file /opt/aerospike/data1 #服务器上数据文件的位置。
file /opt/aerospike/data2 #服务器上数据文件的位置。
# device /dev/sdb3 #使用文件的可选替代方法。
filesize 16G #每个文件的最大大小GB。最大大小为2TiB
}
#数据有效期
default-ttl 30d #写入数据后保留多长时间(以秒为单位)
high-water-disk-pct <百分比> #磁盘到多少开始提前过期(记录提前过期)
high-water-memory-pct <百分比> #内存到多少开始提前过期(记录提前过期)
stop-writes-pct <百分比> #内存到多少禁止写操作
# 设置某个set不被清洗
set {
set-disable-eviction true # 不被清洗
}
# 设置某个set最多容纳的记录数(record)
set {
set-stop-writes-count 5000 # 可以写入的记录数限制为5000。
}
}