Skip to content

Liupeter01/balance-server

Repository files navigation

Balance-server

0x00 Description

0x01 Requirements

Basic Infrastructures

It's strongly suggested to use docker to build up those services ^_^

If you intended to pass a host directory, please use absolute path.

  1. Redis Memory Database

    Create a local volume on host machine and editing configration files. Please don't forget to change your password.

    #if you are using windows, please download WSL2
    mkdir -p /path/to/redis/{conf,data} 
    cat > /path/to/redis/conf/redis.conf <<EOF
    # bind 192.168.1.100 10.0.0.1     # listens on two specific IPv4 addresses
    # bind 127.0.0.1 ::1              # listens on loopback IPv4 and IPv6
    # bind * -::*                     # like the default, all available interfaces
    # bind 127.0.0.1 -::1
    protected-mode no
    port 6379
    tcp-backlog 511
    timeout 0
    tcp-keepalive 300
    daemonize no
    pidfile /var/run/redis_6379.pid
    loglevel notice
    logfile ""
    databases 16
    always-show-logo no
    set-proc-title yes
    proc-title-template "{title} {listen-addr} {server-mode}"
    locale-collate ""
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename dump.rdb
    rdb-del-sync-files no
    dir ./
    #---------------------------password--------------------------------------------
    requirepass 123456
    #---------------------------------------------------------------------------------
    replica-serve-stale-data yes
    replica-read-only yes
    repl-diskless-sync yes
    repl-diskless-sync-delay 5
    repl-diskless-sync-max-replicas 0
    repl-diskless-load disabled
    repl-disable-tcp-nodelay no
    replica-priority 100
    acllog-max-len 128
    lazyfree-lazy-eviction no
    lazyfree-lazy-expire no
    lazyfree-lazy-server-del no
    replica-lazy-flush no
    lazyfree-lazy-user-del no
    lazyfree-lazy-user-flush no
    oom-score-adj no
    oom-score-adj-values 0 200 800
    disable-thp yes
    appendonly no
    appendfilename "appendonly.aof"
    appenddirname "appendonlydir"
    appendfsync everysec
    no-appendfsync-on-rewrite no
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    aof-load-truncated yes
    aof-use-rdb-preamble yes
    aof-timestamp-enabled no
    slowlog-log-slower-than 10000
    slowlog-max-len 128
    latency-monitor-threshold 0
    notify-keyspace-events ""
    hash-max-listpack-entries 512
    hash-max-listpack-value 64
    list-max-listpack-size -2
    list-compress-depth 0
    set-max-intset-entries 512
    set-max-listpack-entries 128
    set-max-listpack-value 64
    zset-max-listpack-entries 128
    zset-max-listpack-value 64
    hll-sparse-max-bytes 3000
    stream-node-max-bytes 4096
    stream-node-max-entries 100
    activerehashing yes
    client-output-buffer-limit normal 0 0 0
    client-output-buffer-limit replica 256mb 64mb 60
    client-output-buffer-limit pubsub 32mb 8mb 60
    hz 10
    dynamic-hz yes
    aof-rewrite-incremental-fsync yes
    rdb-save-incremental-fsync yes
    jemalloc-bg-thread yes
    EOF

    Creating a Redis container and execute following commands.

    docker pull redis:7.2.4		#Pull the official docker image from Docker hub
    docker run \
        --restart always \
        -p 16379:6379 --name redis \
        --privileged=true \
        -v /path/to/redis/conf/redis.conf:/etc/redis/redis.conf \
        -v /path/to/redis/data:/data:rw \
        -d redis:7.2.4 redis-server /etc/redis/redis.conf \
        --appendonly yes

    Entering Redis container and access to command line redis-cli.

    docker exec -it redis bash	 #entering redis
    redis-cli									 	 #login redis db

Servers' Configurations

[BalanceService]
host=127.0.0.1
port=59900
[Redis]
host=127.0.0.1
port=16379
password=123456

0x03 Developer Quick Start

Platform Support

Windows, Linux, MacOS(Intel & Apple Silicon M)

Download Balance-server

git clone https://github.com/Liupeter01/balance-server

Compile Balance-server

grpc-1.50.2 will be downloaded automatically, and we will use boringssl instead of openssl

For Windows users, fetch content will download all of those for you

  1. For Linux/Windows

    cd FullStackChattingDemo/server
    git submodule update --init
    cmake -Bbuild -DCMAKE_BUILD_TYPE=Release
    cmake --build build --parallel [x]
  2. For MacOS

    cd FullStackChattingDemo/server
    git submodule update --init
    cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_INCLUDE_PATH=/usr/local/include
    cmake --build build --parallel [x]

How to Execute

  1. Activate Redis service

    IMPORTANT: you have to start the services first!!

  2. Execute Servers' program

    ./balance-server/build/BalanceServer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published