部署 Raft listener¶
全文索引的数据是异步写入 Elasticsearch 集群的。流程是通过 Storage 服务的 Raft listener(简称 listener)这个单独部署的进程,从 Storage 服务读取数据,然后将它们写入 Elasticsearch 集群。
前提条件¶
- 已经了解全文索引的使用限制。
- 准备一台或者多台服务器,以部署 Raft listener。
注意事项¶
- 请保证 NebulaGraph 各服务(Metad、Storaged、Graphd、listener)有相同的版本。
- 请保证 listener 所在机器的时区与 NebulaGraph 各服务所在机器的时区一致。
- 只能为一个图空间一次性添加所有的 listener 机器。尝试向已经存在有 listener 的图空间再添加新 listener 会失败。因此,需在一个命令语句里完整地添加全部的 listener。
部署流程¶
第一步:安装 listener 服务¶
listener 服务与 storaged 服务使用相同的二进制文件,但是二者配置文件不同,进程使用端口也不同。我们在所有需要部署 listener 的服务器上都安装 NebulaGraph,但是不启动服务。详情请参见使用 RPM 或 DEB 安装包安装 NebulaGraph 。
第二步:准备 listener 的配置文件¶
在etc
目录内将nebula-storaged-listener.conf.default
或nebula-storaged-listener.conf.production
去掉后缀命名为nebula-storaged-listener.conf
,然后修改配置内容。
大部分配置与 Storage 服务的配置文件相同,本文仅介绍差异部分。
名称 | 预设值 | 说明 |
---|---|---|
daemonize |
true |
是否启动守护进程。 |
pid_file |
pids/nebula-storaged-listener.pid |
记录进程 ID 的文件。 |
meta_server_addrs |
- | 全部 Meta 服务的 IP(或主机名)和端口。多个 Meta 服务用英文逗号(,)分隔。 |
local_ip |
- | listener 服务的 IP(或主机名)。请使用真实的 listener 机器 IP 替换127.0.0.1 。 |
port |
- | listener 服务的 RPC 守护进程监听端口。 |
heartbeat_interval_secs |
10 |
Meta 服务的心跳间隔。单位:秒(s)。 |
listener_path |
data/listener |
listener 的 WAL 目录。只允许使用一个目录。 |
data_path |
data |
出于兼容性考虑,可以忽略此参数。填充一个默认值data 。 |
part_man_type |
memory |
部件管理器类型,可选值为memory 和meta 。 |
rocksdb_batch_size |
4096 |
批处理操作的默认保留字节。 |
rocksdb_block_cache |
4 |
BlockBasedTable 的默认块缓存大小。单位:兆字节(MB)。 |
engine_type |
rocksdb |
存储引擎类型,例如rocksdb 、memory 等。 |
part_type |
simple |
部件类型,例如simple 、consensus 等。 |
第三步:启动 listener¶
在需要部署 listener 集群的安装目录下,执行如下命令启动 listener:
./bin/nebula-storaged --flagfile etc/nebula-storaged-listener.conf
第四步:添加 listener 到 NebulaGraph 集群¶
用命令行连接到 NebulaGraph ,然后执行 USE <space>
进入需要创建全文索引的图空间。然后执行如下命令添加 listener:
ADD LISTENER ELASTICSEARCH <listener_ip:port> [,<listener_ip:port>, ...]
Warning
listener 必须使用真实的 IP 地址。
请在一个语句里完整地添加所有 listener。例如:
nebula> ADD LISTENER ELASTICSEARCH 192.168.8.100:9789,192.168.8.101:9789;
查看 listener¶
执行SHOW LISTENER
语句可以列出所有的 listener。
示例¶
nebula> SHOW LISTENER;
+--------+-----------------+------------------------+-------------+
| PartId | Type | Host | Host Status |
+--------+-----------------+------------------------+-------------+
| 1 | "ELASTICSEARCH" | ""192.168.8.100":9789" | "ONLINE" |
| 2 | "ELASTICSEARCH" | ""192.168.8.100":9789" | "ONLINE" |
| 3 | "ELASTICSEARCH" | ""192.168.8.100":9789" | "ONLINE" |
+--------+-----------------+------------------------+-------------+
删除 listener¶
执行REMOVE LISTENER ELASTICSEARCH
语句可以删除图空间的所有 listener。
示例¶
nebula> REMOVE LISTENER ELASTICSEARCH;
最后更新:
2024年9月14日