基于LibYaml函数库的twemproxy配置文件解析和修改
一个标准的twemproxy配置文件一般有如下的格式和内容:
nutcarcker.yml
alpha:
listen: 127.0.0.1:22222
hash: fnv1a_64
distribution: ketama
auto_eject_hosts: true
redis: true
server_retry_timeout: 30000
server_failure_limit: 1
servers:
- 192.168.1.10:6379:1 master0
- 192.168.1.7:6379:1 master1
要解析这种格式的文件,可以使用twemproxy中提供的第三方函数库LibYaml。
dealYML.h
#ifndef DEALYML.h
#define DEALYML.h
#include <stdio.h>
#include <string.h>
#include <yaml.h>
typedef struct Conf
{
char *filename; //配置文件开头的字符
char *listen; //twemproxy启动的ip和port
char *redis; //是否使用redis代理
char *hash; //指定hash函数
char *distribution; //指定分片函数
char *auto_eject_hosts; //是否移除无响应的节点