【Cassandra】使用Docker部署Cassandra集群

简介: Cassandra是一个开源分布式NoSQL数据库系统。

Cassandra 的简单的介绍

Cassandra是一个开源分布式NoSQL数据库系统。

特点

  • 本身不是一个数据库,而是有一堆数据库节点共同构成的一个分布式网络服务,对一个 Cassandra 的写操作,会被复制到其他节点上去,对 Cassandra 的读操作,也会被路由到某个节点上面去读取。
  • 易于水平扩展。只要添加节点就行
  • 是一个面向列的数据库,不向传统结构式数据库是用表来模拟关系。其实就是 Map 的嵌套
    这里我们使用 Docker 部署一个 Cassandra 的集群环境。
version: '3'
services:
  cassandra-1:
    image: cassandra:3.11.7
    container_name: cassandra-1
    volumes:
      - /opt/module/docker-compose/cassandra.yaml:/opt/cassandra/conf/cassandra.yaml
      - /data/cassandra-cluster/cassandra-1/cassandra:/var/lib/cassandra
    environment:
      - CASSANDRA_BROADCAST_ADDRESS=cassandra-1
    ports:
      - "7000:7000"
      - "9042:9042"
    restart: always
  cassandra-2:
    image: cassandra:3.11.7
    container_name: cassandra-2
    volumes:
      - /opt/module/docker-compose/cassandra.yaml:/opt/cassandra/conf/cassandra.yaml
      - /data/cassandra-cluster/cassandra-2/cassandra:/var/lib/cassandra
    environment:
      - CASSANDRA_BROADCAST_ADDRESS=cassandra-2
      - CASSANDRA_SEEDS=cassandra-1
    ports:
      - "7001:7000"
      - "9043:9042"
    depends_on:
      - cassandra-1
    restart: always
  cassandra-3:
    image: cassandra:3.11.7
    container_name: cassandra-3
    volumes:
      - /opt/module/docker-compose/cassandra.yaml:/opt/cassandra/conf/cassandra.yaml
      - /data/cassandra-cluster/cassandra-3/cassandra:/var/lib/cassandra
    environment:
      - CASSANDRA_BROADCAST_ADDRESS=cassandra-3
      - CASSANDRA_SEEDS=cassandra-1
    ports:
      - "7002:7000"
      - "9044:9042"
    depends_on:
      - cassandra-2
    restart: always

说明

  • CASSANDRA_BROADCAST_ADDRESS: 控制向其他节点播发哪个IP地址
  • CASSANDRA_SEEDS:这个变量是用逗号分隔的IP地址列表,gossip 用来引导加入集群的新节点。

常用端口

  • 7199 - JMX(8080 pre Cassandra 0.8.xx)
  • 7000 - 节点间通信(如果启用了TLS,则不使用)
  • 7001 - TLS节点间通信(使用TLS时使用)
  • 9160 - Thrift客户端API
  • 9042 - CQL本地传输端口
相关文章
|
17天前
|
网络安全 Docker 容器
|
17天前
|
安全 Docker 容器
|
20天前
|
网络安全 Docker 容器
|
17天前
|
网络安全 数据安全/隐私保护 Docker
|
4天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
10天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
47 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
25天前
|
Web App开发 前端开发 测试技术
【Docker项目实战】使用docker部署tabler后台模版
【10月更文挑战第10天】使用docker部署tabler后台模版
31 1
【Docker项目实战】使用docker部署tabler后台模版
|
26天前
|
JSON JavaScript 测试技术
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
【10月更文挑战第9天】使用Docker部署PPTist在线演示文稿应用
33 1
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
|
12天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
35 2
|
13天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
24 3