SAE[雲計算平台]

SAE[雲計算平台]

Sina App Engine(簡稱SAE)是新浪研發中心於2009年8月開始內部開發,並在2009年11月3日正式推出第一個Alpha版本的國內首個公有App Engine,SAE是新浪雲計算戰略的核心組成部分。

基本信息

起源

SAE作為國內的公有雲計算,從開發伊始借鑑吸納Google、Amazon等國外公司的公有雲計算的成功技術經驗,並很快推出有別於國外公司並具有自身特色的App Engine。SAE選擇在國內流行最廣的Web開發語言PHP作為首選的支持語言,Web開發者可以在Linux/Mac/Windows上通過SVN或者Web版線上代碼編輯器進行開發、部署、調試,團隊開發時還可以進行成員協作,不同的角色將對代碼、項目擁有不同的許可權;SAE提供了一系列分散式計算、存儲服務供開發者使用,包括分散式檔案存儲、分散式資料庫集群、分散式快取、分散式定時服務等,這些服務將大大降低開發者的開發成本。同時又由於SAE整體架構的高可靠性和新浪的品牌保證,大大降低了開發者的運營風險。另外,作為典型的雲計算,SAE採用“所付即所用,所付僅所用”的計費理念,通過日誌和統計中心精確的計算每個套用的資源消耗(包括CPU、記憶體、磁碟等)。

核心優勢

SAE的基本目標用戶有兩種,一種是Web開發者,另一種是普通網際網路上網人群。

對於Web開發者,SAE帶來的好處有:

·硬體成本更低,無需預先購買設備,承擔更大的投入風險

·開發成本更低,SAE提供許多服務供開發者使用,開發者無需重複開發,包括佇列、資料庫、快取、定時、驗證碼、計數器,幾乎覆蓋了Web開發的所有領域。另外對於特定開放平台的開發者,比如WAP開發者,SAE已經集成了完整的OpenAPI的封裝,將開發者的開發成本降到最低。值得一提的是,SAE的開發者已經形成了良好的交流氛圍,在意見反饋中心、SAE官方群,SAE官方微群可以看到很多熱情的開發者在一起共同提高

·運維成本更低,在SAE上的套用無需關心硬體維護、服務監控、數據容災等操作,SAE會通過其高可靠的架構和方便的監控頁面為用戶將運維成本降到最低擴展性更強,在SAE上的服務無需關心服務壓力猛增時帶來的擴容等操作,SAE自動支持服務擴展

·更加安全可靠,SAE自動提供SQL語句性能分析、前端防攻擊、代碼檢查等功能,在SAE上的所有套用均為多機房容災部署,比傳統的部署模式更加安全可靠,並且SAE提供服務的SLA來實現對用戶服務質量的承諾

對於普通上網人群,使用SAE可以:

使用推薦套用一鍵安裝Web套用,普通用戶無需會編碼,也可以在瞬間擁有自己的團購、部落格、微博、Wiki等。

整體架構

SAE從架構上採用分層設計,從上往下分別為反向代理層、路由邏輯層、Web計算服務池。而從Web計算服務層延伸出SAE附屬的分散式計算型服務和分散式存儲型服務,具體又分成同步計算型服務、異步計算型服務、持久化存儲服務、非持久化存儲服務。各種服務統一向日誌和統計中心匯報,參考下圖:

SAE[雲計算平台] SAE[雲計算平台]

Level7 Reverse Proxy(7層反向代理層):HTTP反向代理,在最外層,負責回響用戶的HTTP請求,分析請求,並轉發到後端的Web服務池上,並提供負載均衡、健康檢查等功能。

Service Router(服務路由層):邏輯層,負責根據請求的唯一標識,快速的映射(O(1)時間複雜度)到相應的Web服務池,並映射到相應的硬體路徑。如果發現映射關係不存在或者錯誤,則給出相應的錯誤提示。該層對用戶隱藏了很多具體地址信息,使開發者無需關心服務的內部實際分配情況。

