Feature cache client

This commit is contained in:
郑超
2019-01-11 22:38:07 +08:00
parent 6d33ec5891
commit f5c153c59e
8 changed files with 313 additions and 40 deletions

View File

@@ -3,6 +3,7 @@
#include <curl/curl.h>
#include <sys/queue.h>
#include <pthread.h>
#include <event2/event.h>
#include <event.h>
@@ -11,6 +12,7 @@
#include <cjson/cJSON.h>
#include <MESA/wiredLB.h>
#include <MESA/field_stat2.h>
#include "tango_cache_client.h"
#define RESPONSE_HDR_EXPIRES 1
@@ -21,6 +23,36 @@
#define CACHE_META_REDIS 1 //Ԫ<><D4AA>Ϣ<EFBFBD><CFA2>REDIS<49><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MINIO
#define CACHE_SMALL_REDIS 2 //Ԫ<><D4AA>Ϣ<EFBFBD><CFA2>С<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>REDIS<49><53><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>MINIO
enum FIELD_STAT_FILEDS
{
FS_FILED_GET_RECV=0,
FS_FILED_GET_S_TOTAL,
FS_FILED_GET_S_HTTP,
FS_FILED_GET_S_REDIS,
FS_FILED_GET_MISS,
FS_FILED_GET_E_TOTAL,
FS_FILED_GET_E_HTTP,
FS_FILED_GET_E_REDIS,
FS_FILED_PUT_RECV,
FS_FILED_PUT_S_TOTAL,
FS_FILED_PUT_S_HTTP,
FS_FILED_PUT_S_REDIS,
FS_FILED_PUT_E_TOTAL,
FS_FILED_PUT_E_HTTP,
FS_FILED_PUT_E_REDIS,
FS_FILED_DEL_RECV,
FS_FILED_DEL_SUCC,
FS_FILED_DEL_ERROR,
FS_FILED_TOTAL_DROP,
//Next use Status
FS_FILED_MEM_USED,
FS_FILED_SESS_HTTP,
FS_FILED_SESS_REDIS,
FS_FILED_NUM,
};
enum CACHE_REQUEST_METHOD
{
CACHE_REQUEST_GET=0,
@@ -88,12 +120,25 @@ struct tango_cache_parameter
struct wiredlb_parameter minio;
char redisaddrs[4096];
u_int32_t redis_object_maxsize;//С<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>redisʱ<73><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
//FieldStatLog
int32_t fsstat_dst_port;
char fsstat_dst_ip[64];
char fsstat_appname[16];
char fsstat_filepath[256];
u_int32_t fsstat_period;
u_int32_t fsstatid_trig;
char fsstat_histlen[256];
screen_stat_handle_t fsstat_handle;
int32_t fsstat_histlen_id;
int32_t fsstat_field_ids[FS_FILED_NUM];
};
struct tango_cache_instance
{
struct event_base* evbase;
struct event timer_event;
struct event timer_statistic;
CURLM *multi_hd;
enum CACHE_ERR_CODE error_code;
@@ -104,6 +149,7 @@ struct tango_cache_instance
const struct tango_cache_parameter *param;
void *runtime_log;
struct cache_statistics statistic;
struct cache_statistics statistic_last; //<2F><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>instanceʹ<65><CAB9>ͬһ<CDAC><D2BB>fieldstat<61>ۼ<EFBFBD>
};
struct multipart_etag_list
@@ -137,6 +183,7 @@ struct cache_ctx_data_put
char *combine_xml;
TAILQ_HEAD(__etag_list_head, multipart_etag_list) etag_head;
cJSON *object_meta;
struct easy_string once_request; //һ<><D2BB><EFBFBD><EFBFBD>PUTʱ<54><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ʧ<EFBFBD>ܵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum PUT_OBJECT_STATE state;
u_int32_t part_index; //<2F><>RESPONSE_HDR_
u_int32_t object_ttl;