Access 配置
Access 是接入模块,主要负责数据上传、下载、删除等。
access的配置是基于公有配置,以下配置说明主要针对于access的私有配置。
配置说明
一级配置
| 配置项 | 说明 | 必需 | 
|---|---|---|
| 公共配置项 | 参考基础服务配置章节 | 是 | 
| service_register | 服务注册信息 | 是,配置后可用于access的服务发现 | 
| limit | 限速配置 | 否,单机限速配置 | 
| stream | access 主要配置项 | 是,参考下列二级配置选项 | 
二级stream配置
| 配置项 | 说明 | 必需 | 
|---|---|---|
| idc | 服务的IDC | 是 | 
| max_blob_size | 文件分段Blob大小 | 否,默认为4MB | 
| mem_pool_size_classes | 文件读写内存控制 | 否 | 
| encoder_concurrency | EC编解码并发数 | 否,默认1000 | 
| encoder_enableverify | EC编解码是否启用验证 | 否,默认开启 | 
| min_read_shards_x | EC读取并发多下载几个shards | 否,默认1,越大容错率越高,但带宽也越高 | 
| shard_crc_disabled | 是否验证blobnode的数据crc | 否,默认开启验证 | 
| disk_punish_interval_s | 临时标记坏盘间隔时间 | 否,默认60s | 
| service_punish_interval_s | 临时标记坏服务间隔时间 | 否,默认60s | 
| blobnode_config | blobnode rpc 配置 | 参考rpc配置章节rpc | 
| proxy_config | proxy rpc 配置 | 参考rpc配置章节rpc | 
| cluster_config | cluster 主要配置 | 是,参考下列三级配置选项 | 
三级cluster配置
| 配置项 | 说明 | 必需 | 
|---|---|---|
| region | region 信息 | 是,配置后不要变更 | 
| region_magic | 用于编码文件Location的crc字段 | 是,配置后不要变更,发生变更后Location全部失效 | 
| consul_agent_addr | 集群信息的consul地址 | 是 | 
| cluster_reload_secs | 集群信息同步间隔 | 否,默认3s | 
| service_reload_secs | 服务信息同步间隔 | 否,默认3s | 
| clustermgr_client_config | clustermgr rpc 配置 | 参考rpc配置示例rpc | 
配置示例
service_register示例
提示
v3.2.1版本开始支持health_port
- consul_addr,access 服务注册的consul地址
 - service_ip,access 服务bind ip
 - node,主机名
 - health_port,consul的健康检查端口范围
 
{
    "consul_addr": "127.0.0.1:8500",
    "service_ip": "127.0.0.1",
    "node": "access-node1",
    "health_port": [9700, 9799]
}
limit示例
- reader_mbps,单机下载带宽(MB/s)
 - writer_mbps, 单机上传带宽(MB/s)
 - name_rps, 各接口的rps限制数
 
{
    "name_rps": {
        "alloc": 0,
        "put": 100,
        "putat": 0,
        "get": 0,
        "delete": 0,
        "sign": 0
    },
    "reader_mbps": 1000,
    "writer_mbps": 200
}
mem_pool_size_classes示例
- key, 内存分配阶梯
 - value, 限制多少数量,0表示不限制,(当前access不启用数量限制)
 
{
    "2048": 0,
    "65536": 0,
    "524288": 0,
    "2097152": 10240,
    "8389632": 4096,
    "16777216": 1024,
    "33554432": 512,
    "67108864": 64
}
完整示例
{
    "max_procs": 0,
    "shutdown_timeout_s": 30,
    "log": {
        "level": "info",
        "filename": "./run/logs/access.log",
        "maxsize": 1024,
        "maxage": 7,
        "maxbackups": 7
    },
    "bind_addr": ":9500",
    "service_register": {
        "consul_addr": "127.0.0.1:8500",
        "service_ip": "127.0.0.1",
        "node": "access-node1",
        "health_port": [9700, 9799]
    },
    "limit": {
        "name_rps": {
           "put": 100
        },
        "reader_mbps": 1000,
        "writer_mbps": 200
    },
    "stream": {
        "idc": "idc",
        "max_blob_size": 4194304,
        "mem_pool_size_classes": {
            "2048": 0,
            "65536": 0,
            "524288": 0,
            "2097152": 10240,
            "8389632": 4096,
            "16777216": 1024,
            "33554432": 512,
            "67108864": 64
        },
        "encoder_concurrency": 1000,
        "encoder_enableverify": true,
        "min_read_shards_x": 1,
        "shard_crc_disabled": false,
        "cluster_config": {
            "region": "region",
            "region_magic": "region",
            "cluster_reload_secs": 3,
            "service_reload_secs": 3,
            "clustermgr_client_config": {
                "client_timeout_ms": 3000,
                "transport_config": {
                    "auth": {
                        "enable_auth": true,
                        "secret": "secret key"
                    },
                    "dial_timeout_ms": 2000
                }
            },
            "consul_agent_addr": "127.0.0.1:8500"
        },
        "disk_punish_interval_s": 60,
        "service_punish_interval_s": 60,
        "blobnode_config": {
            "client_timeout_ms": 10000
        },
        "proxy_config": {
            "client_timeout_ms": 5000
        }
    }
}
在github上编辑

