storage初始化註冊:其對於tracker做客戶端處理
1、storage程序main->storage_func_init->storage_func_init->tracker_get_my_server_id->tracker_get_storage_id->tcpsenddata_nb(tracker_proto_cmd_storage_get_server_id)/fdfs_recv_response
2、storage程序main->storage_func_init->fdfs_get_storage_ids_from_tracker_group->fdfs_get_storage_ids_from_tracker_server->tcpsenddata_nb(tracker_proto_cmd_storage_fetch_storage_ids)/fdfs_recv_response
3、storage程序main->tracker_report_thread_start->tracker_report_thread_entrance->tracker_get_storage_max_status->tracker_get_storage_status->tcpsenddata_nb(tracker_proto_cmd_storage_get_status)定時觸發
storage程序main->storage_func_init->storage_check_and_make_data_dirs->storage_disk_recovery_restore->recovery_get_src_storage_server->tracker_get_storage_max_status->tracker_get_storage_status->tcpsenddata_nb(tracker_proto_cmd_storage_get_status)初始化獲取
tracker作服務端處理:
1、tracker_deal_task(tracker_proto_cmd_storage_get_server_id)->tracker_deal_get_storage_id->fdfs_get_storage_id_by_ip
2、tracker_deal_task(tracker_proto_cmd_storage_fetch_storage_ids)->tracker_deal_fetch_storage_ids
3、tracker_deal_task(tracker_proto_cmd_storage_get_status)->tracker_deal_server_get_storage_status->
獲取到的資料放入fast_task_info結構的data欄位中,靜荷資料前有trackerheader頭,靜荷資料依次拷貝,服務處理最後呼叫send_add_event完成傳送
storage之間相互同步:
tracker_report_thread_start->tracker_report_thread_entrance->tracker_heart_beat->tracker_check_response->
a、storage相互間開始同步:trunk_sync_thread_start_all->trunk_sync_data->tcpsenddata_nb(storage_proto_cmd_trunk_sync_binlog)/響應
b、向tracker通報變化:tracker_merge_servers->tracker_sync_diff_servers->tcpsenddata_nb(tracker_proto_cmd_storage_replica_chg)
服務端處理:
storage_deal_task(storage_proto_cmd_trunk_sync_binlog)->storage_server_trunk_sync_binlog->trunk_binlog_write_buffer->trunk_binlog_fsync 寫入trunk_binlog_fd檔案並fsync強制落盤
tracker變化處理:tracker_deal_storage_replica_chg->tracker_mem_sync_storages 只向group中相應storage_id記錄ip和狀態變化
storage與client互動,client做客戶端
1、php_method(fastdfs, storage_upload_by_filename1)->storage_upload_by_filename1_ex(storage_proto_cmd_upload_file)->storage_upload_by_filename_ex->storage_do_upload_file->tcpsenddata_nb()/tcpsendfile/fdfs_recv_response
當中會使用sendfile零拷貝傳送完整檔案,包括file_1g_size以上的大檔案
storage服務端處理:
storage_deal_task(storage_proto_cmd_upload_file)->storage_upload_file->storage_write_to_file
JMeter 功能概要(二)
存放可執行檔案和配置檔案 jmeter.bat windows的啟動檔案 jmeter.log 日誌檔案 jmeter.sh linux的啟動檔案 jmeter.properties 系統配置檔案 jmeter server.bat windows分布式測試要用到的伺服器配置 jmeter serv...
網路各層功能和概要
物理層 各種通訊物件,資料鏈路層 對應硬體 例 介面卡 網絡卡 任務 將ip資料報封裝成幀,功能 使在物理層透明傳輸 傳輸的資料的內容 格式及編碼沒有限制 差錯檢測 可靠性,資料鏈路層傳輸免去對丟失資訊 干擾資訊及順序不正確等的擔心。在物理層中這些情況都可能發生,在資料鏈路層中必須用糾錯碼來檢錯與糾...
資料分析 概要
隨著網際網路的日益繁榮以及人工智慧的不斷火熱,我們會產生大量的資料,這些資料背後隱藏著大量的有用 核心的資訊。比如說通過蒐集 京東 天貓等購物資料,可以大概了解使用者喜歡購買哪些商品,從而構建知識圖譜,然後通過系統推薦演算法給使用者推薦一些商品,從而促進消費。因此,資料分析也越來越有地位,當然資料分...