Web Service Pools(Web服務池):由一些不同特性的Web服務池組成。每個Web服務池實際是由一組Apache(PHP)組成的,這些池按照不同的SLA提供不同級別的服務。每個Web服務進程實際處理用戶的HTTP請求,進程運行在HTTP服務沙盒內,同時還內嵌同樣運行在SAE沙盒內的PHP解析引擎。用戶的代碼最終通過接口調用各種服務。

Statistics Center & Log Center(日誌和統計中心):負責對用戶所使用的所有服務進行統計和資源計費,並設定的分鐘配額,來判定是否有非正常的使用。分鐘配額描述了資源消耗的速度,當資源消耗的速度到達一個預警閾值時,SAE通知系統會提前向用戶發出一個警告,提醒用戶套用在某個服務上的使用可能存在問題,需要介入關注或處理,配額系統是SAE用來保證整個平台穩定的措施之一;日誌中心負責將用戶所有服務的日誌匯總並備份,並提供檢索查詢服務。

各種分散式服務:SAE提供覆蓋Web套用開發主要方面的多種服務,用戶可以通過StdLib(可以理解為SAE PHP版的STL)很方便的調用它們。同時因為Web服務的多樣性,SAE的標準服務不可能滿足所有場景的需求,所以SAE通過服務匯流排來對接第三方服務(如分詞、全文檢索等),SAE也歡迎第三方服務商選擇SAE來為開發者提供服務。

真正的用戶代碼是跑在SAE提供的Web運行環境下的,為了提供公有雲計算特有的安全性,SAE設計多層沙盒來保證用戶套用之間的隔離性。參考下圖:

SAE[雲計算平台] SAE[雲計算平台]

最內層的就是用戶代碼,大部分PHP代碼不需要做任何修改就可以跑在SAE平台上。小部分代碼需要做一些修改以適應SAE的平台特性。這主要有,SAE因為安全性禁用了本地IO,所以fwrite等函式需要修改為使用TmpFD讀寫本地臨時檔案或者直接通過Storage服務讀寫我們的分散式檔案存儲。

PHP Zend為標準的PHP官方解釋器。

SAE Zend Sandbox為一個邏輯概念,為用戶的代碼運行提供良好的隔離性。這裡有兩個層面:

1、是通過標準的php.ini,我們設定了一些特殊配置和禁用函式;

2、為了達到一些php.ini無法實現的沙盒功能,我們對Zend解釋器核做了一些改進,以便通過用戶標識將資源進行隔離。另外我們還把一些SAE的特定服務也在Zend層做了融合。

Apache為標準的Apache Web Server。不過我們禁用了htaccess,並提供了自己實現的替換方案AppConfig。用戶可以通過類自然語言的方式編寫AppConfig,如- compress: if(out_header["Content-Length"] >= 500) compress 表示按條件啟動頁面壓縮。AppConfig提供的功能有:目錄默認頁面、自定義錯誤頁面、壓縮、頁面重定向、頁面過期、設定回響頭的content-type、設定頁面訪問許可權。我們選擇自行實現AppConfig還有一個考慮,就是因為傳統Apache的htaccess因為要按目錄遞歸方式合併配置檔案,效率不能滿足SAE的需求。

HTTP Server沙盒為Apache的安全可靠運行提供了多種保護功能,比如防止某個用戶惡意占用連線數從而導致整個Web服務不正常。

最外層的是標準POSIX環境,我們的服務跑在Linux上。

接著將詳細討論我們架構設計的特點。

· 擴展性

擴展性是分散式系統的兩個主要目的之一,SAE作為公有雲計算,同樣把服務的擴展性作為架構設計的重要指標,要求在用戶增長、壓力提升的情況下,可以實現自動的服務擴展,同樣的當壓力降低時,可以將服務收縮,以節約資源,整個過程無需人工參與。SAE人工只需做好容量規劃和管理。國外的公有雲計算架構的擴展性主要有兩個思路:

靜態擴展,用戶和資源有強綁定關係。最典型的例子為亞馬遜的EC2和Ruby雲計算平台Heroku,用戶申請的資源和用戶有嚴格的一對一關係,換句話說,A用戶申請的虛擬機在A退還資源前,B用戶不能使用,哪怕A用戶的虛擬機處於閒置狀態。

