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中相应的函数,从而真正开始数据库操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值