高性能分布式No SQL数据库Aerospike(二)——安装部署

简介: 高性能分布式No SQL数据库Aerospike(二)——安装部署

不同发行版


服务端名称 Linux系统发行版
aerospike-server-community-3.5.9-debian6.tgz Debian 6
aerospike-server-community-3.5.9-debian7.tgz Debian 7
aerospike-server-community-3.5.9-el6.tgz Centos 6
aerospike-server-community-3.5.9-ubuntu12.04.tgz Ubuntu 12.04
aerospike-server-community-3.5.9.tar.gz 所有linux


服务端安装


访问aerospike的官网地址:www.aerospike.com/artifacts/,从中获取所需的安装资源。

下图为www.aerospike.com/artifacts/a…中的内容:


root安装


在centos中使用rpm包安装比较方便,可以同时安装server和tools包。但是rpm安装需要root权限,只能在有root权限时才能使用。安装包为特性linux发行版的安装包,如centos 6使用aerospike-server-community-3.5.9-el6.tgz,debian7上使用aerospike-server-community-3.5.9-debian7.tgz。

使用rpm安装比较简单,解压后运行asinstall脚本即可。

1671161065716.jpg


非root安装


没有root权限时,需要使用非root权限的安装方式。安装包为linux通用版安装包,如:aerospike-server-community-3.5.9.tar.gz。

1671161073442.jpg

安装后默认生成的配置文件中,最大文件描述符个数为15000个(参数proto-fd-max),可能会超过机器的配置,故在没有root权限时会无法启动。我们可以把配置文件中的参数改小,或者把系统最大文件描述符改大。不修改的错误日志如下:

Jan 09 2016 15:05:39 GMT: INFO (config): (cfg.c::3104) }
Jan 09 2016 15:05:39 GMT: CRITICAL (config): (cfg.c:as_config_post_process:3119) 1024 system file descriptors not enough, config specified 15000
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::93) SIGABRT received, aborting Aerospike Community Edition build 3.5.15
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: found 9 frames
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 0: /home/wg/aerospike-server/bin/bin/asd(as_sig_handle_abort+0x59) [0x4542b1]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 1: /lib/x86_64-linux-gnu/libc.so.6(+0x36ff0) [0x7fa4fa4ccff0]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 2: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x39) [0x7fa4fa4ccf79]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 3: /lib/x86_64-linux-gnu/libc.so.6(abort+0x148) [0x7fa4fa4d0388]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 4: /home/wg/aerospike-server/bin/bin/asd(cf_fault_event+0x271) [0x4e7604]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 5: /home/wg/aerospike-server/bin/bin/asd(as_config_post_process+0x232) [0x439589]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 6: /home/wg/aerospike-server/bin/bin/asd(main+0x203) [0x434ab9]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 7: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fa4fa4b7ec5]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 8: /home/wg/aerospike-server/bin/bin/asd() [0x4337e9]

把配置文件中文件描述符的个数从15000改成1024就可以启动了。

service {
  user wg
  group wg
  run-as-daemon
  paxos-single-replica-limit 1 # Number of nodes where the replica count is automatically reduced to 1.
  pidfile /home/alvin/aerospike-server/bin/var/run/aerospike.pid
  transaction-queues 8
  transaction-threads-per-queue 8
  proto-fd-max 1024
  work-directory /home/alvin/aerospike-server/bin/var
}

启动一段时间后,日志正常。文件描述符个数改小后会影响系统性能。


配置文件


配置文件地址:/etc/aerospike/aerospike.conf

Aerospike安装完成后,主要需要配置两个部分的内容:集群和命名空间(namespace)


集群


Aerospike的集群支持两种模式:

multicast(多播) :,基于UDP协议,集群中所有节点同时在同一个地址发布自己的信息和在该地址监听其他节点的信息,这样所有节点都能知道其他节点的存在了。因此,该模式下只需要配置一个UDP地址即可。

mesh(点播) :基于TCP协议,集群中的每个节点都和其他节点建立一对一的连接(所以称为点播),用于完成节点的发现。因此,在这种模式下,配置文件中需要配置集群中每个节点的地址。但是,当集群添加节点时,由于添加的这个节点的地址之前是不知道的,所以老的节点一般是没有配置新加节点的地址,这时也不需要重启老的节点,只需要在新加入的节点中配置集群中其他节点的地址就可以了。

multicast配置

1671161097371.jpg

