caiaf 3e6c25fd08 系统图json修改 4 năm trước cách đây
..
README.md 3e6c25fd08 系统图json修改 4 năm trước cách đây

README.md

citus实战系列之一

citus是一款基于PostgreSQL的开源分布式数据库,自动继承了PostgreSQL强大的SQL支持能力和应用生态。安装了citus之后 postgresql就不必再安装了,因为会集成进来

docker下载citus镜像

docker pull citusdata/citus

docker运行citus

//运行容器并指定密码
docker run --name citus_standalone1 -e POSTGRES_PASSWORD=123456  -p 5433:5432 citusdata/citus

启动citus集群便捷方法

docker-compose.yml文件提供了一种启动Citus集群的简便方法,该集群由多个工作程序组成。只需将其复制到当前目录并运行

docker-compose -p citus up

示例docker-compose文件,可根据需要进行修改

version: '3'

services:
  master:
    container_name: "${COMPOSE_PROJECT_NAME:-citus}_master"
    image: 'citusdata/citus:9.5.1'
    ports: ["${MASTER_EXTERNAL_PORT:-5432}:5432"]
    labels: ['com.citusdata.role=Master']
    environment: &AUTH
      POSTGRES_USER: "${POSTGRES_USER:-postgres}"
      POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
      PGUSER: "${POSTGRES_USER:-postgres}"
      PGPASSWORD: "${POSTGRES_PASSWORD}"
      POSTGRES_HOST_AUTH_METHOD: "${POSTGRES_HOST_AUTH_METHOD:-trust}"
  worker:
    image: 'citusdata/citus:9.5.1'
    labels: ['com.citusdata.role=Worker']
    depends_on: [ manager ]
    environment: *AUTH
    command: "/wait-for-manager.sh"
    volumes: 
      - healthcheck-volume:/healthcheck
  manager:
    container_name: "${COMPOSE_PROJECT_NAME:-citus}_manager"
    image: 'citusdata/membership-manager:0.3.0'
    volumes: 
      - "${DOCKER_SOCK:-/var/run/docker.sock}:/var/run/docker.sock"
      - healthcheck-volume:/healthcheck
    depends_on: [ master ]
    environment: *AUTH
volumes:
  healthcheck-volume:

#citus实战系列之二 citus的安装非常简单,但要实际用到生产上还需要下一番功夫。比如如何扩容 citus为主从结构,分为cn节点和worker节点 cn节点只存储分片信息,不存储元数据,而worker节点存储元数据

常用命令

SELECT * FROM master_get_active_worker_nodes(); //查看所有节点

select * from master_add_node('ip-or-name', port); //添加worker节点

SELECT create_distributed_table('table', 'field'); //根据字段分片

SELECT * from pg_dist_shard_placement order by shardid, placementid; //查询分片