4 个稳定版本
2.2.1 | 2022 年 10 月 23 日 |
---|---|
2.1.0 | 2022 年 3 月 12 日 |
2.0.0 | 2022 年 2 月 19 日 |
#664 in 异步
285KB
7.5K SLoC
RCProxy
从 https://github.com/wayslog/aster 分支而来。感谢!
======================
RCProxy 是用 Rust 编写的轻量级、快速但强大的 Redis 集群代理。
它支持 memcache/redis 单例/redis 集群协议,统一在一块。RCProxy 可以使用两种代理模式
使用方法
构建
cargo build --all --release
运行
./target/release/rcproxy default.toml
安装
sudo cp ./target/release/rcproxy /usr/local/bin/
sudo mkdir /etc/rcproxy
sudo cp default.toml /etc/rcproxy/
sudo mkdir /var/log/rcproxy
sudo cp service/systemd/rcproxy.service /lib/systemd/system/
sudo systemctl enable rcproxy
sudo systemctl start rcproxy
配置
[log]
level = "libaster=info" # "trace" "debug" "info" "warn" "error"
ansi = true # support ANSI colors
stdout = false # print logs to stdout, not to log files
directory = "/var/log/rcproxy" # log file directory
file_name = "rcproxy.log" # log file name
[metrics]
# change port config, to run multiple instance in one machine.
port = 2110
[[clusters]]
# name of the cluster. Each cluster means one front-end port.
name="test-redis-cluster"
# listen_addr means the cluster front end server address.
listen_addr="0.0.0.0:9001"
# cache_type only support memcache|redis|redis_cluster
cache_type="redis_cluster"
# servers means cache backend. support two format:
# for cache_type is memcache or redis, you can set it as:
#
# servers = [
# "127.0.0.1:7001:10 redis-1",
# "127.0.0.1:7002:10 redis-2",
# "127.0.0.1:7003:10 redis-3"]
#
# as you can see, the format is consisted with:
#
# "${addr}:hash_weight ${node_alias}"
#
# And, for redis_cluster you can set the item as:
#
# servers = ["127.0.0.1:7000", "127.0.0.1:7001"]
#
# which means the seed nodes to connect to redis cluster.
servers = ["127.0.0.1:7000", "127.0.0.1:7001", "127.0.0.1:7002", "127.0.0.1:7003", "127.0.0.1:7004", "127.0.0.1:7005"]
# Work thread number, it's suggested as the number of your cpu(hyper-thread) number.
thread = 1
# ReadTimeout is the socket read timeout which effects all in the socket in millisecond
read_timeout = 2000
# WriteTimeout is the socket write timeout which effects all in the socket in millisecond
write_timeout = 2000
############################# Cluster Mode Special #######################################################
# fetch means fetch interval for backend cluster to keep cluster info become newer.
# default 10 * 60 seconds
fetch = 600
# read_from_slave is the feature make slave balanced readed by client and ignore side effects.
read_from_slave = true
############################# Proxy Mode Special #######################################################
# ping_fail_limit means when ping fail reach the limit number, the node will be ejected from the cluster
# until the ping is ok in future.
# if ping_fali_limit == 0, means that close the ping eject feature.
ping_fail_limit=3
# ping_interval means the interval of each ping was send into backend node in millisecond.
ping_interval=10000
# Configure password for backend server. It will send this password to backend server on connect.
# Empty value will be ignored.
auth = "" # mypassw
变更日志
查看 CHANGELOG.md
依赖关系
~33–44MB
~774K SLoC