天天看點

開發相關的概念

背景

CAP理論

參考–深入解讀zookeeper一緻性原理

(1) 理論概述

分布式領域中存在CAP理論:

① C:Consistency,一緻性,資料一緻更新,所有資料變動都是同步的。

② A:Availability,可用性,系統具有好的響應性能。

③ P:Partition tolerance,分區容錯性。以實際效果而言,分區相當于對通信的時限要求。系統如果不能在時限内達成資料一緻性,就意味着發生了分區的情況,必須就目前操作在C和A之間做出選擇,也就是說無論任何消息丢失,系統都可用。

該理論已被證明:任何分布式系統隻可同時滿足兩點,無法三者兼顧。 是以,将精力浪費在思考如何設計能滿足三者的完美系統上是愚鈍的,應該根據應用場景進行适當取舍。

(2) 一緻性分類

一緻性是指從系統外部讀取系統内部的資料時,在一定限制條件下相同,即資料變動在系統内部各節點應該是同步的。根據一緻性的強弱程度不同,可以将一緻性級别分為如下幾種:

① 強一緻性(strong consistency)。任何時刻,任何使用者都能讀取到最近一次成功更新的資料。

② 單調一緻性(monotonic consistency)。任何時刻,任何使用者一旦讀到某個資料在某次更新後的值,那麼就不會再讀到比這個值更舊的值。也就是說,可擷取的資料順序必是單調遞增的。

③ 會話一緻性(session consistency)。任何使用者在某次會話中,一旦讀到某個資料在某次更新後的值,那麼在本次會話中就不會再讀到比這個值更舊的值。會話一緻性是在單調一緻性的基礎上進一步放松限制,隻保證單個使用者單個會話内的單調性,在不同使用者或同一使用者不同會話間則沒有保障。

④ 最終一緻性(eventual consistency)。使用者隻能讀到某次更新後的值,但系統保證資料将最終達到完全一緻的狀态,隻是所需時間不能保障。

⑤ 弱一緻性(weak consistency)。使用者無法在确定時間内讀到最新更新的值。

用戶端

應用辨別

安卓系統是 Package name,是Android系統中是判斷一個 App 的唯一辨別;

ios 是 bundle id,android 是 packageName,

一般情況下都叫 bundle ID 或者 App ID,預設大家都知道說的是個啥;

由于蘋果和谷歌的原因,同一個應用的 android packageName 和 ios bundle id 不同,

比如,微信:

ios bundle id 是:com.tencent.xin

android packageName 是:com.tencent.mm

關于手機裝置的一些知識

IMEI

(International Mobile Equipment Identity,IMEI)即通常所說的手機序列号、手機“串号”,用于在行動電話網絡中識别每一部獨立的手機等行動通訊裝置,相當于行動電話的身份證。序列号共有15位數字,前6位(TAC)是型号核準号碼,代表手機類型。接着2位(FAC)是最後裝配号,代表産地。後6位(SNR)是串号,代表生産順序号。最後1位(SP)一般為0,是檢驗碼,備用。國際移動裝置識别碼一般貼于機身背面與外包裝上,同時也存在于手機記憶體中,通過輸入*#06#即可查詢。

MEID

IMEI碼由GSM統一配置設定,那麼CDMA制式的手機采用的識别碼是MEID

IMSI

簡介之百度百科:國際移動使用者識别碼(IMSI:International Mobile Subscriber Identification Number)是差別移動使用者的标志,儲存在SIM卡中,可用于差別移動使用者的有效資訊。其總長度不超過15位,同樣使用0~9的數字。其中MCC是移動使用者所屬國家代号,占3位數字,中國的MCC規定為460;MNC是移動網号碼,由兩位或者三位數字組成,中國移動的移動網絡編碼(MNC)為00;用于識别移動使用者所歸屬的移動通信網;MSIN是移動使用者識别碼,用以識别某一移動通信網中的移動使用者

IDFA

蘋果和Google針對移動裝置推出的 廣告辨別符

1、IOS體系下:可以擷取

在IOS6.0以後版本均可以正常擷取IDFA,但手機使用者可以手動還原 以及 手動禁止擷取(手動關閉廣告追蹤,目前關閉的使用者占比較小)。同一個裝置上的所有APP都會擷取到相同的值。

示例:080006E2-5666-49C1-8786-3FD9FC77DC0A

2、Andriod體系下:受限擷取

其實在Andriod2.3以後,Google也學蘋果推出了IDFA,用于跟蹤廣告的唯一辨別,功能基本上與蘋果的IDFA是一樣一樣的。但是Google的這個IDFA是需要基于Google Play等基礎APP的,在國内環境下,Google的這些基礎APP要麼無法通路使用,要麼被手機廠商直接去掉了,是以Android手機上的IDFA在國内沒有起到唯一ID的作用。

IDFV

Identifier For Vendor(應用開發商辨別符),用來表示應用開發商的,Vendor就是應用開發商,如果該開發商的所有應用被解除安裝,那麼IDFV就會被重置;重裝後IDFV也不相同。

UDID

Unique Device Identifier,以前的裝置唯一辨別符,IOS5後不再使用。之後出現了OpenUDID。

Mac位址

IOS7後所有蘋果裝置擷取MAX位址都會傳回一個固定值