動態擴展,用戶和資源沒有強綁定關係。最典型的例子為Google App Engine,用戶申請的資源和用戶沒有嚴格的一對一關係,換句話說,處理A用戶請求的進程在處理完之後,可以馬上處理B用戶的請求。

兩種擴展性各有利弊,靜態擴展的長處是為平台提供了良好的隔離性,資源可以固定的映射在某個用戶下,但缺點是資源利用率不高;動態擴展的長處是資源利用率高,這樣整個雲計算平台的成本會很低,但缺點是對隔離性有更高的要求,因為資源可以在很短的時間被多個用戶使用。相比較,在安全性上,動態擴展要比靜態擴展的技術門檻更高。

在SAE平台上,我們採用以動態擴展為主,靜態擴展為輔的兼而有之的設計。在Web計算池層,是典型的動態擴展,沒有一個用戶獨占Web服務進程,而是所有用戶以共享的方式使用Web服務進程,通過Cache,熱的用戶自然在快取層占據更多的位置。而在SAE的某些服務中,擴展性又是以靜態擴展的方式展現,如RDC(Relational DB Cluster)分散式資料庫集群,當用戶申請了MySQL服務,我們就會在RDC後端根據SLA的級別創建一主多從的DB給用戶,在用戶顯式的刪除該DB前,該DB都不會被別人使用。當然,通過RDC,任何一個用戶也無需知道後端DB的實際地址,只需訪問RDC統一的host和port即可。

· 高可靠性

HA是分散式系統的另一個主要目的,SAE同樣以提供服務的高可靠性為架構設計的重要指標。HA的實現途徑主要有兩個,一個是硬體保證,一個是架構的冗餘設計。

在SAE平台上,所有伺服器都是新浪標準採購的硬體設備,運行在國內最好機房內,並進行多機房容災,網路資源方面則享用入口網站所使用的頻寬環境。另外,所有的硬體設備都有專門的運維部門負責,故障的回響速度和新浪內部服務一樣。

在架構設計上,SAE通過對所有服務都進行冗餘設計來提供服務的高可靠性。這裡的服務可以分成計算型和數據型兩種類別討論:

針對計算型程式,冗餘設計就是程式在多節點運行。但這樣會帶來一致性問題,最主要的困擾就是選舉問題,如何在多個節點中選出一個主節點來執行。比如SAE上的分散式定時服務Cron,採用多點部署方式,多個計算節點相互隔離,通過時鐘同步服務同時觸發用戶設定的定時任務,但要求只能有一個節點負責執行。為了解決這個問題,SAE設計出了一套分散式鎖算法來提供選舉服務。該算法可以在犧牲某些特定條件下的一致性來提供比Paxos算法更高的可靠性(3台機器在最高任意2台機器發生故障的情況下整個選舉過程仍然正常,而Paxos算法最多容忍1台)。截止至2012年12月該算法正在申請專利,並廣泛套用在SAE內部。

針對數據型服務,SAE主要是通過複製來保證服務的高可靠性。SAE上的數據存儲服務普遍採用被動複製和主動複製兩種方式。如SAE上MySQL之間的主從Binlog同步就是典型的被動複製,TaskQueue、DeferredJob等服務也採用被動複製的方式,用戶的任務描述會寫到到主記憶體級佇列中,主佇列利用後台執行緒將寫操作同步到從佇列上,一旦主佇列發生故障,從佇列會快速的切換為主佇列。另外SAE上也有部分服務採用主動複製(雙寫複製)的方式來保證HA,比如Cron,當用戶通過App的工程配置檔案appconfig.yaml設定定時任務時,任務信息會以雙寫的方式寫到多個持久化DB中,以供後續的到時觸發。

另外,SAE在整體架構設計時,充分考慮服務之間的“優雅降級”,儘量降低服務之間的耦合度,我們要求任何一個服務都不要假設其他服務是可靠的。SAE平台上的所有服務均不存在單點設計,服務的平均HA在99.95%,即年平均服務不可用時間在4到5個小時之間。

