cassandra启动过程介绍

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: cassandra启动流程 整个启动流程会启动前端cql server用来接收客户端cql请求,启动node互相通信用的MessageService。这个都是常规操作,就不花费篇幅赘述了。cassandra启动过程对于新节点加入还是正常启动还是有区分的,新节点会造成数据重分布,所以需要先执行bootstrap。

cassandra启动流程

整个启动流程会启动前端cql server用来接收客户端cql请求,启动node互相通信用的MessageService。这个都是常规操作,就不花费篇幅赘述了。cassandra启动过程对于新节点加入还是正常启动还是有区分的,新节点会造成数据重分布,所以需要先执行bootstrap。

分区介绍

先看下cassandra cluster的分区概念。下面这个例子中表示,token组成了一个环,由这4台节点划分,每个server管理一段。所有key值都通过murmur3算法算出token,映射在hash环上,从而找到所属server
image

当有新节点加入集群后,新节点会新分配token,会管理新增部分tokenRange,相当于从老节点分割了token,从而引起了数据迁移
image
上图中server'新加入集群,负责了token范围(51-60),原来管理的server管理token的范围为(51-75),server'在加入集群前,需要先把数据拷贝过来,防止加入后,读数据失败。这其实就是bootstrap过程,原理很简单,但实际因为虚拟节点vnode存在,实现要比这复杂的多。

启动流程

下面是启动过程中比较重要的几个步骤

  • replay WAL

    • 对日志段进行新旧排序,从旧到新,依次replay日志段
    • 解析wal成为mutation,apply mutation,构建memtable,然后强制刷新成sst
    • 此过程不断校验crc,如果最后一个日志段数据损坏,如出现半条操作日志,是可以正常skip然后启动的,其他情况,默认启动失败。
  • JoinRing

    1. 判断本地系统表里面是否bootstrap完毕,完毕直接跳至第4步,否则新节点,开始执行第二步
    2. 生成tokens,默认是随机生成诺干个token,至于多少个,看配置的num_tokens个数。如果本机有其他程序混部导致负载高,可以适度少配置个数,降低cassandra读写负载。
    3. 本地持久化tokens,发起bootstrap,通过数据流接口,发起sst文件拷贝
    4. 将tokens通过Gossip广播给其他node,这样以后任意一节点都能正确找到key对应的node

钉钉群交流

为了营造一个开放的 Cassandra 技术交流,我们建立了微信群和钉钉群,为广大用户提供专业的技术分享及问答,定期在国内开展线下技术沙龙,专家技术直播,欢迎大家加入。
image

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
OceanBase 数据库源码解读之模块结构
本文为《带你读源码系列》第一篇,主要为大家介绍 OceanBase 数据库代码的整体架构和模块构成,以及各模块的功能。
OceanBase 数据库源码解读之模块结构
【Android 插件化】Hook 插件化框架 ( 从 Hook 应用角度分析 Activity 启动流程 二 | AMS 进程相关源码 | 主进程相关源码 )(三)
【Android 插件化】Hook 插件化框架 ( 从 Hook 应用角度分析 Activity 启动流程 二 | AMS 进程相关源码 | 主进程相关源码 )(三)
207 0
Cassandra 最佳实践系列(2) - 选型篇
Cassandra最佳实践之选型,选择什么样子的机器
2253 0
kde
|
20天前
|
Docker镜像加速指南:手把手教你配置国内镜像源
配置国内镜像源可大幅提升 Docker 拉取速度,解决访问 Docker Hub 缓慢问题。本文详解 Linux、Docker Desktop 配置方法,并提供测速对比与常见问题解答,附最新可用镜像源列表,助力高效开发部署。
kde
10721 82
连续四年,阿里云再获市场份额第一
IDC报告:阿里云再获公有云云工作负载安全市场份额第一!
阿里云百炼全新发布Qwen3-Coder-Plu并开源,重磅升级Qwen3-235B
面向全球的智能编程引擎Qwen3-Coder正式开源!首发旗舰版Qwen3-Coder-480B-A35B-Instruct,拥有480B参数、35B有效参数,基于MoE架构,模型在Agentic Coding、浏览器智能操作及基础编码任务中刷新SOTA纪录,并同步开源完整工具链,包括Qwen Code命令行工具、Claude Code集成、VS Code插件及阿里云平台API支持。Qwen3-Coder支持256K上下文,最高可扩展至1M,适用于仓库级代码理解。通过强化学习技术,实现多轮交互与自主决策,大幅提升代码执行成功率。开发者可通过阿里云百炼平台直接体验或调用API使用。
790 0
云上十五年——弹性计算系列客户故事(一)
技术的价值在于解决真实业务挑战。为记录这十五年的共同成长,阿里云特别推出《云上十五年》客户故事专栏,分享与各行业伙伴的实践成果。新起点开启新征程,阿里云持续突破核心技术,让云计算的“澎湃算力”,持续为各行各业提供“创新动力”。
云上十五年——弹性计算系列客户故事(一)
Windows安装Claude Code
Claude Code 是 Anthropic 推出的代码助手,支持在 Windows 通过 WSL(Windows Subsystem for Linux)运行。本文介绍如何在 Windows 系统中启用 WSL、安装 Ubuntu 子系统、配置 Python 与 Node.js 环境,并最终安装和运行 Claude Code。内容涵盖 WSL 设置、开发工具安装、依赖配置及常见问题解决方法,助你顺利在本地环境中使用 Claude Code 提升编码效率。
758 2
Windows安装Claude Code
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问