HugeGraphServer 内部集成了 GremlinServer 和 RestServer,而 gremlin-server.yaml 和 rest-server.properties 就是用来配置这两个 Server 的。

HugeGraph 配置项及参数配置

主要的配置文件包括:gremlin-server.yaml、hugegraph.properties、rest-server.properties

HugeGraphServer 内部集成了 GremlinServer 和 RestServer,而 gremlin-server.yaml 和 rest-server.properties 就是用来配置这两个 Server 的。

  • GremlinServer:GremlinServer 接受用户的 gremlin 语句,解析后转而调用 Core 的代码。
  • RestServer:提供 Restful API,根据不同的 HTTP 请求,调用对应的 Core API,如果用户请求体是 gremlin 语句,则会转发给 GremlinServer,实现对图数据的操作。

GremlinServer 配置项(gremlin-server.yaml)

目前只需要关注如下几个配置项:host、port、channelizer 和 graphs。

  • host:部署 GremlinServer 机器的机器名或 IP,目前 HugeGraphServer 不支持分布式部署,且 GremlinServer 不直接暴露给用户,此项可以不修改;
  • port:部署 GremlinServer 机器的端口,同 host,可以不修改;
  • channelizer:GremlinServer 与客户端有两种通信方式,分别是 WebSocket 和 HTTP(默认)。如果选择 WebSocket,用户可以通过 Gremlin-Console 快速体验 HugeGraph 的特性,但是不支持大规模数据导入,推荐使用 HTTP 的通信方式,我们的一些外围组件都是基于 HTTP 实现的;
  • graphs:GremlinServer 启动时需要打开的图,该项是一个 map 结构,key 是图的名字,value 是该图的配置文件路径;

基本配置项(hugegraph.properties)

配置选项默认值descrition
backendrocksdb数据存储类型,可用值是[memory,rocksdb,cassandra,scylladb,mysql]
serializerbinary后端存储的序列化器,可用值为[text,binary,cassandra,mysql]
storehugegraph数据库名称如 Cassandra Keyspace。
store.graphgraph图表名称,用于存储顶点,边和属性。
store.schemaschema架构表名称,用于存储元数据。
vertex.default_labelvertex默认的顶点标签。
vertex.tx_capacity10000事务中顶点(未提交)的最大大小(项)。
edge.tx_capacity10000事务中边缘(未提交)的最大大小(项)。
graph.cache_capacity10485760图数据(顶点/边)的最大高速缓存大小(项)。
graph.cache_expire600图形数据(顶点/边缘)的到期时间(以秒为单位)。
gremlin.graphcom.baidu.hugegraph.HugeFactoryGremlin 创建图表。
schema.cache_capacity1048576架构数据的最大缓存大小(项)。
schema.illegal_name_regex.\s+$|~.正则表达式指定了模式名称的非法格式。
snowflake.datecenter_id0snowflake id 生成器的数据中心 ID。
snowflake.force_stringfalse是否强制 snowflake 长 id 为字符串。
snowflake.worker_id0snowflakeid 生成器的 worker id。
rate_limit0添加/更新/删除顶点/边的最大速率(项/ s)。
auth.admin_token162f7848-0b6d-4faf-b557-3a0797869c55用于管理员操作的令牌。
auth.require_authenticationfalse是否启用身份验证。
auth.user_tokens[hugegraph:9fd95c9c-711B-415B-b85f-d4df46ba5c31]用户标记的地图,名称和密码。

API 配置项(rest-server.properties)

配置选项默认值descrition
restserver.urlhttp://127.0.0.1:8080监听 rest-api 服务器的 URL。
graphs[hugegraph:CONF / hugegraph.properties]图形名称和配置文件的映射。
gremlinserver.urlhttp://127.0.0.1:8182gremlin 服务器的 url。
batch.max_edges_per_batch500每批提交的最大边数。
batch.max_vertices_per_batch500每批提交的最大顶点数。
batch.max_write_ratio50批处理写入的最大线程比率仅在 batch.max_write_threads 为 0 时生效。
batch.max_write_threads0批量写入的最大线程,如果值为 0,则实际值将设置为 batch.max_write_ratio * total-rest-threads。
exception.allow_tracefalse是否允许异常跟踪堆栈。

