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"
	}
}