線路特性

SAE[雲計算平台] SAE[雲計算平台]

· 平台出口IP:

220.181.129.126

220.181.129.121

220.181.136.229

220.181.136.230

http接口方需要IP授權可以進行相應的設定。

雲存儲類

MySQL:MySQL是SAE上的MySQL服務和普通MySQL服務幾乎一樣,所以如果你已經熟悉了MySQL的常規使用的話,會感到很簡單。

SAE平台為每個App幾乎支持所有的MySQL特性,以方便您用習慣的方式來運算元據庫。需要注意的是SAE的MySQL 資料庫服務需要顯式開啟或禁用。開啟MySQL資料庫服務後,您不但可以通過phpmyadmin來創建資料庫和數據表,還可以自由地導入導出資料庫中的數據。SAE的PHP環境提供了標準的MYSQL,MYSQLI和PDO模組(基於MySQLnd),您可以直接使用這三個模組來操作您的資料庫, 您還可以使用預定義常量來連線資料庫,我們也不排除未來調整資料庫連線埠的可能。另外SAE也提供了SaeMysql類,我們推薦您使用這個類來操作MySQL資源。MySQL還可以通過授權的方式支持跨套用調用,從而達到套用間數據共享和單套用多資料庫管理等目的。同時,為了防止個別用戶的攻擊和濫用,SAE還設定了服務限制和配額,保證絕大多數開發者在公有雲平台上的正常使用。

Storage:Storage是SAE為開發者提供的分散式檔案存儲服務,用來存放用戶的持久化存儲的檔案。

Storage是SAE為開發者提供的分散式檔案存儲服務,可以用來存儲持久化的檔案。使用該服務用戶需要先在線上管理平台創建Domain(相當於一級子目錄),創建完畢後即可在Storage進行檔案的管理。 用戶可以通過兩種方式操作其中的數據:一是通過cyberduck將用戶檔案上傳至Storage存儲中,然後通過線上管理平台將該檔案導入到MySQL中;二是通過sae_std_lib下的SaeStor的API進行檔案的讀寫操作。因為SAE平台限制使用本地IO,所以強烈建議開發者將所有需要持久化的檔案操作都通過Storage實現。

Memcache:Memcache是SAE為開發者提供的分散式快取服務,用來以共享的方式快取用戶的小數據。

用戶首先需要在線上管理平台上創建Memcache,然後通過標準的memcache*函式讀寫Memcache。使用Memcache服務不僅可以快速進行數據回響,而且可以減輕後端存儲的壓力。

KVDB:KVDB是SAE開發的分散式key-value數據存儲服務,用來支持公有雲計算平台上的海量key-value存儲。

KVDB支持的存儲容量很大,對每個用戶支持100G的存儲空間,可存儲10億條記錄,用戶可用來存放如好友關係等簡單數據。 另外,KVDB的性能和可靠性都很高,據我們內部測試,讀寫均可達到10w gps,而且KVDB採用一主多從的分散式架構,支持KVDB的熱備和定期冷備,發生宕機時還可以自動切換到正常工作的DB上。

Counter:Counter是SAE為開發者提供的計數器服務,用來實現高並發情景下的計數功能。

Counter是SAE為開發者提供的計數器服務,用來實現高並發情景下的計數功能。用戶可以在控制臺或程式中創建計數器,通過SaeCounter的API對計數器進行加減和統計設定。 Counter簡化了計數套用的開發,開發者可以輕鬆實現高並發情景下的計數功能(如兔年春晚投票、廣告渠道訪問計數等套用),同時還可以使用Counter的統計功能輕鬆實現數據匯總。

Rank:Rank排行榜服務是SAE開發的用於在分散式環境下統計排名的服務。

