mongo php sdk 阅读笔记(连接)

本文记录了Mongo PHP SDK在连接过程中的关键点,包括通过mongo_get_connection_single函数解析服务器地址和选项,详细阐述了失败服务器会被加入黑名单并在短时间内避免重试,以及每次获取连接后进行的ping操作,若失败则释放连接但不自动重连的机制。
摘要由CSDN通过智能技术生成

1 将servers的地址,选项解析出来后,具体的连接函数为mongo_get_connection_single(mcon/manager.c)

2 如果最近连接失败过的机器会加入黑名单,在短时间内不会去重试这台机器(默认是5秒)

3 每次取到连接后会ping一次,如果失败将连接置空,也不会重连(逻辑不太好,应该重连)

static mongo_connection *mongo_get_connection_single(mongo_con_manager *manager, mongo_server_def *server, mongo_server_options *options, int connection_flags, char **error_message)
{
    char *hash;
    mongo_connection *con = NULL;
    mongo_connection_blacklist *blacklist = NULL;

    hash = mongo_server_create_hash(server);

    /* See if a connection is in our blacklist to short-circut trying to
     * connect to a node that is known to be down. This is done so we don't
     * waste precious time in connecting to unreachable nodes */
    blacklist = mongo_manager_blacklist_find_by_hash(manager, hash);
    if (blacklist) {
        struct timeval start;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值