zoukankan      html  css  js  c++  java
  • dbproxy-id生成器

    id生成器使用的是snowflake, 需要执行 snowflake_init(region_id, worker_id); 而region_id和worker_id是在配置文件中配置的

    network_mysqld_proxy_plugin_apply_config
    位置plugins/proxy/proxy-plugin.c

    int network_mysqld_proxy_plugin_apply_config(chassis *chas, chassis_plugin_config *oldconfig) {
        ...
        int region_id = 0;
        int worker_id = 0;
        gboolean is_complete = FALSE;
        gchar *id_generate = g_strdup(config->id_generate);
    
    
        if ( (region_id = strtoll(strsep(&id_generate, ":"), NULL, 10)) != NULL) {
             g_log_dbproxy(g_message, "##### is %s", id_generate);
            if ( (worker_id = strtoll(strsep(&id_generate, ":"), NULL, 10)) != NULL) {
                is_complete = TRUE;
            }
        }
        if (is_complete) {
             snowflake_init(region_id, worker_id);
             g_log_dbproxy(g_message, "id_generate is %s, region_id is %d, worker_id is %d", config->id_generate, region_id, worker_id);
        } else {
            g_log_dbproxy(g_critical, "id_generate is %s, region_id is %d, worker_id is %d", config->id_generate, region_id, worker_id);
        }
        ...
    }
  • 相关阅读:
    windows加固方案
    redis集群
    tar命令
    nfs安装配置
    nginx php版本隐藏
    细谈select函数(C语言)
    linux 下各errno的意义(转)
    iperf交叉编译:
    主机和虚拟机不能ping通问题
    Linux中tcpdump的编译和使用
  • 原文地址:https://www.cnblogs.com/taek/p/8353744.html
Copyright © 2011-2022 走看看