Rank服務是SAE開發的用於分散式環境下的統計排名服務,允許每個用戶建立多個排行榜,其中每個排行榜都支持類似key-value的鍵值對操作。用戶不僅可以以O(logn)的時間複雜度獲取指定key的排名,還可以獲取到前N名的列表(時間複雜度為O(n))。排行榜服務的特點是可靠、快速,可以用於實時排名(如遊戲積分排名、軟體下載排名),同時排行榜支持過期時間設定,這樣方便進行周排名和月排名。另外,使用排行榜服務無需通過控制臺開通或關閉,可以直接使用排行榜API操作。 特別注意:Rank服務並不存放用戶的所有數據,只以一定比率的冗餘存放TopN的數據,這樣帶來一個影響,就是如果數據存在激增/減的話,可能影響排名結果的準確性。為了保證激增導致的數據準確性問題,可以定期從數據重新導入新的準確數據。

雲計算類

Cron:Cron服務是SAE為開發者提供的分散式定時服務,用來定時觸發開發者的特定動作。

Cron服務是SAE為開發者提供的分散式定時服務,用來定時觸發開發者的特定動作(如定時計算排行榜)。Cron的設定是通過App的config.yaml來實現的,只要用戶在App目錄下的config.yaml里按照我們提供的語法格式進行配置部署後就能生效。Cron的執行是以HTTP方式觸發的,觸發後真正執行的是用戶在App中的PHP代碼。Cron服務是分散式環境部署的,具有高可靠性,多點之間相互隔離且同時觸發,並且通過分散式鎖進行選舉並最終由一個健康節點執行。 Cron任務里有兩類:每隔一段時間執行和特定時間執行。其中,每隔一段時間執行的任務又分為隨機偏移執行的任務和指定偏移執行的任務。這兩種任務對SAE平台的消耗不一樣,指定偏移的Cron-offset的資源消耗費用要比隨機偏移的Cron-nooffset的資源消耗費用高。此外,Cron還支持設定時間區間。

Image:Image是SAE為開發者提供的分散式圖像處理服務,用來同步的對圖片進行CPU密集型操作。

SAE已經支持GD(利用RPC實現),用戶可以使用傳統的GD函式處理圖片,照顧用戶以往的使用習慣,使用戶的學習成本降為零。所以我們建議用戶使用gd*函式進行圖像操作,但我們仍然保留了Image服務。

特別注意:

(1)處理前單張圖片大小限制: 暫無,但處理超大圖片時,不得超過PHP的使用記憶體上限64M;

(2)處理後單張圖片大小限制: 4M;

(3)系統預定義字型徑:請參見擴展閱讀

FetchURL:FetchURL是SAE為開發者提供的分散式網頁抓取服務,用來同步的抓取http頁面。

FetchURL是SAE為開發者提供的分散式網頁抓取服務,用來同步抓取http頁面。FetchURL針對國內的網路做了最佳化,最佳化後的網路內部含有調度系統,用來儘可能保證用戶快速的抓取到目標頁面。在SAE上使用FetchURL非常簡單,只需要調用sae_std_lib中的幾個簡單的函式即可。 SAE已經完全兼容cURL模組(內部用FetchURL實現),所以用戶可以使用cURL*函式進行HTTP請求。但需要特別注意的是,為了平台安全性,SAE對FetchURL也做了一些限制。 另外,SAE規定FetchURL的user-agent默認包含SAE/fetchurl-accesskey,其中的accesskey指的是用戶的accesskey。用戶可以自行添加user-agent,Referer用戶也可以自行定義。

Mail:Mail是SAE為開發者提供的分散式郵件傳送服務,用來異步傳送標準SMTP郵件。

使用郵件服務後,用戶只需要調用sae_std_lib中的函式即可,傳送失敗時會有異步訊息提醒用戶。

特別注意:

(1)用戶傳送郵件數量:根據Mail分鐘配額,每分鐘傳送郵件不超過50封,如果您短時間有大量郵件需要傳送,可以 通過taskqueue分解任務完成。

(2)單封郵件總大小(含附屬檔案) 小於等於 1M

(3)用戶傳送的郵件不得違背國內法律法規,不得從事不良行為(如傳送垃圾郵件、廣告郵件)。如發現,導致用戶 郵件賬號不能使用,SAE不負責責任

