JanusGraph 图库集群由一个或多个实例组成。要打开实例,必须提供一个配置来指定如何搭配该JanusGraph实例,如使用那些组件、控制操作、调整选项优化性能等。
- 配置中至少,必须定义持久性引擎作为存储后端,如Cassandra/Hbase/BerkeleyDB
- 如果需要高级查询,必须配置索引后端,如ES/Solr
- 如果考虑查询性能,应开启缓存
区分
JanusGraph分本地配置和全局配置。本地配置适用于单个实例,全局配置适用于集群中所有实例。
应用配置
不同的实例化模式,其使用配置也不同。
1. JanusGraphFactory
1.1. Gremlin Console
graph = JanusGraphFactory.open('path/to/configuration.properties')
1.2. JanusGraph 嵌入式
直接调用JanusGraph提供的API即可。
1.3. 简写
如果只需要制定后端存储库,可以使用这种方式。
graph = JanusGraphFactory.open('cql:localhost')
graph = JanusGraphFactory.open('berkeleyje:/tmp/graph')
2. JanusGraph 服务式
配置Server模式是通过JanusGraph发行版中./conf/gremlin-server目录中的yaml配置文件完成。
全局配置
启动群集中的第一个JG实例时,将从本地提供的配置文件中初始化全局配置选项。随后,通过JG的管理API (g.getManagementSystem()
) 可更改全局配置选项。
例如,更改JG群集上的默认缓存行为:
mgmt = graph.openManagement()
mgmt.get('cache.db-cache')
// Prints the current config setting
mgmt.set('cache.db-cache', true)
// Changes option
mgmt.get('cache.db-cache')
// Prints 'true'
mgmt.commit()
// Changes take effect
1. 配置作用域
JG为配置选项分了五个scope:
作用域等级 | 配置项来源 | 描述 |
---|---|---|
LOCAL | 这些选项只能通过本地配置文件提供 | 仅适用于单个JG实例,在初始化JG实例时指定提供 |
MASKABLE | 首先读取全局集群配置项值,如果提供了本地配置,就以本地配置项覆盖 | 这些选项是全局的,但可以被本地配置文件覆盖 |
GLOBAL | 从集群配置中读取的配置项 | 这些选项只能在整个JG集群中全局更改 |
GLOBAL_OFFLINE | 与GLOBAL类似 | 当所有实例关闭时,只能一次为整个JG集群更改这些选项。更改配置项后需要重新启动集群 |
FIXED | 与GLOBAL类似 | JG集群一旦初始化,就无法在数据库的整个生命周期内更改这些配置选项 |
更改配置选项不会影响正在运行的实例,新启动的实例才会生效更改。
更改 GLOBAL_OFFLINE 配置选项需要重新启动群集,以便更改对所有实例立即生效。要更改请按照以下步骤操作:
- 留一个JG实例,关闭集群其他全部实例,
- 连接到这个实例
- 确保已关闭所有正在运行的事务
- 确保没有新的事务开始(即集群必须离线)
- 打开管理API
mgmt = graph.openManagement()
- 更改配置选项
- 调用提交将自动关闭图形实例
mgmt.commit()
- 重新启动所有实例
2. 配置选项
JG的更多配置选项,参考官方文档 :https://docs.janusgraph.org/basics/configuration-reference/#configuration-namespaces-and-options
网友评论