//如果使用的是cassandra 2.2或更高版本,需要开启thift,以使janus连接到cassandra。
./bin/nodetool enablethrift.

15.1 Local Server Mode

在该模式下,cassandra作为一个独立应用与Janus运行在同一个localhost下,此时JanusGraph与Cassandra通过Localhost socket通信。运行步骤如下;
 
  • 下载cassandra,解压,并在conf/cassandra.yaml和conf/log4j-server.properties中设置文件系统路径。
  • 通过bin/cassandra -f启动cassandra,并检查是否启动成功
 
下面即可创建一个JanusGraph了。
JanusGraph g =JanusGraphFactory.build().
set("storage.backend","cassandra").
set("storage.hostname","127.0.0.1").
open();
注意:在gremlin shell中,不能定义变量conf和g,所以去掉变量声明。
 
该模式比较适用于测试,且Janus与Casssandra运行于统一节点。

15.2 Remote Server Mode

 
当图需要扩展时,cassandra以集群方式存在, Cassandra与Janus被逻辑上分隔在不同的主机上。在该模式中,Cassandra保存图的数据;而多个janus实例通过维持基于socket的读/写来访问cassandra集群。应用端可以在同一JVM中使用Janus访问。
 
如下假如cassandra的地址为:192.168.66.149,则连接代码如下:
JanusGraph graph =JanusGraphFactory.build().
set("storage.backend","cassandra").
set("storage.hostname","192.168.66.149").
open();
如果是Gremlin客户端,去掉下划线部分。
 
连接成功后如下所示:
 
   

15.3 Remote Server Mode with Germlin Server

Gremlin Server可以被设置为包围着每个JanusGraph实例,在该模式下,客户端通过作为一个Gremlin Client的方式与Gremlin Server通信,并将请求由Gremlin Server交由JanusGraph进行处理。此种方式支持多语言环境。
使用bin/gremlin-server.sh启动,然后在外部的Gremlin.sh Session就可以通过如下语句通信:
:plugin use tinkerpop.server
:remote connect tinkerpop.server conf/remote.yaml
:> g.addV()
在此种情况下,每个Gremlin Server都必须配置连接到casandra集群中,下面是一个配置片段,详情见:http://docs.janusgraph.org/latest/server.html
...
graphs:{
g: conf/janusgraph-cassandra.properties}
plugins:
- janusgraph.imports
...
关于Gremlin Server的更详细信息参见:http://tinkerpop.apache.org/docs/3.2.3/reference#gremlin-server

15.4 JanusGraph Embedded Mode

最后,cassandra也可以嵌入到JanusGraph中去,在此种部署方式下,JanusGraph启动Cassandra,并通过进程通信,能够显著提升查询性能,但由于共用一个JVM,需要性能调优。
 

15.5 Cassandra Specific Configuration

