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,越大容错率越高,但带宽也越高 |
| read_data_only_timeout_ms | 触发直读的超时时间 | 否,默认3000ms,直读超时后再EC修复读 |
| shard_crc_write_disable | 是否验证write blobnode的数据crc | 否,默认开启验证 |
| shard_crc_read_enable | 是否验证read blobnode的数据crc | 否,默认不开启验证 |
| disk_punish_interval_s | 临时标记坏盘间隔时间 | 否,默认60s |
| service_punish_interval_s | 临时标记坏服务间隔时间 | 否,默认60s |
| blobnode_config | blobnode rpc 配置 | 参考rpc配置章节 |
| proxy_config | proxy 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配置示例 |
service_register示例
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": 100,
"writer_mbps": 1000
}
mem_pool_size_classes示例
key, 内存分配阶梯
value, 限制多少数量,-1表示不限制,(当前access不启用数量限制)
{
"2048": -1,
"65536": -1,
"524288": -1,
"2097152": 10240,
"8389632": 4096,
"16777216": 1024,
"33554432": 512,
"67108864": 64
}
示例配置
{
"bind_addr": ":9500",
"log": {
"level": "error",
"filename": "../run/logs/access.log"
},
"auditlog": {
"logdir": "../run/auditlog/access"
},
"stream": {
"idc": "z0",
"cluster_config": {
"region": "my_region",
"clusters": [{
"cluster_id": 1,
"hosts": ["http://192.168.2.160:9998", "http://192.168.2.161:9998", "http://192.168.2.185:9998"]
}]
}
},
"service_register": {
"consul_addr": "http://192.168.2.160:8500",
"service_name": "access",
"node": "access-node1",
"service_ip": "192.168.2.160"
}
}