feat: add redis cache and fanout support
This commit is contained in:
@@ -22,6 +22,11 @@ x-exporter:
|
||||
x-tinode-env-vars: &tinode-env-vars
|
||||
"STORE_USE_ADAPTER": "mysql"
|
||||
"PPROF_URL": "/pprof"
|
||||
"REDIS_ADDR": "host.docker.internal:56379"
|
||||
"REDIS_PASSWORD": "HMTJzkm.h>Y+E9ep"
|
||||
"REDIS_DB": 0
|
||||
"REDIS_KEY_PREFIX": "im"
|
||||
"REDIS_GROUP_FANOUT_ENABLED": "true"
|
||||
# You can provide your own tinode config by setting EXT_CONFIG env var and binding your configuration file to
|
||||
# "EXT_CONFIG": "/etc/tinode/tinode.conf"
|
||||
"WAIT_FOR": "mysql:3306"
|
||||
|
||||
@@ -17,6 +17,11 @@ x-tinode:
|
||||
x-tinode-env-vars: &tinode-env-vars
|
||||
"STORE_USE_ADAPTER": "mysql"
|
||||
"PPROF_URL": "/pprof"
|
||||
"REDIS_ADDR": "host.docker.internal:56379"
|
||||
"REDIS_PASSWORD": "HMTJzkm.h>Y+E9ep"
|
||||
"REDIS_DB": 0
|
||||
"REDIS_KEY_PREFIX": "im"
|
||||
"REDIS_GROUP_FANOUT_ENABLED": "true"
|
||||
# You can provide your own tinode config by setting EXT_CONFIG env var and binding your configuration file to
|
||||
# "EXT_CONFIG": "/etc/tinode/tinode.conf"
|
||||
"WAIT_FOR": "mysql:3306"
|
||||
|
||||
@@ -52,6 +52,22 @@ ENV DEFAULT_COUNTRY_CODE=US
|
||||
|
||||
# The MySQL DSN connection.
|
||||
ENV MYSQL_DSN='root@tcp(mysql)/tinode?parseTime=true&collation=utf8mb4_0900_ai_ci'
|
||||
ENV REDIS_ADDR=
|
||||
ENV REDIS_USERNAME=
|
||||
ENV REDIS_PASSWORD=
|
||||
ENV REDIS_DB=0
|
||||
ENV REDIS_KEY_PREFIX=im
|
||||
ENV REDIS_DIAL_TIMEOUT_MS=2000
|
||||
ENV REDIS_READ_TIMEOUT_MS=2000
|
||||
ENV REDIS_WRITE_TIMEOUT_MS=2000
|
||||
ENV REDIS_PENDING_TTL_SECONDS=120
|
||||
ENV REDIS_DONE_TTL_SECONDS=86400
|
||||
ENV REDIS_FAILED_TTL_SECONDS=600
|
||||
ENV REDIS_HOT_MESSAGE_TTL_SECONDS=86400
|
||||
ENV REDIS_PRESENCE_TTL_SECONDS=120
|
||||
ENV REDIS_CACHE_TTL_SECONDS=300
|
||||
ENV REDIS_SHORT_STATE_TTL_SECONDS=600
|
||||
ENV REDIS_GROUP_FANOUT_ENABLED=true
|
||||
|
||||
# The PostgreSQL DSN connection.
|
||||
ENV POSTGRES_DSN='postgresql://postgres:postgres@localhost:5432/tinode?sslmode=disable&connect_timeout=10'
|
||||
|
||||
@@ -36,6 +36,22 @@ ENV DEFAULT_COUNTRY_CODE=US
|
||||
# DB connection is provided at deploy time via secret-backed env var. No default value.
|
||||
ENV MYSQL_DSN=
|
||||
ENV STORE_USE_ADAPTER=mysql
|
||||
ENV REDIS_ADDR=
|
||||
ENV REDIS_USERNAME=
|
||||
ENV REDIS_PASSWORD=
|
||||
ENV REDIS_DB=0
|
||||
ENV REDIS_KEY_PREFIX=im
|
||||
ENV REDIS_DIAL_TIMEOUT_MS=2000
|
||||
ENV REDIS_READ_TIMEOUT_MS=2000
|
||||
ENV REDIS_WRITE_TIMEOUT_MS=2000
|
||||
ENV REDIS_PENDING_TTL_SECONDS=120
|
||||
ENV REDIS_DONE_TTL_SECONDS=86400
|
||||
ENV REDIS_FAILED_TTL_SECONDS=600
|
||||
ENV REDIS_HOT_MESSAGE_TTL_SECONDS=86400
|
||||
ENV REDIS_PRESENCE_TTL_SECONDS=120
|
||||
ENV REDIS_CACHE_TTL_SECONDS=300
|
||||
ENV REDIS_SHORT_STATE_TTL_SECONDS=600
|
||||
ENV REDIS_GROUP_FANOUT_ENABLED=true
|
||||
|
||||
# Tenant registry lives in the hotgo database (shared with im_manager); tenant
|
||||
# DB routing resolves to the same tinode DB for the seeded "default" tenant.
|
||||
|
||||
@@ -96,6 +96,24 @@
|
||||
"addresses": "mongodb",
|
||||
"replica_set": "rs0"
|
||||
}
|
||||
},
|
||||
"redis": {
|
||||
"addr": "$REDIS_ADDR",
|
||||
"username": "$REDIS_USERNAME",
|
||||
"password": "$REDIS_PASSWORD",
|
||||
"db": $REDIS_DB,
|
||||
"key_prefix": "$REDIS_KEY_PREFIX",
|
||||
"dial_timeout_ms": $REDIS_DIAL_TIMEOUT_MS,
|
||||
"read_timeout_ms": $REDIS_READ_TIMEOUT_MS,
|
||||
"write_timeout_ms": $REDIS_WRITE_TIMEOUT_MS,
|
||||
"pending_ttl_seconds": $REDIS_PENDING_TTL_SECONDS,
|
||||
"done_ttl_seconds": $REDIS_DONE_TTL_SECONDS,
|
||||
"failed_ttl_seconds": $REDIS_FAILED_TTL_SECONDS,
|
||||
"hot_message_ttl_seconds": $REDIS_HOT_MESSAGE_TTL_SECONDS,
|
||||
"presence_ttl_seconds": $REDIS_PRESENCE_TTL_SECONDS,
|
||||
"cache_ttl_seconds": $REDIS_CACHE_TTL_SECONDS,
|
||||
"short_state_ttl_seconds": $REDIS_SHORT_STATE_TTL_SECONDS,
|
||||
"group_fanout_enabled": $REDIS_GROUP_FANOUT_ENABLED
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user