Please enable Javascript to view the contents
容器部署中间件
1. ClickHouse 单节点
1
2
3
4
5
6
7
8
| export CONTAINER_CLI=nerdctl
export IMAGE=clickhouse/clickhouse-server:24
export CLICKHOUSE_INSTANCE_NAME=clickhouse
export CH_DATA=/data/ops/clickhouse/$CLICKHOUSE_INSTANCE_NAME
mkdir -p $CH_DATA/data $CH_DATA/log
export CLICKHOUSE_PORT=9000
export CLICKHOUSE_USER=default
export CLICKHOUSE_PASSWORD=xxxxxx
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $CONTAINER_CLI run -d \
--name $CLICKHOUSE_INSTANCE_NAME \
--restart always \
--network host \
--ulimit memlock=-1 \
--ulimit stack=67108864 \
--ulimit nofile=1048576:1048576 \
--memory-swappiness=0 \
-v $CH_DATA/data:/var/lib/clickhouse \
-v $CH_DATA/log:/var/log/clickhouse-server \
-e CLICKHOUSE_USER=$CLICKHOUSE_USER \
-e CLICKHOUSE_PASSWORD=$CLICKHOUSE_PASSWORD \
-e CLICKHOUSE_PORT=$CLICKHOUSE_PORT \
$IMAGE
|
1
| $CONTAINER_CLI exec -it $CLICKHOUSE_INSTANCE_NAME clickhouse-client --host 127.0.0.1 --port $CLICKHOUSE_PORT
|
1
2
3
4
5
6
| echo "ClickHouse:
Instance Name:$CLICKHOUSE_INSTANCE_NAME
IP:$(hostname -I | awk '{print $1}')
Port:$CLICKHOUSE_PORT
User:$CLICKHOUSE_USER
Password:$CLICKHOUSE_PASSWORD" | column -t -s ':'
|
1
| curl -O https://builds.clickhouse.com/master/amd64/clickhouse -O ./clickhouse && chmod +x ./clickhouse
|
1
2
3
4
5
6
| ./clickhouse benchmark \
--host 127.0.0.1 \
--port $CLICKHOUSE_PORT \
--concurrency 10 \
--iterations 1000000 \
--query "SELECT 1"
|
2. Redis 主从模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| export CONTAINER_CLI=nerdctl
export IMAGE=redis:7
export REDIS_INSTANCE_NAME=redis-instance
export REDIS_MASTER_INSTANCE_NAME="${REDIS_INSTANCE_NAME}-master"
export REDIS_REPLICA_INSTANCE_NAME="${REDIS_INSTANCE_NAME}-replica"
export REDIS_PASSWORD=xxxxxx
export REDIS_MASTER_PORT=6379
export REDIS_MASTER_IP=10.0.0.1
export REDIS_REPLICA_PORT=6380
export REDIS_DATA=/data/ops/redis/$REDIS_MASTER_NAME
mkdir -p $REDIS_DATA/data $REDIS_DATA/log
|
1
2
3
4
5
6
7
8
9
10
11
| $CONTAINER_CLI run -d \
--name $REDIS_MASTER_NAME \
--restart always \
--network host \
--ulimit memlock=-1 \
--ulimit stack=67108864 \
--ulimit nofile=1048576:1048576 \
--memory-swappiness=0 \
-v $REDIS_DATA/data:/data \
-v $REDIS_DATA/log:/var/log/redis \
$IMAGE redis-server --port $REDIS_MASTER_PORT --requirepass $REDIS_PASSWORD
|
应该可以这样的日志:
1
| Ready to accept connections tcp
|
1
2
3
4
5
6
7
8
9
10
11
12
| $CONTAINER_CLI run -d \
--name $REDIS_REPLICA_NAME \
--restart always \
--network host \
--ulimit memlock=-1 \
--ulimit stack=67108864 \
--ulimit nofile=1048576:1048576 \
--memory-swappiness=0 \
-v $REDIS_DATA/data:/data \
-v $REDIS_DATA/log:/var/log/redis \
$IMAGE redis-server --port $REDIS_REPLICA_PORT --requirepass $REDIS_PASSWORD \
--replicaof $REDIS_MASTER_IP $REDIS_MASTER_PORT --masterauth $REDIS_PASSWORD
|
应该可以看到这样的日志:
1
| MASTER <-> REPLICA sync: Finished with success
|
主节点上,响应 PONG 表示连接成功
1
| $CONTAINER_CLI exec -it $REDIS_MASTER_NAME redis-cli -p $REDIS_MASTER_PORT -a $REDIS_PASSWORD ping
|
从节点上,响应 PONG 表示连接成功
1
| $CONTAINER_CLI exec -it $REDIS_REPLICA_NAME redis-cli -p $REDIS_REPLICA_PORT -a $REDIS_PASSWORD ping
|
1
2
3
4
5
| echo "Redis:
Instance Name:$REDIS_INSTANCE_NAME
IP:$(hostname -I | awk '{print $1}')
Port:$REDIS_MASTER_PORT
Password:$REDIS_PASSWORD" | column -t -s ':'
|
1
| apt install redis-tools -y
|
1
| redis-benchmark -h $REDIS_MASTER_IP -p $REDIS_MASTER_PORT -a $REDIS_PASSWORD
|