将读取配置单独抽出形成parameter API;支持Redis多机备份和故障切换。

This commit is contained in:
zhangchengwei
2018-11-07 15:05:55 +08:00
committed by zhengchao
parent 1fbaee37a5
commit f1822e04c5
12 changed files with 320 additions and 168 deletions

View File

@@ -191,6 +191,7 @@ int main(int argc, char **argv)
struct future_pdata *pdata;
struct cache_evbase_ctx *ctx;
void *runtime_log;
struct tango_cache_parameter *parameter;
if(argc != 2 && argc!=3)
{
@@ -209,7 +210,9 @@ int main(int argc, char **argv)
}
cache_evbase_global_init();
instance_asyn = cache_evbase_instance_new("./pangu_tg_cahce.conf", "TANGO_CACHE", runtime_log);
parameter = cache_evbase_parameter_new("./pangu_tg_cahce.conf", "TANGO_CACHE", runtime_log);
assert(parameter != NULL);
instance_asyn = cache_evbase_instance_new(parameter, runtime_log);
assert(instance_asyn!=NULL);
pdata = (struct future_pdata *)malloc(sizeof(struct future_pdata));

View File

@@ -280,6 +280,7 @@ int main(int argc, char **argv)
pthread_t thread_tid;
pthread_attr_t attr;
struct pthread_data pdata[20];
struct tango_cache_parameter *parameter;
if(argc!=3)
{
@@ -294,7 +295,9 @@ int main(int argc, char **argv)
}
cache_evbase_global_init();
instance_asyn = cache_evbase_instance_new("./pangu_tg_cahce.conf", "TANGO_CACHE", runtime_log);
parameter = cache_evbase_parameter_new("./pangu_tg_cahce.conf", "TANGO_CACHE", runtime_log);
assert(parameter != NULL);
instance_asyn = cache_evbase_instance_new(parameter, runtime_log);
assert(instance_asyn!=NULL);
pthread_attr_init(&attr);

View File

@@ -1,12 +1,15 @@
[TANGO_CACHE]
#MINIO IP地址,目前只支持一个
#MINIO IP地址列表WiredLB格式
MINIO_IP_LIST=192.168.10.61-64;
MINIO_LISTEN_PORT=9000
#每个域名最多开启的链接数
MAX_CONNECTION_PER_HOST=10
#MAX_CONNECTION_PER_HOST=1
MAX_CNNT_PIPELINE_NUM=20
#MAX_CURL_SESSION_NUM=100
MAX_CURL_TRANSFER_TIMEOUT_S=15
#bucket的名称
CACHE_BUCKET_NAME=images
CACHE_BUCKET_NAME=openbucket
#缓存最大占用的内存空间大小,超出空间时上传失败
MAX_USED_MEMORY_SIZE_MB=5120
#上传时Expires头部的过期时间单位秒最小601分钟
@@ -15,16 +18,21 @@ CACHE_DEFAULT_TTL_SECOND=3600
CACHE_OBJECT_KEY_HASH_SWITCH=1
#HEAD元信息的来源1-MINIO2-REDIS
CACHE_HEAD_FROM_SOURCE=1
CACHE_HEAD_FROM_SOURCE=2
#使用Redis作为元信息获取源
CACHE_HEAD_REDIS_KEY=MINIO_EVENTS_INFO
CACHE_HEAD_REDIS_IP=192.168.10.63
#主要的Redis IP地址优先使用
CACHE_HEAD_MAIN_REDIS_IP=192.168.10.63
#只有在主Redis挂掉时从下述列表选择一个连接WiredLB格式。
CACHE_HEAD_REDIS_IPLIST=192.168.10.62-63;
CACHE_HEAD_REDIS_PORT=6379
#WIRED LOAD BALANCER配置
#WIREDLB_OVERRIDE=1
#WIREDLB_TOPIC=
#WIREDLB_GROUP=
#WIREDLB_DATACENTER=
#WIREDLB_HEALTH_PORT=52100
WIREDLB_MINIO_HEALTH_PORT=52100
#WIREDLB_MINIO_GROUP=
WIREDLB_REDIS_HEALTH_PORT=52101
#WIREDLB_REDIS_GROUP=

View File

@@ -398,6 +398,7 @@ int main(int crgc, char **arg)
struct event ev_timer;
struct timeval tv;
void *runtime_log;
struct tango_cache_parameter *parameter;
runtime_log = MESA_create_runtime_log_handle("./runtime.log", 10);
if(NULL==runtime_log)
@@ -414,7 +415,9 @@ int main(int crgc, char **arg)
init_fifo();
tango_cache_global_init();
tango_instance = tango_cache_instance_new(ev_base, "./pangu_tg_cahce.conf", "TANGO_CACHE", runtime_log);
parameter = tango_cache_parameter_new("./pangu_tg_cahce.conf", "TANGO_CACHE", runtime_log);
assert(parameter != NULL);
tango_instance = tango_cache_instance_new(parameter, ev_base, runtime_log);
tv.tv_sec = 10;
tv.tv_usec = 0;