(4)Mail支持SMTP,為了保證賬號安全,建議用戶註冊新的專用於SAE郵件傳送的Email,和日常所用賬號區分

(5)為了保證您的郵件的到達率,SAE強烈建議使用新浪免費信箱進行郵件傳送。

TaskQueue:TaskQueue是SAE為開發者提供的分散式任務佇列服務,用來以異步HTTP方式執行用戶任務。

用戶需要先在線上管理平台上創建Queue,然後向Queue Push任務,放入佇列的任務隨即即會執行。TaskQueue任務的執行是以HTTP方式執行的,真正執行的是用戶在App中的PHP代碼,所以最長執行時間和HTTP頁面執行時間相同。TaskQueue服務是分散式環境部署的,具有高可靠性,每個worker相互隔離,並且主動負責任務執行。 Queue分為順序佇列和並發佇列,順序佇列的任務順序執行,而並發佇列中的任務則以並行的方式執行。用戶還可以為每個Queue指定error callback url,當每個任務執行失敗時,TaskQueue自動會調用error callback url通知開發者。

DeferredJob:DeferredJob是SAE為開發者提供的分散式重量級的長時間離線任務執行佇列。

DeferredJob

是SAE為開發者提供的分散式離線任務執行佇列,和TaskQueue的主要區別在於TaskQueue以HTTP方式觸發,有頁面執行時間的限制;而DeferredJob是由系統級語言執行的,沒有執行時間限制。DeferredJob支持兩種方式添加任務:1、通過套用的服務管理頁面添加任務,優點是比較簡單。2、通過SaeDeferredJob Api添加任務,優點是參數豐富,可設定更多的任務參數。DeferredJob限制每天只能添加10個任務。DeferredJob只支持用戶的資料庫大檔案導入/導出、資料庫批量操作,將來會支持更多種的任務類。另外 ,DeferredJob服務依賴Storage來存儲導入導出的檔案,使用DeferredJob前,請確保Mysql服務、Storage服務已初始化且未被禁用。

功能類

AppConfig:AppConfig服務是SAE為開發者提供的對web伺服器進行自定義配置的功能。

使用AppConfig開發者可以很方便的實現以下功能:自定義錯誤頁面;壓縮;頁面重定向;頁面過期;設定回響頭的content-type;設定頁面訪問許可權。 AppConfig已可以完全代替htaccess的常見功能,跟htaccess相比,appconfig具有效率高和學習成本低的優點。需要特別注意的是,截止至2012年12月,SAE的AppConfig只適用PHP語言。

XHProf:XHProf是Facebook放出的輕量級調試工具.和Xdebug相比,XHProf更加易用和可控。

XHProf是Facebook開發的輕量級調試工具,和Xdebug相比,XHProf更加易用和可控。尤其是生成流程圖和調試數據對比的功能很好很強大。如果我們並不想用戶每次訪問都生成調試數據,可以使用XHProf的按條件生成數據功能,一來不會降低程式的性能,二來不會浪費存儲空間。 在Alpha2中,SAE已經集成了XHProf工具,從此大家可以方便的利用XHProf進行調試了。另外調試的數據是存放在用戶自己的Storage中的,所以需要在Storage中創建一個專用的domain來存放。

TmpFS:TmpFS允許開發者通過標準的IO函式臨時讀寫本地IO,這樣方便了很多非SAE項目的移植。

TmpFS功能是SAE為了解決“出於平台安全性限制用戶對於本地IO的使用,但一些傳統的PHP項目會或多或少的有對本地IO的操作”的問題提出的。TmpFS允許開發者通過標準的IO函式臨時讀寫本地檔案系統,這樣方便了很多非SAE項目的移植。 用戶的可持久化存儲,請使用Storage或者MySQL存儲,而快取存儲請使用Memcache服務存儲,TmpFS是滿足用戶的一個請求的臨時檔案的讀寫需求。比如抓取一個URL的圖片,判斷一下大小,再決定是否寫入Storage。

Wrappers:SAE提供的Wrappers主要是用來兼容本地寫操作的一些命令。

