thrift访问方式
所谓thrift访问方式,即为C/S访问结构,thrift只是将socket进行封装,使用一定的格式对stream进行定义从而传输结构化的消息,具体thrift的格式为:
就样Client端的API或者Cli命令在通过解析之后形成相应的Message传入到Cassandra Cluster的相应node上面进行操作;
而Server端会在Cassandra启动的时候启动一个对9160端口监听的SocketServer(当然也是经过thrift包装过的),持续的监听来自客户端的连接请求(CustomTThreadPoolServer.Serve()),每当接收到一个Connect请求,则会根据建立的此Socket启动一个WorkerProcess线程,专门负责此次连接的所有请求,在连接的时候会获取相应的socket和inputStream,outputStream,之后循环的处理client的所有请求,
processor = processorFactory_.getProcessor(client_);
inputTransport = inputTransportFactory_.getTransport(client_);
outputTransport = outputTransportFactory_.getTransport(client_);
inputProtocol = inputProtocolFactory_.getProtocol(inputTransport);
outputProtocol = outputProtocolFactory_.getProtocol(outputTransport);
while (!stopped_ && processor.process(inputProtocol, outputProtocol)) {}
所有的请求处理都是CassandraDaemon中定义的
processor = new Cassandra.Processor(cassandraServer);
来处理的,在process中,stream中的数据被解析为消息,并根据消息类型调用不同的processFunction进行处理,而具体的功能却又是调用了CassandraServer中相应的函数,从而真正开始数据库操作。
- 大小: 33.6 KB
分享到:
相关推荐
在eclipse中通过基于spring data的easyrest风格的maven项目操纵cassandra和lucened的源代码
Cassandra 2.1.2 源代码 part1 编译过
nosql 操作,cassandra添加删除操作代码
Cassandra是一个开源的分布式数据库,结合了Dynamo的Key/Value与Bigtable的面向列的特点,本文档对Cassandra源代码作了详细的分析,可以了解整个集群的运作细节。
Cassandra 2.1.2 源代码 part2 已经编译
Cassandra分布式模型与源代码分析 分析了Cassandra的分布式模型
JAVA操作cassandra数据库,包括java代码及操作cassandra数据库总结文档。
一个现代、功能丰富且高度可调的 C/C++ 客户端库,适用于 Apache Cassandra 2.1+,仅使用 Cassandra 的二进制协议和 Cassandra 查询语言 v3。此驱动程序也可以与其他 DataStax 产品一起使用: 特征 异步 API 简单、...
实战性强,不仅包含大量示例代码,而且还设计了一个完整的在线交易系统实例;有一定的深度,不仅结合源代码分析了Cassandra的底层机制和工作原理,而且还精心总结了一些关于Cassandra的最佳实践。
CASSANDRA分布式模型与源代码分析文茂V0.7 - CASSANDRA-SHAWN.doc
freebase cassandra upload This little Java project uploads the freebase-easy facts.txt (after transforming) to Apache Cassandra (3.x). This uploads transformed FreeBase data into a set of indexes and ...
Cequel 是一个 Ruby 的 ORM 库,用来访问 Cassandra 服务器。 示例代码: class Blog include Cequel::Record key :subdomain, :text column :name, :text column :description, :text end ...
phpcassa是为Apache Cassandra的一个PHP客户端库。 与Cassandra的0.7,0.8,1.0,和1.1兼容 可选C扩展以提高性能 phpcassa兼容PHP5.3 示例代码: $pool = new ConnectionPool('Keyspace1', array('localhost'))...
Cassandra的KairosDB简介
Storm Cassandra集成通过提供一个通用且可配置的backtype.storm.Bolt实现将Storm和Cassandra集成, backtype.storm.Bolt实现将Storm Tuple对象写入Cassandra Column Family。 如何将Storm Tuple数据写入Cassandra是...
一个现代、功能丰富且高度可调的 Node.js 客户端库,用于 Apache Cassandra 和DSE,仅使用 Cassandra 的二进制协议和 Cassandra 查询语言。 特征 简单、准备和批处理语句 异步 IO、并行执行、请求流水线 连接池 ...