This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
doris-doris-dispatch/server/doris_server_main.h

148 lines
3.8 KiB
C
Raw Normal View History

2021-07-16 16:06:59 +08:00
#ifndef __DORIS_SERVER_MAIN_H__
#define __DORIS_SERVER_MAIN_H__
#include <openssl/ssl.h>
#include <openssl/crypto.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/err.h>
#include <openssl/rsa.h>
#include <pthread.h>
#include <event.h>
#include <evhttp.h>
#include <MESA/field_stat2.h>
#include <MESA/MESA_htable.h>
#include <MESA/MESA_handle_logger.h>
#include "MESA_Monitor.h"
#include "doris_consumer_client.h"
2021-07-16 16:06:59 +08:00
#include "doris_server_receive.h"
#include <map>
#include <string>
using namespace std;
2021-07-16 16:06:59 +08:00
#ifndef __FILENAME__
#define __FILENAME__ __FILE__
#endif
#define MESA_RUNTIME_LOGV3(handle, lv, fmt, args...) \
MESA_handle_runtime_log((handle), (lv), "DorisServer", "%s:%d, " fmt, __FILENAME__, __LINE__, ##args)
#define NIRVANA_CONFIG_FILE "./conf/doris_main.conf"
#define MAX_BUSINESS_NUM 64
2021-07-16 16:06:59 +08:00
#define RECV_WAY_DRS_CLIENT 1
#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_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 mmid_latest_ver;
int32_t mmid_total_cfgnum;
u_int32_t mmval_status_codeid; //MM<4D>ڲ<EFBFBD><DAB2>쳣״̬id<69><64>Grafana<6E><61>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;
};
2021-07-16 16:06:59 +08:00
struct doris_global_info
2021-07-16 16:06:59 +08:00
{
u_int32_t iothreads;
int32_t consumer_port;
2021-07-16 16:06:59 +08:00
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 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;
2021-07-16 16:06:59 +08:00
char ssl_CA_path[256];
char ssl_cert_file[256];
char ssl_key_file[256];
char ssl_key_passwd[64];
pthread_mutex_t *lock_cs;
SSL_CTX *ssl_instance;
evutil_socket_t listener_csum;
2021-07-16 16:06:59 +08:00
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 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_csum_param *> *confile2csmparam;
2021-07-16 16:06:59 +08:00
struct MESA_MonitorHandler *monitor;
pthread_mutex_t mutex_lock;
2021-07-16 16:06:59 +08:00
/*logs*/
u_int32_t log_level;
u_int32_t statistic_period;
char root_log_dir[256];
void *log_runtime;
screen_stat_handle_t fsstat_handle;
char fsstat_dst_ip[64];
char fsstat_appname[16];
char fsstat_filepath[256];
u_int32_t fsstat_period;
int32_t fsstat_print_mode;
int32_t fsstat_dst_port;
int32_t fsstat_field[DRS_FSSTAT_FIELD_NUM];
int32_t fsstat_status[DRS_FSSTAT_STATUS_NUM];
int32_t fsstat_column[DRS_FSSTAT_CLUMN_NUM];
2021-07-16 16:06:59 +08:00
};
int doris_mkdir_according_path(const char * path);
int doris_create_listen_socket(int bind_port);
2021-07-16 16:06:59 +08:00
#endif