【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本地传输端口
相关文章
|
1月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
431 108
|
1月前
|
运维 Devops 持续交付
揭秘 Docker 自动部署神器 Websoft9:热门开源软件一键部署
在企业IT建设中,软件部署常面临效率低、易出错等问题。通过Docker与自动化工具,可实现高效、标准化和可追溯的部署流程,提升企业应用交付效率,降低运维门槛,助力中小企业实现自动化部署。
140 5
揭秘 Docker 自动部署神器 Websoft9:热门开源软件一键部署
|
14天前
|
JavaScript 算法 前端开发
【Docker项目实战】使用Docker部署paopao-ce微社区
【Docker项目实战】使用Docker部署paopao-ce微社区
159 84
【Docker项目实战】使用Docker部署paopao-ce微社区
|
23天前
|
运维 Cloud Native 开发者
Docker:现代化应用开发与部署的神器
Docker:现代化应用开发与部署的神器
166 101
|
1月前
|
设计模式 Linux 开发工具
Docker部署会吗?
本段内容主要介绍了Docker常用命令、Linux基础指令及日志查看方法,还涉及SpringMVC的执行流程、设计模式与注解,适合用于面试中技术能力的展示。
76 0
|
5天前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
43 12
docker 部署 sftp
|
7天前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
147 6
|
2月前
|
搜索推荐 应用服务中间件 数据安全/隐私保护
【Docker项目实战】使用Docker部署Organizr个人导航页
【Docker项目实战】使用Docker部署Organizr个人导航页
376 76
【Docker项目实战】使用Docker部署Organizr个人导航页
|
13天前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
54 13
|
16天前
|
存储 Kubernetes 持续交付
为什么Docker容器化改变了开发与部署?
为什么Docker容器化改变了开发与部署?