mesh配置
mode mesh
port 3002
mesh-seed-address-port 10.100.1.22 3002
mesh-seed-address-port 10.100.1.23 3002
mesh-seed-address-port 10.100.1.24 3002
interval 250
timeout 10

1671161105218.jpg


1.3.2 命名空间(namespace


Aerospike的数据分为4个层次:namespace(类比关系数据库的schema)、set(类比关系数据库的table)、key(类比关系数据库的一行)、bin(类比关系数据库的一列,Aerospike对bin有一些限制:bin的名称不可以超过14个字节、bin的数目不可以超过65536)。

其中,namespace是不能动态创建的,需要在配置文件中配置后才能使用。另外,集群中每个节点关于命名空间的配置要完全相同(包括命名空间的个数,和每个命名空间的配置)

命名空间的常用配置项配置大致如下(部分参数需要根据具体环境调整):

namespace bsfit {         #bsift为命名空间的名称
replication-factor 2 #复制因子,代表每条数据在集群中保留的个数。如2表示每条数据存两份,集群中某个节点挂掉后不会丢数据
memory-size 4G #最大可以使用的内存数量
default-ttl 30d #ttl(time to live:数据存活时间)30 天, 0表示永不过期
high-water-memory-pct 70 #内存使用率达到70%,将启动LRU,清理设置过期时间的数据。默认60%
stop-writes-pct 90 #内存使用率达到90%,将不可以再写入(可以删除)。默认90%
storage-engine memory #数据存储模式,memory表示数据全部存放在内存中,这也是流立方最推荐的配置方式
# https://discuss.aerospike.com/t/why-aerospike-evicted-data/165
}


1.3.3 绑定网卡


当部署的服务器有多张网卡时,需要指定aerospike服务端监听的网卡。这个需要通过如下参数配置:

例如:

access-address 10.100.1.23

1671161120248.jpg


1.3.4 关闭Aerospike telemetry功能


社区版本的 AS,在通过 rpm/deb 包默认安装的时候,默认打开了 telemetry 的功能。默认配置是每 10 分钟,向服务器地址telemetry.aerospike.com发送 as 的使用情况。请各项目在实施部署后,关闭此功能。

关闭的方式:找到/etc/aerospike/telemetry.conf,把disable = false那行换成disable = true。完成以后重启 as 服务,并检查/var/log/aerospike/aerospike.log, 确认 telemetry 功能关闭。

[asd]
config-file = /etc/aerospike/aerospike.conf
[logging]
logfile = /var/log/aerospike/telemetry.log
loglevel = info
[main]
disable = false
interval = 600
home-url = https://telemetry.aerospike.com
user = aerospike
group = aerospike

把disable = false那行换成disable = true。完成以后重启 as 服务,并检查/var/log/aerospike/aerospike.log, 确认 telemetry 功能关闭。

日志显示:Aerospike Telemetry Agent: Aerospike anonymous data collection is INACTIVE. For further information, see www.aerospike.com/aerospike-t…

(CentOS7.x上可执行 journalctl -u aerospike -a -o cat --since "2019-06-26" --until "2019-06-27" | grep Telemetry)


管理日志文件


日志时间


从3.7.0.1版本开始支持,在service域中提供了参数log-local-time,默认为false。

默认情况下,Aerospike服务器日志在GMT中带有时间戳。将此配置设置true为将日志设置为具有本地时间戳(还显示GMT的偏移量)。

例: Dec 12 2015 18:52:39 GMT-0800: INFO (as): (as.c::494) service ready: soon there will be cake!

log-local-time从3.7.0.1版本开始支持,默认为false。

相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
目录
相关文章
|
6月前
|
存储 NoSQL Redis
阿里云高性能数据库Tair(兼容 Redis)收费价格,稳定可靠成本低
阿里云高性能云数据库Tair兼容Redis,提供Redis开源版和Tair企业版,支持多种存储介质与灵活扩展,适用于高并发场景。Tair具备亚毫秒级稳定延迟,保障业务连续性。价格方面,Redis开源版年费从72元起,Tair企业版年费从1224元起,具体费用根据配置不同有所变化。
|
6月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1122 152
|
6月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
861 156
|
6月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
588 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
5月前
|
人工智能 运维 NoSQL
云栖大会|AI浪潮下的NoSQL演进:下一代数据库的破局之道
AI浪潮下的NoSQL演进:下一代数据库的破局之道
|
5月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
327 6
|
6月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
662 8
|
6月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
6月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
451 1
|
6月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,

热门文章

最新文章