参考资料

  1. IBM Semeru Runtimes 是基于 OpenJDK 的开源 Java 运行时环境(JRE)和开发工具包(JDK)。
  2. Docker镜像(Image)是什么?
  3. Crux 是一个轻量级、高性能的 Linux 发行版,专为有经验的用户设计。
  4. NATS Streaming(现更名为STAN)是基于NATS的消息流系统
  5. docker安装nginx详细说明以及案例
  6. Haxe 是一种开源的跨平台编程语言
  7. Rust 是一种系统编程语言,专注于安全、并发和性能
  8. IBM Java 是 IBM 提供的 Java 开发工具包(JDK)和运行时环境(JRE)

Cassandra 详细简介

Apache Cassandra 是一个开源的分布式 NoSQL 数据库系统,设计用于处理大规模数据跨多个数据中心和云的高可用性需求。它采用无单点故障的架构,支持线性扩展,适用于需要高吞吐量和低延迟的应用场景。

特点

  1. 分布式架构:数据自动分区和复制,无单点故障。

  2. 高可用性:支持多数据中心复制,自动故障恢复。

  3. 线性扩展:通过添加节点轻松扩展。

  4. 灵活的数据模型:基于列族(Column Family)的宽列存储模型。

  5. 高性能:支持高吞吐量和低延迟的读写操作。

  6. 最终一致性:可配置的一致性级别(如 ONE、QUORUM、ALL)。

  7. CQL(Cassandra Query Language):类似 SQL 的查询语言。

最新更新内容及时间

  • 最新版本:4.1.3(截至 2023 年 10 月)

  • 主要更新

    • 性能优化和 Bug 修复。

    • 改进的存储引擎和压缩策略。

    • 增强的监控和管理功能。

镜像下载地址

官网地址

阅读文档地址

Docker 安装示例

# 拉取最新 Cassandra 镜像
docker pull cassandra:latest

# 运行 Cassandra 容器
docker run --name my-cassandra -d -p 9042:9042 cassandra:latest

# 进入 CQL Shell
docker exec -it my-cassandra cqlsh

YAML 设置教程(cassandra.yaml 关键配置)

  1. 集群名称

    cluster_name: 'MyCluster'
  2. 种子节点

    seeds: "ip1,ip2"
  3. 监听地址

    listen_address: <node_ip>
    rpc_address: <node_ip>
  4. 数据目录

    data_file_directories:
      - /var/lib/cassandra/data
    commitlog_directory: /var/lib/cassandra/commitlog
    saved_caches_directory: /var/lib/cassandra/saved_caches
  5. 调优参数

    concurrent_reads: 32
    concurrent_writes: 32

常用错误及问题

  1. 启动失败:端口冲突

    • 检查 9042(CQL)和 7000(集群通信)端口是否被占用。

  2. 节点无法加入集群

    • 确认 seeds 配置正确且网络互通。

    • 检查防火墙设置。

  3. 磁盘空间不足

    • 监控 data_file_directoriescommitlog_directory 的磁盘使用情况。

  4. CQL 连接超时

    • 确保 rpc_address 配置为可访问的 IP,非 localhost

  5. 一致性级别冲突

    • 根据需求调整一致性级别(如 QUORUMLOCAL_QUORUM)。

  6. Schema 冲突

    • 避免多节点同时修改 Schema,使用协调工具(如 nodetool repair)。

  7. JVM 内存不足

    • 调整 jvm.options 中的堆内存设置(如 -Xms4G -Xmx4G)。