赞
踩
g_check_file_duplicate说明有文件备份存在,需要和ServerArray内的所有服务器握手。
通信主要使用libevent组件,这篇文章有介绍,了解一下:
libevent简单介绍:http://blog.csdn.net/mafuli007/article/details/7476014
业务处理架构
以一个fastDFS tranker客户端查询访问流程为例简单说明:
客户端:
fastdfs_tracker_query_storage_store->php_fdfs_tracker_query_storage_store_impl->tracker_query_storage_store_with_group/tracker_query_storage_store_without_group->tcpsenddata_nb(TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITH_GROUP_ONE/TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITHOUT_GROUP_ONE)/fdfs_recv_response
使用同步等待的方式,等待服务端的响应消息
服务端:
tracker_deal_task(TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITH_GROUP_ONE)->tracker_deal_service_query_storage
A、通过bsearch查询g_groups组内名字匹配的FDFSGroupInfo
B、tracker_check_reserved_space计算保留空间
C、tracker_get_writable_storage,从当前写的服务器(应为storage)中的下一个开始,current_write_server++先
D、将StoreGroup中所有的active_servers的IP地址写入响应消息体中,并返回给客户端
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。