999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

短地址服務開發關鍵問題與解決方案

2014-04-29 00:00:00李勇
職業·中旬 2014年6期

摘#8195;要:本文介紹將資源地址轉換成6位不重復的短地址,在高并發情況下的海量數據存儲及高速讀寫的實現方案。

關鍵詞:二維碼#8195;短地址#8195;實現方案

一、背景分析

二維碼的出現使資源傳輸由原來的USB拷貝轉變為二維碼掃描訪問或下載。為下載資源提供短地址服務,需將短地址生成二維碼。資源數據量預計可達10億級別,日新增數據1000萬左右,每秒并發訪問數預計2000個連接,響應時間在0.1秒以內。

二、基本原理

1.將原始地址轉換為短地址

2.將短地址轉換為原始地址

3.關鍵問題

將原始地址轉換為不重復的6位地址標志,海量數據的高并發讀寫。

三、項目實現

1.地址實現方案

實現短地址服務,首先要將海量的鏈接數據轉化為不重復的6位字符。

(1)哈希算法。哈希算法相對簡單,具體算法如下:

①將原地址md5轉換成32位哈希碼,分為4段,每段8字節。

②對這四段地址進行循環處理,取8個字節,將其看成16進制串與0x3fffffff(30位1)與操作,即超過30位的忽略處理。

③將30位生成6段,每5位數字作為字母表在索引取得特定字符,依次進行獲取6位字符串。

④總的md5串可以獲得4個6位串,取任意一個就可作為這個長url的短url地址。

這種方法實現起來簡單,但是有較高的重復度。

(2)62位字符表示。把數字和字符組合成一定的映射,就可以產生唯一的字符串,再利用洗牌算法,把原字符串打亂后保存,對應位置的組合字符串就會是無序的組合。

2.大數據存儲解決方案

在本項目中,主要存儲數據有資源下載地址及引用頁地址,預估資源下載地址長度為150個字符,引用頁地址長度為50字符,兩者存起來共200字符,再加上數據庫自身結構占用的空間及其他信息,如時間、ID等,存儲一條數據最少需要250個字節。從當前訪問量來看,預計數據將達到10億條。

總數據量=250 * 10^9 /(1024*1024*1024)= 230G

當前采用的是mysql架構, 10億條數據遠遠超過了其處理能力。因此要對數據庫進行分庫分表,將表大小限定為10萬條數據,每個數據庫1000張表,數據庫隨著數據的增長而擴展,表中的ID進行自增長,通過數據庫ID、表ID、數據ID三者就可以唯一確定條數據,將這個值轉換成62進制就得出了唯一的短鏈接地址。

合成ID算法代碼:

($database_id*self::database_tables*self::table_rows)+$row_id+ ($table_id*self::table_rows);

每個數據庫將存儲1000*100000=1億條數據,數據將分布在10臺機器上,10臺機器將分解高峰階段的每秒2000個并發讀寫操作。這種算法在初期可能會對單臺機器造成過載,可采用逐步加壓的方式,當數據庫服務器增多后可全部開放。

3.高并發解決方案

應對每秒2000次的并發訪問需要服務器具有快速的讀寫及負載均衡能力,主要需要解決兩方面的問題:用戶在創建短地址時,需確認該資源沒有創建過;當用戶在訪問一個短地址時,服務器需快速響應。從數據庫直接讀取無法滿足速度需求,同時會造成服務器過載導致系統崩潰。因此,需要將資源url放到內存中,使用內快進行快速讀取。

4.關鍵問題解決方式

(1)問題一解決方案。由于數據是先有ID后有短地址,無法通過資源地址反查到短地址,因此,需要使用一個內存映射,將資源與短地址(數據ID)聯系起來。

操作流程:原始地址→16字節長度的原始二進制md5→從redis中查找是否存在數據ID→從內存緩存或數據庫中取出數據→判斷數據庫中的地址是否與原地址相同→不同則插入數據庫中,建立16字節長度原始二進制md5與數據ID建立聯系存入redis中。

(2)問題二解決方案。將熱數據放入緩存中,減輕數據庫負載,限制一天過期時間,可以防止內存使用過大。

操作流程:短地址→查找內存→未找到將短址轉為ID→從數據庫中查找→存入緩存→返回數據。

四、小結

短地址服務是一個比較復雜的項目,生成短6位短碼是關鍵點,采用數據ID遞增進行62位轉換的方式,可簡單有效地實現需求。

(作者單位:廣東省高級技工學校 )

主站蜘蛛池模板: 青青青国产免费线在| 国产精品自在在线午夜| 国产在线一区二区视频| 国产精品毛片在线直播完整版| 欧美国产日产一区二区| 99精品这里只有精品高清视频| 国产精品思思热在线| 免费a在线观看播放| 无码精品福利一区二区三区| 国产精品黑色丝袜的老师| 日本高清成本人视频一区| 国内a级毛片| 欧美啪啪精品| 亚国产欧美在线人成| 国产综合亚洲欧洲区精品无码| 巨熟乳波霸若妻中文观看免费| 亚洲天堂久久| 国产精品亚洲一区二区三区在线观看| 中文无码伦av中文字幕| 99精品国产电影| 美美女高清毛片视频免费观看| 日韩国产精品无码一区二区三区| 农村乱人伦一区二区| 日韩AV无码一区| 高清无码一本到东京热| 草逼视频国产| 嫩草在线视频| 高清不卡毛片| 婷婷六月综合网| 狠狠色婷婷丁香综合久久韩国| 欧美日韩精品综合在线一区| 亚洲香蕉久久| 日韩福利在线观看| 色网站免费在线观看| 国产精品久久自在自2021| 午夜日b视频| 亚洲三级电影在线播放| 国产在线一区二区视频| 青青草原国产| 亚洲69视频| 久久一本精品久久久ー99| 亚洲精品欧美日本中文字幕| 2022国产无码在线| 欧洲亚洲一区| 久久久久久久久久国产精品| 58av国产精品| 久久精品欧美一区二区| 亚洲色成人www在线观看| 黄色福利在线| 日韩欧美视频第一区在线观看| 四虎永久免费地址| 成人av手机在线观看| 久久国产黑丝袜视频| 国产一二三区在线| 91精选国产大片| 欧美日韩一区二区三| 无码AV高清毛片中国一级毛片| 国产欧美性爱网| 热九九精品| 国产91av在线| 国产精品久久自在自线观看| 国产午夜无码片在线观看网站| 亚洲欧洲日韩久久狠狠爱| 91久久偷偷做嫩草影院精品| 无码一区18禁| 国产成人无码AV在线播放动漫| 色亚洲成人| 最新国产成人剧情在线播放| 日韩福利在线观看| 日韩成人午夜| 久热99这里只有精品视频6| 久久精品91麻豆| 99在线国产| 日本一区高清| 国产成年女人特黄特色大片免费| 久久国产亚洲偷自| 69国产精品视频免费| Jizz国产色系免费| 亚洲人成影视在线观看| 亚洲 欧美 日韩综合一区| 欧美成人a∨视频免费观看| 国产成人综合久久精品下载|