好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PHP實現的生成唯一RequestID類完整示例

PHP實現的生成唯一RequestID類完整示例

熱門標簽:h5 地圖標注 哈爾濱400電話辦理到易號網 智能外呼電銷系統 電銷機器人-快迭智能 拉薩打電話機器人 高識別電銷機器人 合肥外呼系統app 寶安400電話辦理 沈陽人工智能電銷機器人公司

本文實例講述了PHP實現的生成唯一RequestID類。分享給大家供大家參考,具體如下:

這里介紹PHP生成唯一RequestID類,使用session_create_id()與uniqid()方法,保證唯一性,提供完整代碼及演示,方便大家學習使用。

現在的系統設計一般使用分布式系統,一個請求可能要調用幾個微服務處理,最后再把結果返回。當請求出現問題時,我們很難去跟蹤是哪個微服務出現問題。

每個請求訪問服務器時,我們可以給這個訪問加入一個唯一標識(RequestID),在請求開始,請求過程中,及請求結束時,把這個請求流程關鍵的數據寫入日志(例如訪問時的參數,經過那些方法,微服務,結束時返回的數據等),當訪問出現問題時用于參考,方便追蹤到問題。

例如一個請求需要經過幾個微服務再返回輸出

請求->A->B->C-A->輸出

如果訪問過程沒有輸出,或輸出錯誤,我們可以根據RequestID找到A,B,C對應的日志,檢查是哪個服務出現問題。

代碼如下:

RequestID.class.php

?php
/**
 * PHP生成唯一RequestID類
 * Date: 2018-04-10
 * Author: fdipzone
 * Version: 1.0
 *
 * Description:
 * PHP實現生成唯一RequestID類,使用session_create_id()與uniqid()方法實現,保證唯一性。
 *
 * Func:
 * public generate 生成唯一請求id
 * private format 格式化請求id
 */
class RequestID{ // class start
 /**
  * 生成唯一請求id
  * @return String
  */
 public static function generate(){
  // 使用session_create_id()方法創建前綴
  $prefix = session_create_id(date('YmdHis'));
  // 使用uniqid()方法創建唯一id
  $request_id = strtoupper(md5(uniqid($prefix, true)));
  // 格式化請求id
  return self::format($request_id);
 }
 /**
  * 格式化請求id
  * @param String $request_id 請求id
  * @param Array $format  格式
  * @return String
  */
 private static function format($request_id, $format='8,4,4,4,12'){
  $tmp = array();
  $offset = 0;
  $cut = explode(',', $format);
  // 根據設定格式化
  if($cut){
   foreach($cut as $v){
    $tmp[] = substr($request_id, $offset, $v);
    $offset += $v;
   }
  }
  // 加入剩余部分
  if($offsetstrlen($request_id)){
   $tmp[] = substr($request_id, $offset);
  }
  return implode('-', $tmp);
 }
} // class end
?>

demo:

?php
require 'RequestID.class.php';
// 生成10個請求id
for($i=0; $i10; $i++){
 echo RequestID::generate().PHP_EOL;
}
?>

輸出:

16532925-4502-CDAD-23A2-463FC7B5803A
500B77AD-CD24-0DDA-9E6E-2FDF2DD7CA94
813143D0-958F-9F56-E04F-679598594452
E5EE1B0B-E0D6-3E60-D831-462C5A262FCE
79E714B5-A37F-4B5E-4EDE-83E18391EBF9
E1C440AB-FC2C-AC74-E79A-016FD59D9651
AE483861-1040-BE8D-E523-D7638D0F0D35
BBD7A03A-36C9-24B7-C453-FB1DDD6E201E
BF62C3E6-9C5F-22CB-668D-381863B35268
E97E1F44-F048-962A-5BF7-1113727551B1

注意session_create_id方法需要php7.1以上的版本才可使用。

關于session_create_id方法可參考官網說明:
http://php.net/manual/zh/function.session-create-id.php

源碼下載地址:點擊此處本站下載

PS:這里再為大家提供兩款相關在線工具供大家參考使用:

在線隨機數字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu

在線隨機字符/隨機密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password

在線隨機數生成工具:
http://tools.jb51.net/aideddesign/rnd_num

在線隨機數/隨機密碼批量生成工具:
http://tools.jb51.net/aideddesign/rnd_pwd_tool

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數學運算技巧總結》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP數組(Array)操作技巧大全》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • 使用PHP uniqid函數生成唯一ID
  • PHP之uniqid()函數用法
  • PHP實現會員賬號單唯一登錄的方法分析
  • 完美解決thinkphp唯一索引重復時出錯的問題
  • PHP生成唯一ID之SnowFlake算法
  • 3種php生成唯一id的方法
  • PHP實現生成唯一會員卡號
  • PHP生成唯一訂單號
  • PHP隨機生成唯一HASH值自定義函數
  • PHP生成唯一訂單號的方法匯總
  • 高并發php uniqid不重復唯一標識符生成方案

標簽:巴中 梅州 山東 泰州 威海 張家口 林芝 成都

巨人網絡通訊聲明:本文標題《PHP實現的生成唯一RequestID類完整示例》,本文關鍵詞  PHP,實現,的,生成,唯一,RequestID,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現的生成唯一RequestID類完整示例》相關的同類信息!
  • 本頁收集關于PHP實現的生成唯一RequestID類完整示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 王爷在书房含她的乳尖H| 免费乱理伦在线播放| 宿舍506老农的艳福续| 好紧好爽好湿别拔出来视频| 真人做爰68姿势视频| 含羞草影院在线免费观看| 男人扒女人内裤强吻摸内裤衩| 粉嫩小泬BBBB免费看按摩| 性XXⅩ欧美老妇肥老太| 免费靠逼视频软件| 美女被艹视频| 香蒸焦蕉伊线| 教授不可以无删减版动漫| KTV把奶罩解开让客人摸| 同城约上门服务约爱| 《明明说过要用TT了》| 中文日韩欧美| _国产成人a亚洲精品v| 亚洲AV秘?无码一区坂井| videofreeones性欧美另类| 成人??高潮片免费视频| 黄页网址大全免费观看35| 丰满岳乱妇| 中文字幕一区三区久久女搜查官 | 动漫女头像冷酷霸气| 国产成人精品免费视频下载| 亚州欧美精品suv| 身体改造媚药调教催眠小说| 国产美女黄网站免费视频| 成熟老妇女电影| 国产AV明星无码免费看| 无码人妻一区二区三区性色aV在线| 校草被c呻吟双腿打开bl双性| 日韩黄网站| 成人精品97久久碰碰影院| 蜜臀AV精品久久| 91久久精品国产91性色tv| 爽?好大?快?深点最| 老刘头张倩倩的春天最新章节| 聊斋艳谭2之狂女色情| 欧美精品久久久久久久夜夜嗨|