Cassandra & ScyllaDB 后端配置项

配置选项默认值descrition
cassandra.host本地主机cassandra 集群的种子主机名或 IP 地址。
cassandra.port9042cassandra 集群的种子端口地址。
cassandra.connect_timeout5cassandra 驱动程序连接服务器超时(秒)。
cassandra.read_timeout20cassandra 驱动程序从服务器超时(秒)读取。
cassandra.keyspace.strategySimpleStrategy键空间策略。
cassandra.keyspace.replication3密钥空间复制因子。
cassandra.username用于登录 cassandra 集群的用户名。
cassandra.password密码对应 cassandra.username。
cassandra.compression_typenonecassandra 传输的压缩算法:none / snappy / lz4。

RocksDB 后端配置项

配置选项默认值descrition
rocksdb.allow_mmap_readsfalse允许操作系统 mmap 文件以读取 sst 表。
rocksdb.allow_mmap_writesfalse允许操作系统 mmap 文件进行写入。
rocksdb.bulkload_modefalse切换到模式以将数据批量加载到 RocksDB 中。
rocksdb.compaction_styleLEVEL为 RocksDB 设置压缩样式:LEVEL / UNIVERSAL / FIFO。
rocksdb.compression_typesnappyRocksDB 的压缩算法:snappy / z / bzip2 / lz4 / lz4hc / xpress / zstd。
rocksdb.data_disks[]用于存储 RocksDB 数据的优化磁盘。每个元素的格式:STORE/TABLE: /path/to/disk.Allowed 键是[graph / vertex,graph / edge_out,graph / edge_in,graph / secondary_index,graph / range_index]
rocksdb.data_pathrocksdb-data存储 RocksDB 数据的路径。
rocksdb.delayed_write_rate16777216如果压缩落后,当需要减速时,用户写入请求的速率限制(以字节/秒为单位)。
rocksdb.log_levelINFORocksDB 的信息日志级别。
rocksdb.max_background_compactions4并发后台压缩作业的最大数量。
rocksdb.max_background_flushes4并发后台刷新作业的最大数量。
rocksdb.max_bytes_for_level_base536870912level-1 文件总大小的上限(以字节为单位)。
rocksdb.max_bytes_for_level_multiplier10.0所有 L 的级别(L + 1)文件的总大小与级别 L 文件的总大小之间的比率。
rocksdb.max_open_files-1RocksDB 可以缓存的最大打开文件数。
rocksdb.max_subcompactions4该值表示每个压缩作业的最大线程数。
rocksdb.max_write_buffer_number6内存中构建的最大写缓冲区数。
rocksdb.max_write_buffer_number_to_maintain0要在内存中维护的最大写缓冲区总数。
rocksdb.min_write_buffer_number_to_merge2将合并在一起的最小写缓冲区数。
rocksdb.num_levels7设置此数据库的级别数。
rocksdb.optimize_modetrue针对繁重的工作负载和大型数据集进行优化。
rocksdb.sst_path将 SST 文件提取到 RocksDB 的路径。
rocksdb.target_file_size_base67108864压缩的目标文件大小(以字节为单位)。
rocksdb.target_file_size_multiplier1级别 L 文件和级别(L + 1)文件之间的大小比率。
rocksdb.use_direct_io_for_flush_and_compactionfalse使操作系统能够在刷新和压缩中使用直接读写。
rocksdb.use_direct_readsfalse使操作系统能够使用直接 I / O 读取 sst 表。
rocksdb.wal_pathrocksdb-data存储 RocksDB 的 WAL 的路径。
rocksdb.write_buffer_size134217728要在内存中构建的数据量(以字节为单位)。

MySQL 后端配置项

配置选项默认值descrition
jdbc.drivercom.mysql.jdbc.Driver用于连接数据库的 JDBC 驱动程序类。
jdbc.urljdbc:mysql://127.0.0.1:3306JDBC 格式的数据库 URL。
jdbc.usernameroot登录数据库的用户名。
jdbc.password与 jdbc.username 对应的密码。
jdbc.reconnect_interval3数据库连接失败时重新连接之间的间隔(秒)。
jdbc.reconnect_max_times3数据库连接失败时的重新连接时间。