zoukankan      html  css  js  c++  java
  • 编译goreplay v1.1.0 minio 集成支持

    goreplay 默认对于minio s3 的支持不是很好,所以修改了关于s3 的部分代码,可以方便的集成minio

    需要修改的代码

    注意pro 特性也是需要修改的

    • s3_reader.go
      修改的不好,实际应该走环境变量
     
    func awsConfig() *aws.Config {
        region := os.Getenv("AWS_DEFAULT_REGION")
        if region == "" {
            region = os.Getenv("AWS_REGION")
            if region == "" {
                region = "us-east-1"
            }
        }
        config := &aws.Config{Region: aws.String(region)}
        if endpoint := os.Getenv("AWS_ENDPOINT_URL"); endpoint != "" {
            config.Endpoint = aws.String(endpoint)
            log.Println("Custom endpoint:", endpoint)
        }
        log.Println("Connecting to S3. Region: " + region)
        config.CredentialsChainVerboseErrors = aws.Bool(true)
    //  使用url 模式,同时禁用ssl
    +    config.S3ForcePathStyle = aws.Bool(true)
    +    config.DisableSSL = aws.Bool(true)
        if os.Getenv("AWS_DEBUG") != "" {
            config.LogLevel = aws.LogLevel(aws.LogDebugWithHTTPBody)
        }
        return config
    }
    • pro.go
    var PRO = true

    试用

    • docker-compose 文件
    version: "3"
    services: 
      minio: 
        image: minio/minio
        command: server /data
        volumes: 
        - "./data:/data"
        ports: 
        - "9000:9000"
        environment:
          - "MINIO_DOMAIN=minios3.com"
          - "MINIO_REGION_NAME=demo"
          - "MINIO_ACCESS_KEY=minio"
          - "MINIO_SECRET_KEY=minio123"
      pg: 
         image:  postgres:9.6.11
         environment: 
         - "POSTGRES_PASSWORD=dalong"
         ports:
         - "5432:5432"
    • 启动
    docker-compose up -d
     
    export AWS_ACCESS_KEY_ID=minio
    export AWS_REGION=demo
    export AWS_BUCKET=demo
    export AWS_SECRET_ACCESS_KEY=minio123
    export AWS_ENDPOINT_URL=http://minios3.com:9000
    export AWS_DEBUG=true
    • 运行命令
    gor --input-raw :5432 --input-raw-protocol binary --output-file=requests.gor  --output-file s3://logs/%Y-%m-%d.gz
    • 效果

    说明

    以上只是一个简单的修改,为了测试s3 的特性,还可以使用s3 的回放功能,当然支持的协议有限,但是对于web的请求,我们基于s3 还是一个很不错的选择的

    参考资料

    https://github.com/buger/goreplay/wiki/%5BPRO%5D-Replaying-Binary-protocols

  • 相关阅读:
    iText + Freemarker实现pdf的导出,支持中文、css以及图片,页眉页脚,页眉添加图片
    SpringBoot使用拦截器、过滤器、监听器
    Java中boolean类型占用多少个字节?我说一个,面试官让我回家等通知
    【搞定面试官】try中有return,finally还会执行吗?
    细说JVM内存模型
    easyExcel简介#
    gbdt和xgboost api
    RNN BPTT
    tensorflow LSTM
    [转]python与numpy基础
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/13341248.html
Copyright © 2011-2022 走看看