Wrappers就是用來告訴stream流該如何處理(讀寫)特定的資源。SAE為 Memcache、KVDB、Storage服務封裝了Wrapper,跟相應的服務一樣實現對特定數據的讀寫。因為SAE的Runtime環境並不提供持久化本地IO能力,所以提供的Wrappers非常方便原有程式的移植。 但需要注意的是,使用Wrappers前請先初始化相應的服務,另外畢竟Wrappers又做了一層封裝,所以在效率上肯定不如原生的接口高,而且在功能上也不如原生接口豐富。所以SAE官方推薦大家優先使用原生接口。

套用防火牆:套用防火牆保護SAE上的套用數據不被抓站,保護用戶的雲豆不被惡意消耗。

套用防火牆是SAE開發的保護SAE上套用的數據不被抓站,保護用戶的雲豆不被惡意消耗的服務。防火牆啟用後,將從三個層面為您的套用提供保護:第一層:白名單設定,加入白名單的IP不受訪問限制;第二層:黑名單設定,加入黑名單的IP不能訪問該套用;第三層:訪問頻率/流量設定,超過頻率或者流量設定的IP將被攔截。

套用體檢:SAE套用體檢的主要作用是幫助用戶最佳化程式、資料庫、安全等,從而更好地為用戶服務。

服務主要包括以下內容:

(1)健康體檢:掃描套用性能健康狀況(如下載速度等);

(2)安全體檢:掃描套用本身安全漏洞;

(3)套用最佳化:針對您套用的體檢結果,給予最佳化建議。

、【 擴展服務】

簡訊服務:新浪無線簡訊服務是由新浪無線提供的綜合性簡訊服務。

新浪無線簡訊服務是由新浪無線提供的綜合性簡訊服務。通過該服務您可以給指定的手機發簡訊( 支持中國移動、中國聯通、中國電信網路,簡訊到達率90%以上);您傳送的簡訊內容字數將不能超過72字(不含簽名)。 簡訊服務屬於收費服務,您可以使用付費雲豆購買開通使用。

計費方式說明:

1、按次計費:10雲豆/次 。 扣費規則: 每調用一次sms::send方法,且成功返回結果自動扣減10付費雲豆。 若付費雲豆不足則中止服務。

2、包月套餐扣費規則:

1) 選擇包月套餐,使用付費雲豆支付套餐費用,購買成功後扣減付費雲豆。

2) 若使用額度超過套餐限額,按照套餐約定單價,自動扣減付費雲豆。若付費雲豆不足則終止服務

3) 若套餐過期,則剩餘套餐內額度失效。

地理位置服務:地理信息服務是由SAE提供的綜合地理信息服務,屬於擴展服務。通過此服務可以查詢路線,公交,IP位置,地圖等地理位置相關的信息。

該服務分為一級、二級、三級服務,其中一級服務為免費服務,二、三級服務在一級服務的基礎上提供額外功能,且為收費服務。

二級地理信息服務(收費服務)額外提供:根據實際地址返回地理信息坐標;根據地理信息坐標返回實際地址;判斷地理信息坐標是否是國內坐標;根據GPS坐標獲取偏移後的坐標;根據關鍵字按地址位置獲取POI點的信息;根據關鍵字按坐標點範圍獲取POI點的信息;根據關鍵字按矩形區域獲取POI點的信息。

三級地理信息服務(收費服務)額外提供:根據移動WIFI等數據獲取當前位置信息;生成一張靜態的地圖圖片。

中文分詞服務:中文分詞(Chinese Word Segmentation)指的是將一個漢字序列切分成一個一個單獨的詞。+

saeSegment是由新浪愛問提供的分詞服務,是擴展服務。該服務分詞準確率高,而且可以返回給每個詞的詞性。

蛐蛐兒SDK:採用仿生學技術,利用聲音實現手機之間,或者手機與PC之間的近距離信息傳輸。通過聲音傳輸二維碼信息,用於手機之間的近距離傳輸。可用廣泛用於開發檔案傳輸、社交分享、電子支付、電子門票等各類套用。

相關詞條

相關搜尋

熱門詞條

聯絡我們