fix: migrate to kvrocks

This commit is contained in:
devthejo 2025-10-20 19:30:26 +02:00
parent 8e0adf6ba0
commit acbc18b038
No known key found for this signature in database
GPG key ID: 00CCA7A92B1D5351
9 changed files with 47 additions and 45 deletions

View file

@ -12,7 +12,7 @@ EXPOSE_MINO_CONSOLE_PORT=4291
EXPOSE_FILES_PORT=4292 EXPOSE_FILES_PORT=4292
EXPOSE_REDIS_QD_PORT=4278 EXPOSE_REDIS_QD_PORT=4278
EXPOSE_REDIS_HG_PORT=4279 EXPOSE_REDIS_HG_PORT=4279
EXPOSE_KEYDB_CG_PORT=4277 EXPOSE_KVROCKS_CG_PORT=4277
EXPOSE_RABBITMQ_NODE_PORT=4272 EXPOSE_RABBITMQ_NODE_PORT=4272
EXPOSE_RABBITMQ_MANAGEMENT_PORT_PORT=4273 EXPOSE_RABBITMQ_MANAGEMENT_PORT_PORT=4273

View file

@ -79,19 +79,19 @@ services:
REDIS_AOF_ENABLED: "yes" REDIS_AOF_ENABLED: "yes"
REDIS_DISABLE_COMMANDS: FLUSHDB,FLUSHALL REDIS_DISABLE_COMMANDS: FLUSHDB,FLUSHALL
keydb-cold-geodata: kvrocks-cold-geodata:
image: eqalpha/keydb:x86_64_v6.3.4 image: apache/kvrocks
# restart: always # restart: always
ports: ports:
- "${EXPOSE_KEYDB_CG_PORT:-4277}:6379" - "${EXPOSE_KVROCKS_CG_PORT:-4277}:6666"
volumes: volumes:
- keydb_cg_data:/data - kvrocks_cg_data:/data
command: command:
- keydb-server - kvrocks-server
- /etc/keydb/redis.conf - /etc/kvrocks/redis.conf
- --requirepass - --requirepass
- keydb-password - kvrocks-password
- --server-threads - --server-threads
- "2" - "2"
@ -180,7 +180,7 @@ services:
- db - db
- rabbitmq - rabbitmq
- redis-hot-geodata - redis-hot-geodata
- keydb-cold-geodata - kvrocks-cold-geodata
- redis-q-dedup - redis-q-dedup
files: files:
@ -245,15 +245,15 @@ services:
REDIS_QUEUE_DEDUP_PASSWORD: redis-password REDIS_QUEUE_DEDUP_PASSWORD: redis-password
REDIS_HOT_GEODATA_HOST: redis-hot-geodata REDIS_HOT_GEODATA_HOST: redis-hot-geodata
REDIS_HOT_GEODATA_PASSWORD: redis-password REDIS_HOT_GEODATA_PASSWORD: redis-password
KVROCKS_COLD_GEODATA_HOST: keydb-cold-geodata KVROCKS_COLD_GEODATA_HOST: kvrocks-cold-geodata
KVROCKS_COLD_GEODATA_PASSWORD: keydb-password KVROCKS_COLD_GEODATA_PASSWORD: kvrocks-password
SENTRY_DSN: ${SENTRY_DSN_TASKS:-""} SENTRY_DSN: ${SENTRY_DSN_TASKS:-""}
SENTRY_ENVIRONMENT: ${SENTRY_ENVIRONMENT:-development} SENTRY_ENVIRONMENT: ${SENTRY_ENVIRONMENT:-development}
depends_on: depends_on:
- db - db
- rabbitmq - rabbitmq
- redis-hot-geodata - redis-hot-geodata
- keydb-cold-geodata - kvrocks-cold-geodata
- redis-q-dedup - redis-q-dedup
watchers: watchers:
@ -272,15 +272,15 @@ services:
HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET:-admin} HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET:-admin}
REDIS_HOT_GEODATA_HOST: redis-hot-geodata REDIS_HOT_GEODATA_HOST: redis-hot-geodata
REDIS_HOT_GEODATA_PASSWORD: redis-password REDIS_HOT_GEODATA_PASSWORD: redis-password
KVROCKS_COLD_GEODATA_HOST: keydb-cold-geodata KVROCKS_COLD_GEODATA_HOST: kvrocks-cold-geodata
KVROCKS_COLD_GEODATA_PASSWORD: keydb-password KVROCKS_COLD_GEODATA_PASSWORD: kvrocks-password
SENTRY_DSN: ${SENTRY_DSN_WATCHERS:-""} SENTRY_DSN: ${SENTRY_DSN_WATCHERS:-""}
SENTRY_ENVIRONMENT: ${SENTRY_ENVIRONMENT:-development} SENTRY_ENVIRONMENT: ${SENTRY_ENVIRONMENT:-development}
depends_on: depends_on:
- db - db
- rabbitmq - rabbitmq
- redis-hot-geodata - redis-hot-geodata
- keydb-cold-geodata - kvrocks-cold-geodata
web: web:
image: helpme_web image: helpme_web
@ -300,5 +300,5 @@ volumes:
name: helpme-rabbitmq-data name: helpme-rabbitmq-data
redis_hg_data: redis_hg_data:
name: helpme-redishg-data name: helpme-redishg-data
keydb_cg_data: kvrocks_cg_data:
name: helpme-keydbcg-data name: helpme-kvrockscg-data

