`
rucbing
  • 浏览: 13057 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Cassandra代码阅读(一)

阅读更多



 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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics