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

Cassandra代码阅读(二)

阅读更多

MessageService相关

 

MessageService处理了cassandra中各个节点之间控制信息和数据信息的传递,例如remote insert,get,以及Gossip的信息维护等节点之间要通过发送消息来一起处理任务的事宜;

 

在系统启动的过程中,会建立一个MessageService的实例,并调用其listen方法,其中会启动一个监听socket连接的线程,并开始在7000端口上进行监听来自其他node上的连接,每当接到一个这样的连接,会产生一个IncomingTcpConnection线程进行此次连接的处理,当然这些是在接收端的接收机制,当接收到消息的时候,对消息进行解析,消息中包含消息头和消息内容部分,具体的消息格式稍后分析,此处预留,之后根据消息的内容创建MessageDeserializationTask线程,在一系列相应的处理之后产生MessageDeliveryTask线程,解析出要执行命令的类型,类型共有:

        MUTATION,
        BINARY,
        READ_REPAIR,
        READ,
        READ_RESPONSE,
        STREAM_INITIATE,
        STREAM_INITIATE_DONE,
        STREAM_FINISHED,
        STREAM_REQUEST,
        RANGE_SLICE,
        BOOTSTRAP_TOKEN,
        TREE_REQUEST,
        TREE_RESPONSE,
        JOIN,
        GOSSIP_DIGEST_SYN,
        GOSSIP_DIGEST_ACK,
        GOSSIP_DIGEST_ACK2,

从而调用不同的线程池,真正的消息的内容进行处理,并返回结果

 

在发送消息端,消息都是通过MessageService.java中相应的方法发送,例如:SecdRR,SendOneWay,分别表示发送一个需要callback和不需要callback的消息,在这些函数内部,根据消息的目的地建立相应的连接,例如SendOneWay中从连接池取得一个连接,并将消息发送过去,消息发送过程结束;

 

分享到:
评论

相关推荐

    cassandra入门项目源代码

    【标题】:“Cassandra入门项目源代码”是一个针对初学者的教程项目,旨在帮助开发者了解如何在Eclipse环境中使用Spring Data框架与EasyRest风格来操作Cassandra数据库和Lucene搜索引擎。这个项目提供了一整套实践性...

    Cassandra分布式架构与源代码分析

    Cassandra分布式架构与源代码分析 Cassandra是一个开源的分布式数据库,结合了Dynamo的Key/Value与Bigtable的面向列的特点。本文档对Cassandra源代码作了详细的分析,可以了解整个集群的运作细节。 1. Cassandra的...

    Cassandra分布式模型与源代码分析

    【Cassandra 分布式模型与源代码分析】 Cassandra 是一个开源的分布式数据库系统,源自 Facebook,后来成为了 Apache 项目的一部分。它的设计灵感来源于 Dynamo 和 Bigtable,融合了两者的关键特性。Cassandra 提供...

    Cassandra 2.1.2 源代码 part1

    Cassandra 2.1.2 源代码 part1 编译过

    Cassandra 2.1.2 源代码 part2

    Cassandra 2.1.2 源代码 part2 已经编译

    cassandra-3.11.3下载

    在解压"apache-cassandra-3.11.3"压缩包后,用户可以找到源代码、二进制文件、配置示例以及相关的用户手册,以便开始使用或进一步定制Cassandra。 总之,Cassandra 3.11.3是一个强大且成熟的分布式数据库系统,它在...

    cassandra-operator,apache-cassandra的kubernetes算子.zip

    在这个压缩包“cassandra-operator,apache-cassandra的kubernetes算子.zip”中,包含的是Cassandra-Operator的源代码,可能还有相关的文档和示例配置,其主要文件夹名为“cassandra-operator-master”。 1. **...

    spring boot与cassandra集成,使用JPA方式。

    集成Spring Boot和Cassandra,使用JPA方式,不仅简化了数据访问层的代码,同时也保持了与关系型数据库类似的编程模型,使得开发更为便捷。然而,需要注意的是,Cassandra作为NoSQL数据库,其数据模型与传统的关系型...

    Cassandra JDBC Driver

    在使用`cassandra-jdbc-driver-0.8.2.jar`文件时,开发人员需要将其添加到项目的类路径中,以便在代码中通过`Class.forName()`加载驱动,并通过`DriverManager.getConnection()`建立到Cassandra集群的连接。...

    DevCenter cassandra客户端

    2. **CQL编辑器**:DevCenter内置了一个Cassandra查询语言(CQL)的编辑器,提供了代码补全、语法高亮和错误检查功能,帮助用户编写和执行CQL命令。这使得对数据库的操作变得更加高效和准确。 3. **数据浏览**:...

    Cassandra JDBC Driver 0.8.2

    JDBC 规范**:该驱动程序按照 JDBC(Java Database Connectivity)规范设计,提供了一个标准化的接口,使得开发人员能够在不深入了解 Cassandra 本身的底层机制的情况下,使用熟悉的 JDBC 代码来操作 Cassandra 数据...

    windows下安装cassandra与C#访问配置

    使用 C# 编写代码来连接 Cassandra 服务器,并执行 CRUD 操作。 示例代码(简化): ```csharp using Apache.Cassandra; using System; public class Program { public static void Main(string[] args) { ...

    cassandra-trunk

    【标题】"Cassandra-Trunk" 指的是Apache Cassandra项目的最新开发分支,通常被称为“trunk”,在软件开发中代表最活跃、最新的代码库。这个压缩包可能包含了Cassandra的源代码,允许开发者深入了解其内部工作原理并...

    cassandra-C#应用

    在"CassandraTest"这个项目中,可能包含了一些示例代码,展示了如何在C#中使用Thrift API与Cassandra进行交互,比如添加数据、检索数据等基本操作。通过研究这些代码,开发者可以学习到如何在实际项目中实现...

    Cassandra的基础应用

    #### 二、Cassandra的应用特性 **1. 概述** - **定义**:Cassandra是一个开源分布式NoSQL数据库管理系统,特别适合处理大量结构化数据,具备高可用性和无单点故障的特点。 **2. 主要特点** - **模式灵活**:在...

Global site tag (gtag.js) - Google Analytics