参考第12章:Configuration Reference(http://docs.janusgraph.org/latest/config-ref.html )获取更详细信息:
 
当配置cassandra时,推荐考虑如下几个方面:
  • read-consistency-level
  • write-consistency-level
  • replication-factor:复制因子,用于控制数据复制的分数,提高鲁棒性,3是一个常用的配置。该配置只在创建Keyspace时可用,对已有的keyspace则忽略。
  • thrift.frame_size_mb:thift帧大小,如果要传送大数据,需要调高,仅在storage.backend=cassandrathift时可用
  • keyspace:存储JanusGraph的keyspace,允许多个JanusGraph保存在Cassandra集群中
 
更多关于一致性的信息参见:Cassandra thift API,但一般一致性越高,延迟越高。

15.6 Global Graph Operations

在Cassandra之上的JanusGraph支持全局点/边遍历,但需要将全部数据加载到内存,可能引起OOM。更多参见:33章,JanusGraph With TinkerPop's Hadoop-Germlin来更有效的遍历。

JanusGraph与Cassandra集成模式的更多相关文章

  1. 在 IIS 7.5 中,应用程序池有两种运行模式:集成模式和经典模式。

    应用程序池模式会影响服务器处理托管代码请求的方式. 如果托管应用程序在采用集成模式的应用程序池中运行,服务器将使用 IIS 和 ASP.NET 的集成请求处理管道来处理请求. 如果托管应用程序在采用经 ...

  2. 曲线救国:IIS7集成模式下如何获取网站的URL

    如果我们在Global中的Application_Start事件中访问HttpContext.Current.Request对象,如: protected void Application_Start ...

  3. Centos启动Cassandra交互模式失败:No appropriate python interpreter found

    在CentOS6.5安装好Cassandra后,启动交互模式: bin/sqlsh 192.168.10.154 时,报错 No appropriate python interpreter foun ...

  4. asp.net Web.config 在不同版本的IIS配置的IHttpHandler的访问路径,以及经典模式和集成模式不同的配置

    如果IIS7.0使用.net4.0以上版本的框架,<system.web>中的httpHandlers节点就没有用了,而应该使用微软专为.net4.0以上版本设计的新节点<syste ...

  5. IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解

    IIS 7.0 支持两种管道模式:一种是IIS 7.0最新提供的集成管道模式,另一种是经典管道模式,经典管道模式是由先前版本的IIS提供的. 我们可以通过应用程序池设置管道模式,这项功能对IIS管理员 ...

  6. IIS7 经典模式和集成模式的区别(转载)

    转载地址:http://www.poluoluo.com/server/201301/193110.html 升级过程中出现了比较多的问题,前面文章也提到过几个.这次就主要介绍下httpHandler ...

  7. IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求

    今天将开发好的ASP.NET站点部署到客户的服务器上后,发现了一个非常头疼的问题,那么就是IIS7的应用程序池是集成模式的话,ASP.NET项目中自定义的HttpModule会处理静态文件(.html ...

  8. 【解决】SharePoint集成模式下Reporting Service—为用户授予的权限不足,无法执行此操作。 (rsAccessDenied)

    环境:Windows Server 2008 R2 SP1,SharePoint 2010 企业版,SQL Server 2008 R2 Reporting Service(SharePoint集成模 ...

  9. ASP.NET运行时详解 集成模式和经典模式

    遗留问题 在<ASP.NET运行时详解 生命周期入口分析>中遗留两个问题,包括Application的InitInternal方法执行细节.IIS6和II7经典模式请求管道管理类Appli ...

随机推荐

  1. Dfs【p1454】 圣诞夜的极光

    题目描述-->p1454 圣诞夜的极光 题意概括: 寻找联通块数量,这里的连通块定义与其他的不同. 这里定义为曼哈顿距离不超过2的都属于一个联通块. 什么?不知道曼哈顿距离是啥? 曼哈顿距离简易 ...

  2. SetTimer()函数使用

    在编程时,会经常使用到定时器.使用定时器的方法比较简单,通常告诉Windows一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序.通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定 ...

  3. 【找规律】Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) B. Code For 1

    观察一下,将整个过程写出来,会发现形成一棵满二叉树,每一层要么全是0,要么全是1. 输出的顺序是其中序遍历. 每一层的序号形成等差数列,就计算一下就可以出来每一层覆盖到的区间的左右端点. 复杂度O(l ...

  4. 【动态规划】UVALive - 4888 - Railroad

    f(i,j)表示从A序列前面取i个,从B序列前面取j个时,能否拼成C序列.转移自行脑补. A train yard is a complex series of railroad tracks for ...

  5. 1.2(Mybatis学习笔记)Mybatis核心配置

    一.Mybatis核心对象 1.1SqlSeesionFactory SqlSessionFactory主要作用是创建时SqlSession. SqlSessionFactory可通过SqlSessi ...

  6. MathType插入空格

    公式太长,换行后加一些空格,继续录. 将鼠标定位到需要插入空格的位置,此时如果直接按空格键,你会发现并不能插入空格.正确的输入方法有两种: 方法一,在菜单栏中[样式]菜单下选择[文本],随后按空格键即 ...

  7. Word如何设置单元格垂直居中

    那两个上面是水平居中,下面是垂直居中.

  8. C#分析URL参数获取参数和值得对应列表(二)

    不错博客: [C#HttpHelper]官方产品发布与源码下载---苏飞版http://www.sufeinet.com/thread-3-1-1.html http://blog.csdn.net/ ...

  9. nginx+ssl+Portus+registry docker仓库

    还存在的问题,如果通过nginx 转发推过去的镜像,在web页面显示比较慢,需要等定时任务发现了才能及时显示出来,如果通过b.p.xxx.cn:5000加端口push 的镜像就比较快显示出来.只影响到 ...

  10. DEDECMS爆严重安全漏洞

    简要描述: 众所周知,因使用简单.客户群多,织梦CMS一直被爆出许多漏洞.“DEDECMS爆严重安全漏洞,近期官方会发布相关补丁,望大家及时关注补丁动态.” 详细说明: http://www.xx.c ...