增加HTTP Post上传配置接口,支持主从双机备份与同步(冷备)

This commit is contained in:
linuxrc@163.com
2021-08-25 18:40:20 +08:00
parent 67bafbefc9
commit 1aca701f12
28 changed files with 3295 additions and 648 deletions

View File

@@ -18,7 +18,7 @@
#include "MESA_Monitor.h"
#include "doris_client.h"
#include "doris_consumer_client.h"
#include "doris_server_receive.h"
#include <map>
@@ -39,35 +39,65 @@ using namespace std;
#define RECV_WAY_IDX_FILE 2
#define RECV_WAY_HTTP_POST 3
#define PROMETHUES_POST_SERVER_OK 0
#define PROMETHUES_POST_SERVER_UPING 1
#define PROMETHUES_POST_SERVER_DOWN 2
struct doris_business
{
/*first for configuration*/
char bizname[32];
u_int32_t recv_way;
u_int32_t cache_max_versions;
u_int32_t concurrency_allowed;
char recv_path_full[256];
char recv_path_inc[256];
char store_path_root[256];
struct version_list_handle *cfgver_head;
struct doris_parameter *param;
struct doris_csum_param *param_csum;
struct doris_prod_param *param_prod;
u_int32_t ready_to_sync;
u_int32_t posts_on_the_way;
int32_t producer_port; //<2F><>֤ÿ<D6A4><C3BF>biz<69><7A><EFBFBD><EFBFBD>server<65>߳<EFBFBD>ֻ<EFBFBD><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2BDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>instance
evutil_socket_t listener_prod;
int64_t total_cfgnum;
int32_t mm_latest_ver;
int32_t mm_total_cfgnum;
u_int32_t mm_status_codeid; //MM<4D>ڲ<EFBFBD><DAB2>쳣״̬id
int32_t mmid_latest_ver;
int32_t mmid_total_cfgnum;
u_int32_t mmval_status_codeid; //MM<4D>ڲ<EFBFBD><DAB2>쳣״̬id<EFBFBD><EFBFBD>Grafana<EFBFBD><EFBFBD>value
u_int32_t fs_lineid;
pthread_rwlock_t rwlock;
/*next for updating*/
struct event_base *worker_evbase;
struct doris_prod_instance *instance;
map<string, struct version_list_node *> *token2node;
int64_t version;
int32_t source_from;
int32_t type;
int64_t version_cfgnum;
char inc_index_path[256]; //incĿ¼<C4BF>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>
char tmp_index_path[256]; //incĿ¼<C4BF>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>
char full_index_path[256]; //fullĿ¼<C4BF>µ<EFBFBD>ȫ<EFBFBD><C8AB>
char cfg_file_path[256];
FILE *fp_cfg_file; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6>ļ<EFBFBD><C4BC><EFBFBD>DRS Client<6E>ӿ<EFBFBD>
FILE *fp_idx_file; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6>ļ<EFBFBD><C4BC><EFBFBD>DRS Client<6E>ӿ<EFBFBD>
struct version_list_node *cur_vernode;
};
struct doris_global_info
{
u_int32_t iothreads;
int32_t server_port;
int32_t consumer_port;
int32_t manager_port;
int32_t sock_recv_bufsize;
u_int32_t ssl_conn_on;
u_int32_t scan_idx_interval;
u_int32_t cache_frag_size;
u_int32_t server_role_sw;
u_int32_t max_http_body_size;
u_int32_t idx_file_maat;
u_int32_t max_concurrent_reqs;
u_int32_t cluster_sync_mode;
u_int32_t post_vernode_ttl;
char ssl_CA_path[256];
char ssl_cert_file[256];
@@ -76,16 +106,21 @@ struct doris_global_info
pthread_mutex_t *lock_cs;
SSL_CTX *ssl_instance;
evutil_socket_t listener;
evutil_socket_t listener_csum;
evutil_socket_t manager;
u_int32_t token_seq;
int32_t local_ip;
struct doris_business business[MAX_BUSINESS_NUM];
u_int32_t business_num;
u_int32_t idx_file_maat;
u_int32_t business_post_num; //postģʽ<C4A3>м<EFBFBD><D0BC><EFBFBD>
int32_t business_post_ups; //<2F><><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD><CBBC><EFBFBD>
int32_t mmid_post_server; //value=PROMETHUES_POST_*
map<string, struct doris_business*> *name2business;
map<string, struct doris_parameter *> *confile2param;
map<string, struct doris_csum_param *> *confile2csmparam;
struct MESA_MonitorHandler *monitor;
pthread_mutex_t mutex_lock;
/*logs*/
u_int32_t log_level;
@@ -106,6 +141,7 @@ struct doris_global_info
};
int doris_mkdir_according_path(const char * path);
int doris_create_listen_socket(int bind_port);
#endif