部署运行
目前 UrnaDB 提供多种运行部署方式,包括基于 Docker 镜像的容器化部署和适用于 Linux 系统的可执行文件。作为 UrnaDB 的开发者,我更推荐在长期服务场景中采用 Linux 裸机部署。相比容器化方式,裸机部署能够更充分地利用系统资源,并支持用户根据实际需求灵活调优存储引擎参数,从而实现更高的性能稳定性与资源利用率。建议优先选择主流 Linux 发行版,如 RHEL、SUSE 或 Ubuntu,以获得最佳运行效率与服务保障。
Docker 容器
使用 Docker 可以快速部署 urnadb:latest 的镜像来测试 UrnaDB 提供的服务,运行以下命令即可拉取 UrnaDB 镜像:
docker pull auula/urnadb:latest
运行 UrnaDB 镜像启动容器服务,并且映射端口到外部主机网络,执行下面的命令:
docker run -p 2668:2668 auula/urnadb:latest
UrnaDB 提供使用 RESTful API 的方式进行数据交互,理论上任意具备 HTTP 协议的客户端都支持访问和操作 UrnaDB 服务实例。在调用 RESTful API 时需要在请求头中添加 Auth-Token
进行鉴权,该密钥由 UrnaDB 进程自动生成,可通过容器运行时日志获取,使用以下命令查看启动日志:
root@2c2m:~# docker logs 66ae91bc73a6
__ __ ___ ___
/ / / /______ ___ _/ _ \/ _ )
/ /_/ / __/ _ \/ _ `/ // / _ |
\____/_/ /_//_/\_,_/____/____/ v1.1.2
UrnaDB is a NoSQL database support diverse data types and transactions.
UrnaDB Software License: Apache 2.0 Website: https://urnadb.github.io
[UrnaDB:C] 2023/06/04 18:35:15 [WARN] The default password is: QGVkh8niwL2TSkj72icaKBC9B
[UrnaDB:C] 2023/06/04 18:35:15 [INFO] Logging output initialized successfully
[UrnaDB:C] 2023/06/04 18:35:15 [INFO] Loading and parsing region data files...
[UrnaDB:C] 2023/06/04 18:35:15 [INFO] Regions compression activated successfully
[UrnaDB:C] 2023/06/04 18:35:15 [INFO] File system setup completed successfully
[UrnaDB:C] 2023/06/04 18:35:15 [INFO] HTTP server started at http://192.168.31.221:2668 🚀
Important
采用容器的方式运行有多的弊端:例如 UrnaDB 容器的数据目录和宿主机没有配置正确的映射关系,会导致每次重启之后数据丢失;另外一个问题就是 Docker 这种容器引擎会在正常关闭容器时引入超时机制,如果 UrnaDB 中的内存索引非常大的时候就会导致无法正常退出,Docker 默认超时机制会强制关闭 UrnaDB 所在容器,导致内存中数据无法正常持久化到磁盘。
Linux 部署
推荐使用 UrnaDB 的最佳方式是通过 Linux 直接部署运行,如果测试阶段你使用的 Windows 系统可以使用虚拟机软件安装 Linux 系统进行测试,也可以使用 WSL 的方式使用 Windows 中的 Ubuntu 子系统进行测试。UrnaDB 的软件包可以从 GitHub 的 Releases 页面下载,下载得到的是 zip 压缩包,使用 unzip
命令对压缩包进行解压,命令如下:
unzip urnadb-linux-amd64.zip
解压完成之后将获得对应的 UrnaDB 二进制可执行文件,可直接使用该文件启动 UrnaDB 数据库服务进程,启动命令如下:
./urnadb --config=config.yaml
Important
在启动 UrnaDB 数据库进程时可以通过命令行传入多个的参数,这些参数可以调整 UrnaDB 数据库一些运行参数和必要配置信息,如果什么都不传入直接启动 UrnaDB 数据库进程,被启动的 UrnaDB 进程会直接使用内置的默认参数进行运行。
下面是 UrnaDB 数据库进程在启动时能支持传入的命令行参数说明表格:
参数 | 作用说明 |
---|---|
–config | 指定自定义配置文件路径 |
–port | 指定服务器所监听的端口号 |
–auth | 指定客户端连接时所需要认证密钥 |
–daemon | 指定是否使用后台守护进程方式运行 |
–debug | 开启日志跟踪调试程序运行状态 |
例如使用后台守护进程并且指定认证密钥的方式启动一个 UrnaDB 的数据库进程,命令如下:
./urnadb --auth=password --daemon
Tip
相比仅通过命令行传入参数的方式,UrnaDB 还支持通过配置文件进行引导启动,也就是上面的 --config
参数。配置文件支持更丰富的参数选项,使用户能够更加精细地控制运行时的各项设置,从而实现更灵活、更精准的部署与调优,可以阅读下一章节的内容了解更多详情。