flagr 数据库配置

flagr 是一个很不错的特性开关、a/b 测试服务,默认使用的是sqlite 数据库,但是我们可以通过配置,使用不同的数据库
sqlite、mysql、postrgresql、json_file、json_http

说明测试都是通过docker-compose 运行

sqlite默认配置

sqlite 数据库

  • docker-compose 文件
version: "3"
services:
    feature-api:
      image: checkr/flagr
      ports: 
      - "8080:18000"

mysql 配置

  • docker-compose 文件
version: "3"
services:
    feature-api:
      image: checkr/flagr
      ports: 
      - "8080:18000"
      environment:
      - "FLAGR_DB_DBDRIVER=mysql"
      - "FLAGR_DB_DBCONNECTIONSTR=flagr:dalongrong@tcp(mysql:3306)/flagr?parseTime=true"
    mysql:
      image: mysql:5.7.16
      volumes:
      - ./db/mysql:/var/lib/mysql
      ports:
      - 3306:3306
      command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
      environment:
      - "MYSQL_ROOT_PASSWORD=dalongrong"
      - "MYSQL_DATABASE=flagr"
      - "MYSQL_USER=flagr"
      - "MYSQL_PASSWORD=dalongrong"
      - "TZ=Asia/Shanghai"

pg 配置

  • docker-compose 文件
version: "3"
services:
    feature-api:
      image: checkr/flagr
      ports: 
      - "8081:18000"
      environment:
      - "FLAGR_DB_DBDRIVER=postgres"
      - "FLAGR_DB_DBCONNECTIONSTR=host=postgres user=postgres dbname=postgres password=dalong sslmode=disable"
    postgres:
      image: postgres:9.6
      ports:
      - "5432:5432"
      environment:
      - "POSTGRES_PASSWORD:dalong"
      volumes:
      - ./db_data:/var/lib/postgresql/data

json_file 配置

格式如下:
/tmp/flags.json

json_http

这个是一个接口地址,详细的请求处理,还需要通过源码学习

说明

关于json_file 以及sqlite 对于测试使用还是比较方便的,实际生产还是推荐使用集成了数据库或者通过类似webhook 的后端存储处理

参考资料

https://checkr.github.io/flagr/#/flagr_env 

https://github.com/rongfengliang/flagr-db-config-docker-compose-demo

原文地址:https://www.cnblogs.com/rongfengliang/p/10773993.html