View file

@ -79,19 +79,19 @@ services:
REDIS_AOF_ENABLED: "yes" REDIS_AOF_ENABLED: "yes"
REDIS_DISABLE_COMMANDS: FLUSHDB,FLUSHALL REDIS_DISABLE_COMMANDS: FLUSHDB,FLUSHALL
keydb-cold-geodata: kvrocks-cold-geodata:
image: eqalpha/keydb:x86_64_v6.3.4 image: apache/kvrocks
# restart: always # restart: always
ports: ports:
- "${EXPOSE_KEYDB_CG_PORT:-4277}:6379" - "${EXPOSE_KVROCKS_CG_PORT:-4277}:6379"
volumes: volumes:
- keydb_cg_data:/data - kvrocks_cg_data:/data
command: command:
- keydb-server - kvrocks-server
- /etc/keydb/redis.conf - /etc/kvrocks/redis.conf
- --requirepass - --requirepass
- keydb-password - kvrocks-password
- --server-threads - --server-threads
- "2" - "2"
@ -193,7 +193,7 @@ services:
- db - db
- rabbitmq - rabbitmq
- redis-hot-geodata - redis-hot-geodata
- keydb-cold-geodata - kvrocks-cold-geodata
- redis-q-dedup - redis-q-dedup
files: files:
@ -259,15 +259,15 @@ services:
REDIS_QUEUE_DEDUP_PASSWORD: redis-password REDIS_QUEUE_DEDUP_PASSWORD: redis-password
REDIS_HOT_GEODATA_HOST: redis-hot-geodata REDIS_HOT_GEODATA_HOST: redis-hot-geodata
REDIS_HOT_GEODATA_PASSWORD: redis-password REDIS_HOT_GEODATA_PASSWORD: redis-password
KVROCKS_COLD_GEODATA_HOST: keydb-cold-geodata KVROCKS_COLD_GEODATA_HOST: kvrocks-cold-geodata
KVROCKS_COLD_GEODATA_PASSWORD: keydb-password KVROCKS_COLD_GEODATA_PASSWORD: kvrocks-password
SENTRY_DSN: ${SENTRY_DSN_TASKS:-""} SENTRY_DSN: ${SENTRY_DSN_TASKS:-""}
SENTRY_ENVIRONMENT: ${SENTRY_ENVIRONMENT:-development} SENTRY_ENVIRONMENT: ${SENTRY_ENVIRONMENT:-development}
depends_on: depends_on:
- db - db
- rabbitmq - rabbitmq
- redis-hot-geodata - redis-hot-geodata
- keydb-cold-geodata - kvrocks-cold-geodata
- redis-q-dedup - redis-q-dedup
watchers: watchers:
@ -287,15 +287,15 @@ services:
HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET:-admin} HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET:-admin}
REDIS_HOT_GEODATA_HOST: redis-hot-geodata REDIS_HOT_GEODATA_HOST: redis-hot-geodata
REDIS_HOT_GEODATA_PASSWORD: redis-password REDIS_HOT_GEODATA_PASSWORD: redis-password
KVROCKS_COLD_GEODATA_HOST: keydb-cold-geodata KVROCKS_COLD_GEODATA_HOST: kvrocks-cold-geodata
KVROCKS_COLD_GEODATA_PASSWORD: keydb-password KVROCKS_COLD_GEODATA_PASSWORD: kvrocks-password
SENTRY_DSN: ${SENTRY_DSN_WATCHERS:-""} SENTRY_DSN: ${SENTRY_DSN_WATCHERS:-""}
SENTRY_ENVIRONMENT: ${SENTRY_ENVIRONMENT:-development} SENTRY_ENVIRONMENT: ${SENTRY_ENVIRONMENT:-development}
depends_on: depends_on:
- db - db
- rabbitmq - rabbitmq
- redis-hot-geodata - redis-hot-geodata
- keydb-cold-geodata - kvrocks-cold-geodata
osrm-car: &osrm osrm-car: &osrm
image: osrm/osrm-backend:latest image: osrm/osrm-backend:latest
@ -419,8 +419,8 @@ volumes:
name: helpme-redishg-data name: helpme-redishg-data
labels: labels:
project: "alertesecours" project: "alertesecours"
keydb_cg_data: kvrocks_cg_data:
name: helpme-keydbcg-data name: helpme-kvrockscg-data
labels: labels:
project: "alertesecours" project: "alertesecours"
rabbitmq_data: rabbitmq_data:

