gemini-balance搭建高并发号池

L友们,我想搭建一个rpm300左右的纯gcp号池,听说并发高的情况下,还是会封号,有没有什么详细解决办法,如何配置代理等,我目前才刚搭建好gemini-balance,有没有手把手教程,如下:

version: '3.8'

x-variables:
  # !! 在此处统一设置外部数据库的连接信息 !!
  # !! 确保这些值与你的外部数据库服务器上的设置完全一致 !!
  db_host: &db_host 'xx' # <--- 修改这里:外部数据库的IP或主机名
  db_port: &db_port '3306'                                # <--- 修改这里:外部数据库的端口 (如果是默认3306则不用改)
  db_user_password: &db_user_password 'xx' # <--- 修改这里:外部数据库用户的密码
  db_name: &db_name 'xx'                      # <--- 修改这里:外部数据库中使用的数据库名
  db_user: &db_user 'xx'                        # <--- 修改这里:外部数据库中使用的用户名

services:

  app:
    image: 'ghcr.io/snailyp/gemini-balance:latest'
    container_name: gemini_balance_app
    restart: unless-stopped
    ports:
      - "7770:8000"  # 端口映射 (宿主机端口:容器内端口)
    environment:
      #数据库(在最上方统一设置,并指向外部数据库)
      MYSQL_HOST: *db_host
      MYSQL_PORT: *db_port
      MYSQL_USER: *db_user
      MYSQL_PASSWORD: *db_user_password
      MYSQL_DATABASE: *db_name

      API_KEYS: '["GEMINI_API_KEY_1","GEMINI_API_KEY_2"]' # 修改为你自己的 Gemini API Key (可放多个)
      ALLOWED_TOKENS: '["xx"]' # 修改为允许访问服务的 Token
      AUTH_TOKEN: 'xx'                           # 修改为超级管理员 Token

      TEST_MODEL: 'gemini-2.0-flash'           # 默认测试模型
      TIMEZONE: 'Asia/Shanghai'                # 时区设置
      LOG_LEVEL: 'INFO'                        # 日志级别 (如 DEBUG, INFO, WARNING, ERROR)
      MAX_FAILURES: 3                          # Key 连续失败多少次后禁用
      MAX_RETRIES: 3                           # API 请求重试次数
      CHECK_INTERVAL_HOURS: 1                  # 定时检查 Key 状态的间隔 (小时)
      TIME_OUT: 300                            # API 请求超时时间 (秒)

      # PAID_KEY: 'your-paid-api-key'           # 付费 Key (如果使用)
      # CREATE_IMAGE_MODEL: 'imagen-3.0-generate-002' # 图像生成模型
      # UPLOAD_PROVIDER: 'smms'                 # 图床服务商 (如 smms)
      # SMMS_SECRET_TOKEN: 'your-smms-token'    # SM.MS 图床 Token

    healthcheck:
      test: ["CMD-SHELL", "python -c \"import requests; exit(0) if requests.get('http://localhost:8000/health').status_code == 200 else exit(1)\""]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s

已经支持本地sqlite了,不要用外部数据库增加延迟

还有就是不支持json格式导入

用 sqlite 数据库, api url 用bbb的代理. 这样就不用自己搭代理池了.

诶,bbb是啥

docker compose 部署,如何修改成sqlite啊佬

https://api-proxy.me/gemini, 站里 bbb 大佬提供的.
sqlite 按教程改 .env 不就行了吗?

SQLITE_DATABASE 是文件名, 不是路径
为了提高速度: SAFETY_SETTINGS 全部设置为 OFF
本地运行命令需要添加 --env-file .env, 即 uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --env-file .env

volumes:
  sqlite_data:

services:
  gemini-balance:
    image: ghcr.io/snailyp/gemini-balance:latest
    container_name: gemini-balance
    restart: unless-stopped
    ports:
      - "8000:8000"
    env_file:
      - .env
    environment:
      - DATABASE_TYPE=sqlite
      - SQLITE_DATABASE=/app/data/default_db
    volumes:
      - sqlite_data:/app/data
    depends_on:
      # 如需等待其他服务,可按需配置
    healthcheck:
      test: ["CMD-SHELL", "python -c \"import requests; exit(0) if requests.get('http://localhost:8000/health').status_code == 200 else exit(1)\""]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s

  # (移除或注释掉原 mysql 服务)

好点谢谢,这个代理地址是公益吗,以前没注意过

谢谢,我还要研究下配置文件怎么写,对docker实在不会,哈哈

记得启用WAL

PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;

这是关闭防火墙吗?

提高I/O读写效率的

佬,你啥时候方便,可以请你帮忙写一个.env配置文件吗,我写出来,有问题

你的具体高并发,是多高

300左右,也没那么高

rps300,还是rpm300哦,rps300的话rpm就是18000了

是rpm

那随便搞不就好了,封号在于你ip问题,代理池咯

感觉困难重重啊

cf的ai gateway可以当做代理池用