View file

@ -76,17 +76,18 @@ modjo({
}) })
}, },
}, },
keydbColdGeodata: { kvrocksColdGeodata: {
pluginName: "ioredis", pluginName: "ioredis",
context: (ctx) => { context: (ctx) => {
ctx.set("config", { ctx.set("config", {
...ctx.get("config"), ...ctx.get("config"),
redis: { redis: {
host: process.env.KVROCKS_COLD_GEODATA_HOST, host: process.env.KVROCKS_COLD_GEODATA_HOST,
port: process.env.KEYDB_COLD_GEODATA_PORT || "6379", port: process.env.KVROCKS_COLD_GEODATA_PORT || "6379",
username: process.env.KEYDB_COLD_GEODATA_USERNAME || "default", username:
process.env.KVROCKS_COLD_GEODATA_USERNAME || "default",
password: process.env.KVROCKS_COLD_GEODATA_PASSWORD, password: process.env.KVROCKS_COLD_GEODATA_PASSWORD,
db: process.env.KEYDB_COLD_GEODATA_DB || "0", db: process.env.KVROCKS_COLD_GEODATA_DB || "0",
}, },
}) })
}, },

View file

@ -1,7 +1,7 @@
const { ctx } = require("@modjo/core") const { ctx } = require("@modjo/core")
module.exports = async function () { module.exports = async function () {
const redis = ctx.require("keydbColdGeodata") const redis = ctx.require("kvrocksColdGeodata")
return Object.assign( return Object.assign(
async function geocodeDeviceUpdate(params) { async function geocodeDeviceUpdate(params) {

View file

@ -20,7 +20,7 @@ module.exports = async function () {
async function iosGeolocationHeartbeatSync(params) { async function iosGeolocationHeartbeatSync(params) {
const logger = taskCtx.require("logger") const logger = taskCtx.require("logger")
const sql = ctx.require("postgres") const sql = ctx.require("postgres")
const redisCold = ctx.require("keydbColdGeodata") const redisCold = ctx.require("kvrocksColdGeodata")
const { deviceId } = params const { deviceId } = params

View file

@ -39,17 +39,18 @@ modjo({
}) })
}, },
}, },
keydbColdGeodata: { kvrocksColdGeodata: {
pluginName: "ioredis", pluginName: "ioredis",
context: (ctx) => { context: (ctx) => {
ctx.set("config", { ctx.set("config", {
...ctx.get("config"), ...ctx.get("config"),
redis: { redis: {
host: process.env.KVROCKS_COLD_GEODATA_HOST, host: process.env.KVROCKS_COLD_GEODATA_HOST,
port: process.env.KEYDB_COLD_GEODATA_PORT || "6379", port: process.env.KVROCKS_COLD_GEODATA_PORT || "6379",
username: process.env.KEYDB_COLD_GEODATA_USERNAME || "default", username:
process.env.KVROCKS_COLD_GEODATA_USERNAME || "default",
password: process.env.KVROCKS_COLD_GEODATA_PASSWORD, password: process.env.KVROCKS_COLD_GEODATA_PASSWORD,
db: process.env.KEYDB_COLD_GEODATA_DB || "0", db: process.env.KVROCKS_COLD_GEODATA_DB || "0",
}, },
}) })
}, },

View file

@ -21,7 +21,7 @@ const cleanupAge = Math.floor(ms(DEVICE_GEODATA_CLEANUP_AGE) / 1000) // Convert
module.exports = async function () { module.exports = async function () {
const logger = ctx.require("logger") const logger = ctx.require("logger")
const redisCold = ctx.require("keydbColdGeodata") const redisCold = ctx.require("kvrocksColdGeodata")
const redisHot = ctx.require("redisHotGeodata") const redisHot = ctx.require("redisHotGeodata")
const { addTask } = ctx.require("amqp") const { addTask } = ctx.require("amqp")

View file

@ -34,7 +34,7 @@ suppress_multiple_term_dialog = True
type = Terminal type = Terminal
parent = paned1 parent = paned1
profile = default profile = default
command = bash -lc "docker compose logs --follow --tail=10 db minio rabbitmq redis-hot-geodata redis-q-dedup keydb-cold-geodata; exec bash" command = bash -lc "docker compose logs --follow --tail=10 db minio rabbitmq redis-hot-geodata redis-q-dedup kvrocks-cold-geodata; exec bash"
[[[terminal2]]] [[[terminal2]]]
type = Terminal type = Terminal
parent = paned2 parent = paned2