導航:首頁 > 去中心化 > jwt去中心化

jwt去中心化

發布時間:2023-09-24 15:17:32

『壹』 【知識總結】4.微服務的治理去中心化,服務發現,安全,部署

通常「治理」的意思是構建方案,並且迫使人們通過努力達到組織的目標。SOA治理指導開發者開發可重用的服務,以及隨著時間推移,服務應該怎麼被設計和開發。治理建立了服務提供者和消費者之間對於服務的協定,告訴消費者能從服務提供獲取到什麼樣的支持。

SOA中有兩種常見的治理:

那麼微服務中的治理是什麼意思呢?

在微服務架構中,不同的微服務之間相互獨立,並且基於不同的平台和技術。因此,沒有必要為服務的設計和開發定義一個通用的標准。

總結微服務的治理去中心化如下:

微服務架構下,有大量的微服務需要處理。由於微服務的快速和敏捷研發,他們的位置可能會動態變化。因此在運行時需要能夠發現服務所在的位置,服務發現可以解決這個問題。

注冊中心有微服務的實例和位置信息,微服務在啟動時向注冊中心注冊自己的信息,關閉時注銷。其它使用者能夠通過注冊中心找到可用的微服務和相關信息。

為了能找到可用的服務和他們的位置信息,需要服務發現機制。有兩種發現機制,客戶端發現和服務端發現。

客戶端發現 - 客戶端或者API網關通過查詢服務注冊中心或者服務的位置信息。

客戶端/API網關必須調用服務注冊中心組件,實現服務發現的邏輯。

服務端發現 - 客戶端/API網關把請求發送到已知位置信息的組件(比如負載均衡器)。組件去訪問注冊中心,找到微服務的位置信息。

類似Kubernetes( http://kubernetes.io/v1.1/docs/user-guide/services.html )這種微服務部署解決方案,就提供了伺服器端的自動發現機制。

微服務的部署方式也特別重要,以下是關鍵:

Docker(一個運行在linux上並且開源的應用,能夠協助開發和運維把應用運行在容器中)能夠快速部署微服務,包括關鍵幾點:

相對於傳統的虛擬機模式,利用docker容器,構建、發布、啟動微服務將會變得十分快捷。

通過Kubernetes能夠進一步擴展Docker的能力,能夠從單個linux主機擴展到linux集群,支持多主機,管理容器位置,服務發現,多實例。都是微服務需求的重要特性。因此,利用Kubernetes管理微服務和容器的發布,是一個非常有力的方案。

圖11,展示了零售應用的微服務部署。每個服務都在獨立的容器中,每個主機有兩個容器,通過kubernetes可以隨意調整容器的數量。

在實際運行環境中,微服務的安全也非常重要。我們先看下單體架構下安全是如何實現的。

一個典型的單體應用,安全問題主要是「誰調用」,「調用者能做什麼」,「如何處理」。伺服器接收到請求後,一般都在處理鏈條的最開始,通過安全組件來對請求的信息進行安全處理。

我們能直接把這種處理方式應用在微服務架構中嗎?答案是可以的,需要每個微服務都實現一個安全組件從資源中心獲取對應的用戶信息,實現安全控制。這是比較初級的處理方式。可以嘗試採用一些標準的API方式,比如OAuth2和OpenID。深入研究之前,可以先概括下這兩種安全協議以及如何使用。

OAuth2-是一個訪問委託協議。需要獲得許可權的客戶端,向授權服務申請一個訪問令牌。訪問令牌沒有任何關於用戶/客戶端的信息,僅僅是一個給授權伺服器使用的用戶引用信息。因此,這個「引用的令牌」也沒有安全問題。

OpenID類似於OAuth,不過除了訪問令牌以外,授權伺服器還會頒發一個ID令牌,包含用戶信息。通常由授權伺服器以JWT(JSON Web Token)的方式實現。通過這種方式確保客戶和伺服器端的互信。JWT令牌是一種「有內容的令牌」,包含用戶的身份信息,在公共環境中使用不安全。

現在我們看下如何在網路零售網站中應用這些協議保障微服務的安全。

圖12中所示,是實現微服務安全的關鍵幾步:

JWT包含必要的用戶信息,如果每個微服務都能夠解析JWT,那麼你的系統中每個服務都能處理身份相關的業務。在每個微服務中,可以有一個處理JWT的輕量級的組件。

在微服務中怎麼支持事務呢?事實上,跨多個微服務的分布式事務支持非常復雜,微服務的設計思路是盡量避免多個服務之間的事務操作。

解決辦法是微服務的設計需要遵循功能自包含和單職責原則。跨越多個微服務支持分布式事務在微服務架構中不是一個好的設計思路,通常需要重新劃定微服務的職責。某些場景下,必須要跨越服務支持分布式事務,可以在每個微服務內部利用「組合操作」。

最關鍵的事情是,基於單職責原則設計微服務,如果某個服務不能正常執行某些操作,那麼這個服務是有問題的。那麼上游的操作,都需要在各自的微服務中執行回滾操作。

微服務架構相比較單體的設計而言,引入了更多服務,在每個服務級別會增加發生錯誤的可能性。一個服務可能由於網路問題、底層資源等各種問題導致失敗。某個服務的不可能不應該影響整個應用的崩潰。因此,微服務系統必須容錯,甚至自動回復,對客戶端無感知。

任何服務在任何時間都有可能出問題,監控系統需要能夠發現問題,並且自動恢復。微服務環境下有不少常用的模式。

微服務中請求的失敗率達到一定程度後,系統中的監控可以激活線路中斷。當正常請求的數量恢復到一定程度後,再關閉線路中斷的開關,使系統回復到正常狀態。

這個模式可以避免不必要的資源消耗,請求的處理延遲會導致超時,藉此可以把監控系統做的更完善。

一個應用會有很多微服務租車,單個微服務的失敗不應該影響整個系統。防火牆模式強調服務直接的隔離性,微服務不會受到其它微服務失敗的影響。

超時機制是在確定不會再有應答的情況下,主動放棄等待微服務的響應。這種超時應該是可配置的。

哪些情況下,如何使用這些模式呢?大多數情況,都應該在網關處理。當微服務不可用或者沒有回復時,網關能夠決定是否執行線路中斷或者啟動超時機制。防火牆機制同樣重要,網關是所有請求的唯一入口,一個微服務的失敗不應該影響到其它微服務。網關也是獲得微服務狀態、監控信息的中心。

我們已經討論了微服務的架構和各種特性,以及如何應用在一個現代的IT系統中。同時也需要意識到,微服務不是解決所有問題的靈丹妙葯。盲目追求流行的技術概念並不能解決掉企業IT系統的問題。

微服務有很多優勢,但是僅靠微服務不能解決企業IT中的所有問題。例如,微服務需要去除ESB,但是現實的IT系統中,大量的應用和服務是基於ESB而不是微服務。集成現有的系統,需要一些集成匯流排。實際情況是,微服務和其它企業架構並存。

『貳』 鑒權授權

眾所周知,web server是無狀態的,也就是說伺服器不知道用戶在最後一次請求中做了什麼,請求之間是相互獨立的。客戶信息僅來自每個請求攜帶的或由伺服器本身保存的公共信息,並且可以被所有請求使用。因此,為了跟蹤用戶請求的狀態信息,比如網購的購物車歷史,Cookie應運而生。

當伺服器響應客戶端的請求時,它會向客戶端推送一個Cookie。這個Cookie記錄了伺服器上的一些信息。客戶端在後續請求中攜帶這個Cookie,伺服器可以根據這個Cookie判斷請求的上下文。

Cookie的出現是從無國籍狀態過渡到有國家狀態的一種手段。

以登錄為例,用戶輸入帳戶名和密碼,向伺服器發送請求。伺服器生成一個Cookie並發送給瀏覽器。瀏覽器將Cookie以k-v的形式保存在某個目錄下的文本文件中,下次請求同一個網站時會將Cookie發送給伺服器。伺服器驗證接收到的Cookie是否與伺服器的Cookie一致;否則,驗證失敗。這是最初的想法。

img src=' https://P6 . toutiaoimg.com/large/PGC-image/48e 7b 24 ea 95 f 4 E0 CB 8d 940 DC 05 feb 1 EC '/

存儲在瀏覽器中的Cookie的位置如下圖所示。

img src=' https://p26 . toutiaoimg.com/large/PGC-image/b 35 b 701d 7 b 454 ada 95 a 49 a 36d 0026 a F9 '/

Cookie的原理決定了他具有以下特徵:

在存儲客戶端,可以隨意篡改,不安全。

它的內容會和http交互傳輸,會影響性能,所以Cookie能存儲的數據慶哪不能太大,最多4kb。

一個瀏覽器只能為一個網站存儲不超過20個cookie,而瀏覽器一般只允許300個cookie。

移動對Cookie支持不友好。

一般來說,存儲的是純文本,對象在存儲之前需要序列化,解析需要反序列化。

還是以登錄Cookie為例。例如,現在有兩個二級域名,http://a.xxx.com(域名A)和3358b.xxx.com(域名B)。那麼域名A的登錄Cookie可以在域名B下使用嗎?

默認情況下,域名A的服務主機中生成的Cookie只能由域名A的伺服器獲取,其他域名無法獲取這個Cookie,只能是主機Cookie。

但是,伺服器可以顯式聲明Cookie的域來定義它的域。比如域名A的登錄Cookie的域設置為http://xxx.com(他們共同的頂級域名),path設置為'/',Set-Cookie:name=value;domain=xxx.comPath='/',那麼域名B就可以讀了。

在新規范rfc6265中,domain的值將忽略任何前導點,即子域中可以使用**xxx.com**和* * XXX.com * *。SSO(單點登錄凳差核)也是根據這個原理實現的。

例如,現在有兩個域名,a.b.e.f.com.cn(域名1)和c.d.e.f.com.cn(域名2)。域名2想讀取域名1的Cookie。域名1可以聲明哪些域?答案是e.ffcom.cn或者. f.com.cn,瀏覽器不能接受以domian為.com.cn的cookie,因為如果cookie域名可以設置為後綴的話,那就是峽谷大戰了。

如果域名1設置了Set-Coo

kie:mykey=myvalue1;domain=e.f.com.cn;path=』/』

域名 2 設置Set-Cookie:mykey=myvalue2;domain=e.f.com.cn;path=』/』

那該域下 mykey 的值會被覆蓋為 myvalue2,很好理解,同一個域下,Cookie 的 mykey 是唯一的。通常,我們要通過設置正確的 domain 和 path,減少不必要的數據傳輸,節省帶寬。

隨著互動式 Web 使用的興起,Cookie 大小的限制以及瀏覽器對存儲 Cookie 的數量限制,我們一定需要更強大的空間來儲存大量的用戶信息,比如我們這個網站是誰登錄了,誰的購物車里加入了商品等等,伺服器要保存千萬甚至更多的用戶的信息,Cookie 顯然是不行的。棗掘那怎麼辦呢?

那將用戶信息存儲在哪呢?能否直接存在伺服器中?

如果存在伺服器中,1、這對伺服器說是一個巨大的開銷,嚴重的限制了伺服器的擴展能力。2、假設 web 伺服器做了負載均衡,用戶 user1 通過機器 A 登入該系統,那麼下一個請求如果被轉發到另一台機器 B 上,機器 B 上是沒有存該用戶信息的,所以也找不到 sessionId,因此 sessionId 不應該存儲在伺服器上。這個時候redis/Memcached便出來解決該問題了,可以簡單的理解它們為一個緩存資料庫。

當我們把 sessionId 集中存儲到一個獨立的緩存伺服器上,所有的機器根據 sessionId 到這個緩存系統里去獲取用戶信息和認證。那麼問題就迎刃而解了。

根據其工作原理,你有沒有發現這個方式會存在一個什麼樣的問題?那就是增加了單點登錄失敗的可能性,如果負責 session 的機器掛了, 那整個登錄也就掛了。但是一般在項目里,負責 session 的機器也是有多台機器的集群進行負載均衡,增加可靠性。

思考:

假如伺服器重啟的話,用戶信息會丟失嗎?

Redis 等緩存伺服器也是有個集群的,假設某一台服務重啟了,會從其他運行的伺服器中查找用戶信息,那假設真的某一次所有伺服器全都崩潰了,怎麼辦呢?大概的應對策略就是,存儲在內存中的用戶信息會定期刷到主機硬碟中以持久化數據,即便丟失,也只會丟失重啟的那幾分鍾內的用戶數據。

Cookie-session 局限性

依賴 Cookie,用戶可以在瀏覽器端禁用 Cookie

不支持跨端兼容 app 等

業務系統不停的請求緩存伺服器查找用戶信息,使得內存開銷增加,伺服器壓力過大

伺服器是有狀態的,如果是沒有緩存伺服器的方式,擴容就非常困難,需要在多台伺服器中瘋狂復制 sessionId

存在單點登錄失敗的可能性

單點登錄(Single Sign On),簡稱為 SSO。隨著企業的發展,一個大型系統里可能包含 n 多子系統,用戶在操作不同的系統時,需要多次登錄,很麻煩,單點登錄就是用來解決這個問題的,在多個使用系統中,只需要登錄一次,就可以訪問其他相互信任的使用系統。

之前我們說過,單點登錄是基於 cookie 同頂域共享的,那按照不同的情況可分為以下 3 種類型。

同一個站點下;

系統在相同的頂級域名下;

各子系統屬於不同的頂級域名

一般情況下一個企業有一個頂級域名,前面講過了,同一個站點和相同頂級域下的單點登錄是利用了 Cookie 頂域共享的特性,相信大家已經明白這個流程,不再贅述。但如果是不同域呢?不同域之間 Cookie 是不共享的,怎麼辦?

這里我們就要說一說 CAS(中央認證服務 )流程了,這個流程是單點登錄的標准流程。它藉助一個單獨的系統專門做認證用,以下成為SSO系統。

它的流程其實跟 Cookie-session 模式是一樣的,單點登錄等於說是每個子系統都擁有一套完整的 Cookie-session 模式,再加上一套 Cookie-session 模式的 SSO 系統。

用戶訪問系統 a,需登錄的時候跳到 SSO 系統,在 SSO 系統里通過賬號密碼認證之後,SSO 的伺服器端保存 session,,並生成一個 sessionId 返回給 SSO 的瀏覽器端,瀏覽器端寫入 SSO 域下的 Cookie,並生成一個生成一個 ST,攜帶該 ST 傳入系統 a,系統 a 用這個 ST 請求 SSO 系統做校驗,校驗成功後,系統 a 的伺服器端將登錄狀態寫入 session 並種下系統 a 域下的 Cookie。之後系統 a 再做登錄驗證的時候,就是同域下的認證了。

這時,用戶訪問系統 b,當跳到 SSO 里准備登錄的時候發現 SSO 已經登錄了,那 SSO 生成一個 ST,攜帶該 ST 傳入系統 b,系統 b 用這個 ST 請求 SSO 系統做校驗,校驗成功後,系統 b 的伺服器端將登錄狀態寫入 session 並設置系統 b 域下的 Cookie。可以看得出,在這個流程里系統 b 就不需要再走登錄了。

關於「跳到 SSO 里准備登錄的時候發現 SSO 已經登錄了」,這個是怎麼做的呢,這就涉及 Oauth2 授權機制了,在這里就不展開講,簡單提個思路,就是在系統 b 向 SSO 系統跳轉的時候讓它從系統 a 跳轉,攜帶系統 a 的會話信息跳到 SSO,再通過重定向回系統 b。

關於 Oauth2,可移步阮一峰 的《OAuth 2.0 的四種方式》。

我們已經分析過 Cookie-session 的局限性了,還有沒有更徹底的解決辦法呢?既然 SSO 認證系統的存在會增加單點失敗的可能性,那我們是不是索性不要它?這就是去中心化的思路,即省去用來存儲和校驗用戶信息的緩存伺服器,以另外的方式在各自系統中進行校驗。實現方式簡單來說,就是把 session 的信息全部加密到 Cookie 里,發送給瀏覽器端,用 cpu 的計算能力來換取空間。

服務端不保存 sessionId,用戶登錄系統後,伺服器給他下發一個令牌(token),下一次用戶再次通過 Http 請求訪問伺服器的時候, 把這個 token 通過 Http header 或者 url 帶過來進行校驗。為了防止別人偽造,我們可以把數據加上一個只有自己才知道的密鑰,做一個簽名,把數據和這個簽名一起作為 token 發送過去。這樣我們就不用保存 token 了,因為發送給用戶的令牌里,已經包含了用戶信息。當用戶再次請求過來的時候我用同樣的演算法和密鑰對這個 token 中的數據進行加密,如果加密後的結果和 token 中的簽名一致,那我們就可以進行鑒權,並且也能從中取得用戶信息。

對於服務端來說,這樣只負責生成 token , 然後驗證 token ,不再需要額外的緩存伺服器存儲大量的 session,當面對訪問量增加的情況,我們只需要針對訪問需求大的伺服器進行擴容就好了,比擴充整個用戶中心的伺服器更節省。

假如有人篡改了用戶信息,但是由於密鑰是不知道的,所以 token 中的簽名和被篡改後客戶端計算出來的簽名肯定是不一致的,也會認證失敗,所以不必擔心安全問題。

關於 token 的時效性,是這樣做的,首次登陸根據賬號密碼生成一個 token,之後的每次請求,服務端更新時間戳發送一個新的 token,客戶端替換掉原來的 token。

jwt 模式的退出登錄實際上是假的登錄失效,因為只是瀏覽器端清除 token 形成的假象,假如用之前的 token 只要沒過期仍然能夠登陸成功

安全性依賴密鑰,一旦密鑰暴露完蛋

加密生成的數據比較長,相對來說佔用了更大的流量

不依賴 Cookie,可跨端跨程序使用,支持移動設備

相對於沒有單點登錄的 cookie-session 模式來說非常好擴展

伺服器保持了無狀態特性,不需要將用戶信息存在伺服器或 Session 中

對於單點登錄需要不停的向 SSO 站點發送驗證請求的模式節省了大量請求

相關問答:

『叄』 基於ServiceMesh服務網格的去中心化微服務管控治理平台

首先說明下我最近在思考的一個產品規劃,即基於ServiceMesh服務網格思路,參考開源的Istio等實現架構來搭建一個完整的微服務治理管控平台。

在前面文章裡面我就提到了,在實施微服務架構後,由於微服務將傳統的單體應用進行了拆分,顆粒度更細。因此整個集成的復雜度,後續的管控治理復雜度都急劇增加。

當前也出現了類似SpingCLoud主流的微服務開發框架,實現了服務注冊和發現,安全,限流熔斷,鏈路監控等各種能力。同時對於服務注冊,限流,服務鏈監控等本身又出現了大量的開源組件,類似服務注冊的Nacos,Consul,限流熔斷的Sentinel,鏈接監控的SKyWalking等開源組件。

當我們在思考微服務開發框架和開源組件的時候你會發現。

在SpingCLoud外的各類開源組件本身和微服務開發過程是解耦的,也就是說這些開源組件更加方便地通過配置增加管控能力,或者通過下發一個SDK包或Agent代理組件來實現管控能力。以盡量減少對微服務開發過程的影響。

而對於SpingCLoud微服務框架,在使用中有一個最大的問題就是開發態和治理態的耦合,也就是說一個微服務模塊在開發的時候,你會引入很多治理態的內容。類似限流熔斷,類似鏈路監控等能力,都需要你在開發狀態增加配置文件,或對介面實現類進行擴展等。

微服務開發本身應該是一個簡單的事情。

其核心是實現業務功能和規則邏輯,並暴露輕量的Http Rest API介面實現和前端交互或者實現和其它微服務模塊之間的橫向交互協同。

也就是說如果不考慮管控治理層面的內容,你採用最小化的SpingBoot來進行微服務開發足夠的,或者你仍然可以採用傳統的Java架構進行微服務開發,只要確保最終暴露Http API介面即可。

但是如果要考慮治理的內容,你會發現會引入注冊中心,限流熔斷,安全,服務鏈監控一系列的管控治理組件,導致整個微服務開發過程,集成過程都復雜化。

因此構建微服務治理平台的初衷即:

在這里還是先簡單梳理下業務需求和業務功能場景。

01 服務注冊和服務發現

仍然需要實現最基本的當前微服務自注冊,自發現能力。這個在開發階段需要暴露的介面增加註解還是必須的。在ServiceMesh下,由於存在本地Sidecar代理,因此在本地代理和微服務一起容器化部署下去後,會掃描微服務中需要暴露的介面,並完成微服務和API介面服務的注冊工作。 也就是傳統的應用開發集成中,手工介面API介面服務注冊和接入的過程沒有了,這個過程應該徹底地自動化掉。

注意這里的注冊不僅僅是到微服務粒度,而是可以到微服務API介面粒度。

因此我們需要實現在微服務部署和交付後,微服務注冊和微服務中的API介面注冊全部自動完成。在微服務集群擴展的時候,相關的注冊信息和配置信息也自動更新和擴展。

一個微服務模塊在部署和交付後。

進入到微服務治理平台就能夠看到當前有哪些微服務已經注冊,進入到單個微服務裡面,就可以看到當前微服務究竟有哪些細粒度的API介面已經注冊。

02 服務安全和雙重管理

對於一個微服務暴露的API介面,可以看到部分API介面僅僅是提供給前端微服務使用,但是部分API介面是需要提供給其它橫向的微服務模塊使用。

一個是前端調用後端API介面,一個是後端各個微服務中心間介面交互。

在安全管理的時候實際需要對這兩類API介面分別進行管理。如果僅僅是前端功能使用,那麼類似JWT+Token的安全措施即可,同時對於的日誌流量並不一定需要完全記錄和入庫。如果是橫向微服務間調用,那麼安全要求更高,需要支持Token,用戶名密碼,IP地址驗證等多種安全管控要求。

對於前後端的使用,往往僅授權到微服務層級即可。但是對於橫向微服務間調用,那麼服務授權必須到API介面服務粒度, 能夠針對單個微服務API介面獨立授權和管理。

03 服務限流熔斷

同樣這個功能不應該在微服務開發階段進行任何配置或代碼文件的增加。

在微服務成功的部署和交付上線後,應該能夠針對微服務,微服務API介面兩個不同的顆粒度進行服務限流設置。當然需要支持類似並發量,時長,錯誤數,數據量等多種限流熔斷策略。

比如一個微服務單點能夠支撐的最大並發量是1000TPS,那麼這就是最基本的限流條件。我只需要設置單點能量,而不是設置集群能力。管控治理平台要管理的是通過負載均衡分發後到單個節點的流量能夠控制到1000TPS。如果你部署了5個微服務節點,那麼實際能夠支撐的最大流量就是5000TPS。

由於採用Mesh去中心化的架構模式,因此實際微服務間的調用數據流量並不會通過微服務治理平台,微服務治理平台本身並沒有太大的性能負荷壓力。這個是和傳統的ESB或API網關不同的地方,即API網關的限流一方面是保護API網關本身,一個是保護下游的微服務模塊。

04 介面調用日誌記錄

注意這個功能本身也是可以靈活配置的,可以配置單個微服務,也可以配置單個API介面服務是否記錄日誌,包括日誌記錄是只記錄調用時間和狀態,還是需要記錄想的介面調用消息報文數據。

在去中心化架構模式下,介面調用日誌記錄相對來說很容易實現。

即通過Sidecar邊車首先對消息和數據流量進行攔截,任何將攔截的數據統一推送到消息中間件,消息中間件再將日誌信息存入到分布式文件存儲或對象存儲中。

對於介面調用日誌本身應該區分日誌頭信息和消息日誌信息,對於日誌頭調用記錄信息應該還需要推送到類似ELK組件中,以方便進行關鍵日誌的審計和問題排查。

05 服務鏈路跟蹤和監控

注意,在傳統的服務鏈跟蹤中,需要在微服務端配置Agent代理。而採用Mesh化解決方案後,該部分代理能力也移動到了Sidecar邊車代理中實現。

服務鏈路監控不僅僅是微服務和API介面間的調用鏈路,也包括融入常規APM應用性能監控的能力,能夠實現前端界面操作後發起的整個應用鏈路監控。

應用鏈路監控一方面是進行日誌和錯誤分析,一方面是進行性能問題排查和優化。

06 和DevOps和容器雲的集成

簡單來說就是開發人員只需要按照標准規范開發單個微服務模塊,然後走DevOps持續集成和交付過程進行部署。

在和DevOps平台進行集成後,DevOps在進行自動化部署前會下發Sidecar代理邊車,實現對微服務本身的流量攔截和各種管控治理能力。在整個過程中Sidecar對開發者不可見,滿足最基本的服務透明要求。

在通過DevOps部署到容器雲平台後,滿足基於資源調度策略進行後續微服務集群資源的自動化動態擴展能力。同時微服務在擴展後自動進行相應的集群注冊,微服務API介面注冊等操作。

在傳統的SpingCLoud開發框架中,本身注冊中心包括了對微服務模塊的心跳檢查和節點狀態監控能力。在和Kurbernetes集群集成和融合後,完全可以採用Kurbernetes集群本身的心跳監控能力。

簡單總結

最後總結下,整個微服務治理平台基於ServiceMesh去中心化架構思路來定製,但是需要實現類似傳統ESB匯流排或API網關的所有管控治理能力。

對於最終的使用者來說並不關心治理能力實現是否是去中心化架構,而更加關心兩個點。第一個點是開發階段不要引入治理要求,第二就是能夠實現核心能力的集中化管控和可靈活配置擴展。

也就是你可能上層看到的是一個傳統的SOA治理管控平台,但是底層卻是採用了去中心化的ServiceMesh架構來實現微服務治理管控能力。

『肆』 關於Re的那個方程為什麼可以直接消去e的jwt

昨晚看到《電磁場與電磁波》時變電磁場一章,書中又一次出現了jw和e^jwt,之前一直無法理解諸如為什麼電感的阻抗可以表示成jwL之類的問題,jw是從哪裡推導出來的呢?為什麼可以直接與L相乘呢?

昨晚在網上查了一下,看到這么一句話「由於正弦信號α=α0+wt,所以關於角度求導就是關於時間t求導,dα=wdt。所以jw其實是和關於時間求導是等價的,只是前提是正弦信號」。

哦!原來如此,jw原來是e^jwt對時間求導得到的,那麼再拿電感為例,電感兩端電壓電流關系是u=L*di/dt,將u和i寫成復數形式u*e^jwt,i*e^jwt,那麼原式就可以寫成u*e^jwt=L*d(i*e^jwt)/dt=L*i*jw*e^jwt,兩端同時消去e^jwt,可得到

u=L*i*jw,根據歐姆定律可得,Z=u/i=jwL。

『伍』 看,這一代「廣告狂人」

1990年代,互聯網誕生之初,是各大國際4A在中國呼風喚雨的時代,他們引領中國的廣告市場,擁有不可撼動的行業地位。

與此同時,互聯網的新土壤正孕育著一些數字營銷公司。起初他們毫不起眼,慢慢崛起,2005年以後,隨著人人網、QZone等社交媒體爆發出驚人的傳播和營銷力量,數字營銷陣營的廣告公司,越來越成為各大金主的合作首選,甚至成為領頭的代理商,國際4A在傳統廣告領域無人可戰的局面第一次有了明顯的打破。

微博、微信的相繼出現,為數字營銷插上了前所未有的豐滿羽翼,特別是它快速裂變出來的Social專項代理公司又以催枯之勢野蠻生長。

以國際4A為代表的傳統廣告,與新生數字營銷集團的沖突達到一個峰值,業界傳出電通收購安吉斯是一個標志,而2013年前者斥資32億英鎊收購後者,既是兩大陣營的一次握手言和,也預示著廣告行業勢不可擋的融合的新潮流的到來。

以楊燁炘、李三水、江畔等為代表的國際4A高管或骨幹成員,2013年左右,紛紛出走,自我革命,自立門派,天與空、W、意類等聚合兩大廣告陣營優勢的廣告新勢力在短短幾年間迅速崛起,數以百計的獨立創意公司紛紛宣告成立。

國際4A遭受質疑,新勢力的銳氣投射到作品的成效頗豐,也偶起爭議。如此行業大勢,此前很少有媒體拉著各方出場,嚴肅討論這個正在發生的百家爭鳴的廣告時代。

《第一財經周刊》這篇深度廣告行業觀察文章,有理有據,集合採訪,例舉各方觀點,綜合地記錄了這個劇烈震動的廣告新時代。

這個正在到來的新廣告黃金時代,你應該看看,這個時代的廣告狂人們正在怎麼乾和怎麼看。

原文標題《新·黃金時代》,已獲授權,全文如下:

當一個行業面臨巨大的趨勢變革時,人才流動一定會隨之加快——這一點在當前的廣告行業正在發生。這些廣告人感受到了變化,經歷了焦慮,同時也看到好創意有了更突顯的價值,產業鏈有了更需要融合的趨勢。這些變化帶來了大量新機會,很可能預示著紛亂之後一個新的廣告黃金時代。

                                                                                              —《第一財經周刊》執行總編輯 趙嘉

「這是最好的時代,這是最壞的時代。」狄更斯的這個金句常被用來形容各種喜憂參半的情景,這剛好是眼下廣告行業的寫照。

JWT上海策略策劃總監徐振鋒就有些著急。他發現過去這一年中,越來越多讓人眼前一亮的營銷案例出自於本土的小公司。

比如今年5月,由W公司策劃的New Balance的廣告片《每一步都算數》上線5天內就在騰訊視頻播放了超過500萬次,而這個影響力級別的廣告以往基本都是由4A公司投入幾十人、花費幾個月時間完成的。反觀W,它於2014年10月才成立、只有幾十人規模。

像W這樣以創意為主導的本土小型獨立廣告公司近年來頻繁涌現,包括2012年12月成立的Karma,2013年11月成立的天與空,2014年成立的oookini、意類等。在它們的客戶名單上,已經開始出現諸如可口可樂、西門子、耐克、淘寶天貓、騰訊這些傳統的和新的廣告金主。

「老實說,在有些地方,我們(4A公司)已經跟它們產生競爭了,這不是未來的事情,而是正在發生的。」 徐振鋒在電話里向《第一財經周刊》承認。

同時,無一例外的,這些徐振鋒口中所謂的小公司,其創始人都有過在4A工作的經歷,他們中有的人甚至已經待了十多年。如今選擇離開,當然有部分是出於個人選擇,但更多還是因為整個廣告行業已經開始發生巨大的變化。

2013年10月,楊燁炘離開了供職長達15年的4A,和其他幾個合夥人一起創辦了天與空。他當時是上海盛世長城創意群總監,更早之前,他還擔任過上海李奧貝納創意群總監,北京奧美、廣州奧美、廣州李奧貝納的創意總監。

「我有一種很強的危機感。」楊燁炘對《第一財經周刊》說。2012年夏天,他的團隊為立邦漆做了一個以「刷新生活」為主題的地鐵藝術展, 「我很明顯感覺到4A還是以傳統廣告為主,跟數字營銷公司、公關公司都脫節了,」 因為推廣和傳播的工作是分別由另外的數字營銷公司和公關公司做, 「也就是說,創意的空間很狹窄。而且這些公司並沒有參與到我們早期的創作工作中,每家公司又有自己的老闆、創意和營銷總監,會對創意做不同程度的歪曲,流程也會拖得很長。」

楊燁炘的危機感源於當時整個廣告環境已經發生的變化。在前一年,也就是2011年,戛納國際廣告節更名為戛納國際創意節,並且 從2012年開始,基於互聯網技術的廣告獎項迅速增加,技術公司開始大量進入這個行業。也就是說,創意在過去只是廣告公司的一個部門,而現在的情況是,廣告公司變成了創意的一個部分。

「如果你還稱之為廣告行業,稱自己是廣告公司,是不行的。」蘇若菲說。她在2013年5月離開從業10年的廣告行業去了甲方,為天貓市場部下屬的品牌部工作,在此之前她擔任上海BBDO的客戶總監。 「創意既包含傳統廣告,也包括技術類的互動、社會化營銷、娛樂營銷,甚至線下活動—所有傳統4A以前不會做的東西,現在都成為了客戶的需求。」

2012年令她印象深刻。一些小型的專門做數字廣告的公司出現,4A公司也開始紛紛成立數字部門。跳槽到帶著「digital光環」的公司成了廣告人一個熱門的選擇。在這些所謂的新興公司待過哪怕半年,再跳的時候就帶著黃金標簽。「當時就處在這么一個激進浮躁的digital狂熱期。」蘇若菲說。

她還記得當時團隊做了一個案例,後來拿了很多獎,但拿獎的原因是在微博上請了一個非常有話題性的人,用一個有爭議性的話題做了一個好玩的試驗。「完全是社交媒體上的影響力讓我們這個作品變得非常成功,而這個案例本身做的電視廣告、平面,媒體合作,在整個項目里反倒好像成了可有可無的東西。」

但一兩年後再談到數字營銷,她發現大家的思路還是在很傳統地去做MiniSite(活動網站)這一類的事,並沒有推動真正核心的東西。更早的時候她還在麒靈廣告待過,這家2001年創辦於上海的廣告公司後來被一家來自波士頓的信息技術公司收購,2014年又再次整體賣給陽獅集團,「這在當時的國內還是很少見的,現在已經很明顯了,就是各種奇怪的公司都在買廣告(創意)公司。那時來了批老外,他們給我們講國外很好玩的技術和產品,我覺得特別好玩,那不是在做廣告,不是4A那套老三樣。」

也正是在那個時候,「客戶減了合同年份,公司甚至丟了客戶」這種事逐漸多了起來,她想起更早之前看到一篇講麥迪遜大道上廣告公司生意銳減的文章,「你會覺得美國發生的其實跟國內是關聯的,改變的浪潮已經席捲到中國,生意很難做,錢會減少,客戶越來越挑剔。」

同為做客戶服務出身的金存依也感受到了這種變化。2012年10月底,35歲的她從北京奧美廣告離開,成立不二廣告。「奧美全球總部的任務要求簡單明了:每年從客戶那裡拿到的預算要增加。但獲得一個穩定的客戶越來越難了,所以你聽到最多的詞就是比稿,而且客戶自然是希望它的成本降到最低,」金存依說,「我走的那一年,公司很多人都走了。」

供職於知名創意機構AKQA耐克項目組的王元元、丁茗茗和鄭商融選擇離職創立oookini工作室的時間是2014年,這個小團隊解釋自己的創業其實是「抱著畢業的心情」。 「4A模式首先是極度細致的分工,然後是極度完善的流程和快速的人員流動,因為它已經形成了工業化生產的模式,重體系而不重人,已經不適合個人型的人才發揮。」 王元元認為相比傳統4A公司,AKQA這類成立於1990年代左右的獨立機構已經相當靈活小巧,但傳播渠道的變化、新技術和中國近年來的消費升級浪潮還是讓幾個年輕人感到前所未有的機會正在到來, 「過去幾十年,中國廣告業服務的對象最關心的其實是生產和銷售渠道,只有在消費升級、強調品牌獨特性的過程中,創意的價值才會特別凸顯。」 王元元說。

所以你也可以這么理解, 傳統廣告行業身陷技術帶來的巨大挑戰這一事實已經無可爭議,但作為硬幣的另一面,這也預示著廣告從業者們可能正在迎來一個紛亂卻充滿機會的新時代。

在創辦天與空時,楊燁炘認真思考過公司的定位,他並不想單純開一家數字營銷或社會化媒體營銷公司,而是希望把4A公司的傳統廣告、數字營銷以及公關、線下活動結合起來,他稱之為「跨媒體公司」或「創意機構」。例如不久前為顧家家居策劃的「8·16不加班」營銷活動,天與空先是在報紙上打起了整版廣告,之後又在上海環球港廣場做了名為「孤獨沙發」的行為藝術,最後再在移動端上線H5。這種圍繞某一事件展開的線上線下綜合營銷成為行業里做案例的常見模式,甚至被稱作「天與空套路」。

在楊燁炘看來,這種模式適合於任何一種介質,而且可以根據用戶的預算選擇任何一個媒體形式來引爆。「我覺得這是未來的趨勢。」他說,比如原本是公關公司的華邑已經做數字營銷和平面廣告了,W也從最開始的一家數字營銷公司,涉足電視、平面廣告和公關的傳播,甚至做社交媒體營銷起家的環時互動也在招募傳統廣告或者公關行業的人才。 「如果你只是固守自己原有的業態,很有可能會被淘汰掉,你幫客戶創造的價值越來越低,就越來越失去盈利的能力。」

獨立廣告公司如此活躍,4A並非沒有作出應對。2013年7月,全球兩大廣告公司宏盟集團和陽獅集團宣布價值350億美元的合並計劃,以此來抗衡更小型的廣告公司,盡管這項合並在9個月後就被取消。這幾年,你也看到大的廣告集團正在對社交、數字或互動營銷公司實施一系列的收購—這是它們遇到麻煩時一貫的邏輯。「可這樣還是無法做到真正的打通,」楊燁炘解釋,「因為它們還是分成不同的業態獨立運作—廣告公司、數字營銷公司、公關公司等。因為集團追求利潤最大化,要分開去創造力量。」

要改變的可能更主要是內部架構。 「我們認為創意是這個行業最核心的東西,所以我們總是想把創意最大化。你看大衛·奧格威、李奧·貝納、DDB的創始人,都是創意人出身。」 楊燁炘在天與空設置了5個創意事業群,分別由創意合夥人帶領,團隊10個人裡面有7個是創意人員,3個是品牌服務人員,沒有客戶部。相反,他覺得4A變成了以客戶部為主導的公司,但客戶部大多沒有策劃和創意能力,更多成了傳話的角色。

不過,4A的人力分配也自有其道理—對於它們來說,產出體系的穩定要比創意來得更加重要。 「跟4A合作可能是一個更長久的關系。客戶的期待也是策略上的把控更穩定,創意更安全。選擇W、天與空這樣的小公司,客戶可能更期待的是能帶給他一些驚喜的東西。」 徐振鋒說。

傳統廣告巨頭已經意識到自己的問題,它們試圖去改變所謂的「流程長、不夠靈活」的印象。 「我們全球的經營策略都在發生很大的變化,首先在公司的哲學上,我們對這個時代的觀點是,我們應該幫廣告主和消費者解決某一個沖突或問題,是提供解決方案的公司,而不是只專注創意的狹窄的廣告公司。其次是對技術持更開放的心態,很多時候你單靠經驗已經不能夠做到最好的東西了,如果你不懂某一項新技術,可能就不知道這個故事還可以這樣講。」

不過競爭已經不僅僅發生在廣告公司之間。

大公司,也就是傳統說法里的甲方的in-house agency也在給原有的廣告模式帶來麻煩。最近的例子是百事成立了一間創意工作室Creators League。你可能已經知道的更早的例子是,2013年耐克挖來Burberry數字營銷總監Musa Tariq組建內部品牌建設團隊,他上任之初便收回原來由AKQA、W+K、Mindshare、R/GA等代理的社會化媒體業務,改由自己的團隊運作。

一份來自數字營銷協會SoDA的報告顯示,2015年有27%的公司聲稱在數字營銷領域不再與第三方公司合作,這個數字是2014年的兩倍。更早前美國全國廣告協會(ANA)在2013年就發現,選擇自建in-house團隊的公司數目在5年間從42%上升到58%。

品牌也開始從廣告公司大量招攬人才—蘋果今年正式上任的營銷傳播副總裁Tor Myhren,曾是WPP集團旗下廣告公司Grey Group的首席創意官,而優衣庫在2014年也接連挖了兩位W+K的創意總監,在公司內部負責一些案例的營銷和傳播。 「品牌想要創造出最適合它們的內容,自建的團隊可能會對品牌更加敏感,更有控制權,溝通更快。」 群邑中國CEO徐俊說。

「很多時候我們和廣告公司聊,其實是我們在輸出信息給它們,然後還得想辦法通過各種磨合讓雙方節奏同步。」蘇若菲說。她所在的天貓品牌部,十幾個人的團隊成員里一半以上來自4A。她理解廣告公司只是一個形式,是把人聚集到一個機構裡面,「如果是同樣的人幫我工作,只是換了個形式,在公司內部還是外部又有什麼所謂呢?」

那麼廣告行業的組織形態真的可以被打破嗎?4A的模式能否被搬到線上?金存依發現,開一間自己的廣告公司並沒有讓自己的焦慮感少很多。如果換個思路,做一個專注於解決中小型品牌需求的廣告創意解決方案的眾包平台呢?

她於是又搭建了一個名為Pitchina的平台,這是一個試圖提供「創意直達」的項目,例如客戶想做一張海報或拍一支視頻,可以在創意平台上購買相應的產品包。隨後項目負責人對接客戶,幫助梳理品牌,然後分配給平台上第三方的創意特工,最後交給不同的供應商(比如拍片、修圖、設計等),當然這個過程中需要特別注意對質量和價格的把控。

另一方面,你會看到媒介公司也在成立創意團隊。群邑就加快了在創意內容方面的布局,旗下各家代理公司都擁有了自己的內容營銷團隊,比如傳立媒體的內容創新團隊,競立媒體旗下的內容營銷團隊MediaCom Beyond Advertising以及邁勢的Play團隊等。徐俊認為,數字領域里創意、媒介、公關、數字公司的界限會更模糊。

而且在 數字營銷領域,廣告公司還碰上了一個新對手,咨詢公司。

「四大」之一的德勤,如今已經是全球最大的數字化咨詢機構之一,這歸功於德勤內部的數字化團隊Deloitte Digital,這個已經成立5年的部門今年2月還收購了舊金山的創意公司Heat。

「德勤收購廣告公司,並不是為了做廣告,我們看中的是Heat給我們的創意元素,而不是它現有的業務。」Deloitte Digital德勤數字化中國服務領導人華思遠對《第一財經周刊》如此回應。他認為 數字化是一個大潮,而數字化的內涵在最近一兩年發生了翻天覆地的變化,已經漸漸從CMO的概念變成了CEO的概念。 德勤希望幫助企業完成全面的數字化轉型,甚至包括後端的供應鏈、產品設計流程、IT及財務系統等。

但對整個行業來說,最繞不過去的對手還是技術公司。「傳統廣告公司的挑戰會發生在購買層面,只要涉及到實時購買廣告位,就會涉及到演算法、空間等很多因素的改變,這些都需要技術的支撐。未來傳統廣告公司可能需要更專注於創意層面並在技術層面上與外部公司深度合作,或者是購買技術以適應環境發展。」數字營銷公司Criteo的CEO Eric Eichmann告訴《第一財經周刊》,他所在的Criteo專注於重定向廣告領域,通過cookies記錄用戶在電商網站搜索某件商品的行為,並在用戶之後訪問的網頁上重新展示之前被搜索商品的廣告,將其拉回到電商網站。

這帶來的一個結果是,你會發現很多廣告公司也紛紛在做產品了:宏盟集團推出Annalect數據雲服務和Accuen程序化平台,而電通安吉斯集團最近也剛成立了數據實驗室Dentsu Aegis Data Lab。

WPP集團全球CEO蘇銘天認為眼下數字(化)已經改變了廣告創意的方法(Digital has defined creativity in a totally different way),而信息由媒介驅動(medium drives the message),並且在不同的媒介上需要用不同的方法。「如今我們業務的3/4都投資在媒體、數據、數字技術上。」他告訴《第一財經周刊》。

所以品牌如今最擔心的還是如何處理營銷環境的復雜性:注意力的碎片化是如何令以往一些大眾傳播慣用的方式失效,傳播接觸點能怎樣再指數級增長,如何將自己不同渠道的數據與外部數據整合等。程序化購買、大數據管理平台(DMP)、跨屏解決方案等成了這些廣告技術公司討論的熱詞。「以受眾為中心的媒介策劃時代,媒介代理公司之間的差別在於其數據的深度和廣度。」徐俊說。

普華永道在最新發布的《2016-2020全球娛樂及媒體行業展望》中預測互聯網廣告將在2017年首次超過傳統電視廣告,而根據群邑2016年春季版報告《今年,明年:中國媒體行業預測》,這個時間點在中國來得更快: 2015年中國的互聯網廣告份額首次超過了電視廣告,2016年預計將達到49.7%。其中移動互聯網廣告以近2倍於整體互聯網廣告的勢頭快速增長,在線視頻市場總體規模同比增長61.2%。

幾乎沒有人懷疑Facebook、Google這樣的技術巨頭已經成了廣告行業的大玩家。它們都擁有龐大的用戶和豐富的數據,可以做到精準營銷,同時還提供營銷解決方案並積極探索營銷模式的創新。從收入上看,Facebook超過95%的收入都來自廣告,而Google廣告營收佔了Alphabet總營收的89%。根據研究機構eMarketer的數據,這兩家公司已經占據移動廣告市場超過一半的份額。

但對於精準營銷究竟效果幾何的疑慮卻在愈演愈烈,也幾乎成了今年9月底舉辦的第12屆紐約廣告周上的主要討論議題。「在國內,至少前一陣子,我聽到的都是精準性,都在說要把大部分錢拿去做精準性投放,」BBDO大中華區首席創意官梁偉豐說,「但最近寶潔已經打算降低它在Facebook上精準廣告的花費,它不會是唯一一個。」

正如他所言,品牌終於意識到光有大數據是不夠的。「這一年廣告主對數字投放確實更理性了。」徐俊說。在Facebook制定的精準營銷規則里,每多勾選一個描繪人群畫像的標簽,單價就會上漲,所以品牌主和媒介購買公司必須思考精準營銷到底適用於哪些品牌。還有一種情況是,就算足夠精準,但消費者根本不點開看呢?「所以對於到底怎樣的曝光才能算有效的impression,以及在廣告可見度(viewability)、防作弊方面,品牌都更加重視了。」

除此之外,廣告業的新玩家還有很多,比如網紅、段子手和KOL。它們很多來自於這個生產鏈條以外,甚至在兩三年前你可能都還沒聽過這些角色。

「現在如果你問我,我們的競爭對手是誰?我會認為是papi醬、羅永浩這些人。」李三水說,他是W的創始人,同樣在麥肯光明等國際4A廣告公司、W+K這些創意熱店待過。「我們的戰場已經從主流媒體移動到自媒體了,在這個戰場上,你不得不面對他們。」

這不難理解,廣告業多年來的使命就是傳遞信息並影響消費者,但是否有效影響了消費者這個問題具有主觀性,也難以監測,於是有效傳達就成為了相對硬性的指標,而在社交網路中,粉絲數、活躍度正好提供了這種評判標准。

梁偉豐在過去18個月到24個月的感受是: 廣告界越來越像金融界了。 他發現最近看到的跟行業相關的文章或碰到的同行,都在說融資、平台合作和各種關於趨勢的討論:粉絲經濟、網紅經濟、直播、娛樂營銷、消費升級。 「這個行業好像創造了很多新的術語,卻沒創造新的廣告。」 梁偉豐記得自己15年前剛入行時,同行碰面會講哪個品牌出了新的案例或者新趨勢,甚至哪個導演又拍了新片,用了什麼新手法,可 「現在什麼才叫廣告,你已經說不上來了。廣告其實越來越不像廣告,表現形式和傳播渠道都變了。」 梁偉豐形容自己像一隻天鵝,水面上看是優雅的,一沉到水裡就不行。 「我現在不會說我要找客戶人員、策略人員,或者創意人員,我要找的是廣告人。」

李奧貝納中國CEO莫熙慈最近也在思考一件事:在互聯網上,一個東西最多停留一兩個星期就過去了,但品牌是長遠的,這兩方面要怎麼平衡?怎麼利用新媒體達到傳播目的,同時又維持品牌持續性的競爭力?「這是客戶的挑戰,也是我們的挑戰。」他在接受《第一財經周刊》采訪時這樣表示。

但是楊燁炘們卻足夠興奮。廣告行業一直在衰減的東西是什麼呢?「就是對媒體傳播渠道的依賴性。」李三水說。 「現在一些廣告人出來好像能夠做一點事情,本質原因在於媒體去中心化了,你會發現廣告公司作為集團型或者說高層決策型的優勢會被取代掉,變成更低成本、更個人化的內容製造商佔主導。」 他認為以前的廣告代表廣而告之,其實是一種媒體語言,但是現在的廣告廣為受眾,在這樣的傳播域場里,人人都是內容製造商,又都是消費者。

對單一傳播渠道的依賴減少同時也讓創意的價值更被凸顯。「靠點子靠創意去致勝的公司其實是最近這兩年才變得重要的,移動互聯網和社交媒體給了創意人一個機會,好的創意不用太多的投放預算也能冒出來。」閆曌說,他是數據技術公司AdMaster的創始人。AdMaster通過實時監測各種數字渠道的廣告曝光量,分析在線廣告在數字電視、電腦、智能手機和平板等不同平台上的效果,為廣告主提供投放意見。

「4A里應該充滿了迷茫的中層和好奇的職場新人,但越來越多好的廣告人在摩拳擦掌。」江畔說,她是意類廣告公司的創始人。雖然團隊只有十幾個人,但最近他們為淘寶做的《一千零一夜》項目,以及請胡歌為QQ閱讀拍攝的地鐵廣告你可能都不陌生。江畔在上海BBDO待了9年,從助理美術做起,離開的時候已經是創意總監。「意類現在這么小,剛起步,但已經能收到寶潔邀請去分享案例。我覺得現在當然是一個好時代。」

江畔的感受可能代表了這波出走的廣告從業者中大多數人的聲音: 現在至少是中國本土廣告機會最多的時候,可以媲美《廣告狂人》里當年的美國。

這的確會令人想起現代廣告業最輝煌的時代—想想大衛·奧格威、李奧·貝納、威廉·伯恩巴克吧,雖然他們的遺產後來越來越細分,變成了流水線作業,分化出了媒介公司、公關公司等,但他們在早期都曾是身兼數職的通才。 如今來到數字時代,媒介渠道的碎片化、信息不對稱造成的失衡和技術更迭讓廣告行業內部再一次有了從細分到整合的趨勢需求,人才流動加速,各種新角色加入,在夾雜著茫然、疑慮和試錯的同時,也充滿了挑戰和希望。

「我覺得這個時代有趣的地方就在於它一直在進化,其實沒有一個人敢說自己真的了解這個時代。」徐振鋒如此總結道。

近期文章

《她唱出了52種愛的文案,卻敵不過婚前媽媽的1句反對》

《如何抓住2017年H5廣告的新趨勢?這7大H5典型也許能告訴你》

《專訪數英網聯合創始人Hytal:做一個愛思考的創造者》

『陸』 jwt與token+redis,哪種方案更好用

1.問題描述

jwt與token+redis,哪種方案更好用?

問題結論

剛好最近有項目使用了jwt,而且是定製化的jwt的認證機制,就個人的理解而言,各自有其優缺點,並且針對不同的場景需要進行約束性開發,如用戶剔除、同一用戶每2h只生成一次jwt等。

2.Token機制簡述

2.1Token的用途

用戶在登錄APP時,APP端會發送加密的用戶名和密碼到伺服器,伺服器驗證用戶名和密碼,如果驗證成功,就會生成相應位數的字元產作為token存儲到伺服器中,並且磨隱將該token返回給APP端。以後APP再次請求時,凡是需要驗證的地方都要帶上該token,然後伺服器端驗證token,成功返回所需要的結果,失敗返回錯誤信息,讓用戶重新登錄。其中,伺服器上會給token設置一個有效期,每次APP請求的時候都驗證token和有效期。

在存儲的時候把token進行對稱加密存儲,用到的時候再解密。文章最開始提到的簽名sign:將請求URL、時間戳、token三者合並,通過演算法進行加密處理。

2.2token+redis機制

用戶驗證通過後,服務端通過如uuid相關的方法,生成token,存儲用戶信息。當請求服務時,客戶端將token帶上激含來,進行查詢驗證,如token存在並在有限期內,請求有效,否則請求非法。

token+redis機制是中心化的,每次驗證token有效性時,都需要訪問redis,其核心優點實服務端可以主動讓token失效,缺點是每次都要進行redis查詢。佔用redis存儲空間。

2.3jwt機制

這是一種無狀態身份驗證機制,因為用戶狀態永遠不會保存在伺服器內存中。伺服器受保護的路由將在授權頭中檢查有效的JWT,如果存在,則允許用戶訪問受保護的資源。由於JWT是獨立的,所有必要的信息都在那裡,減少了多次查詢資料庫的需求。

Javajwt普遍選用java-jwt工具包依賴,gradle依賴:compile'com.auth0:java-jwt:3.2.0'用戶發起登錄請求,驗證通過後,服務端創建一個加密後的JWT信息,作為Token返回。在後續請求中JWT信息作為請求頭,發給服務端。服務端拿到JWT之後進行解密,正確解密表示此次請求合法,驗證通過;解密失敗說明Token無效或者已過期。

jwt的有點主要有:a.其是去中心化的,便於分布式系統使用;2.基本信息可以直接放在token中。user_id,session_id;3.功能許可權信息可以直接放在token中。用bit位表示用戶所具有的功能許可權。其缺點有:服務端無法主動讓token失效,另一個是無法很好的控制payload的數據量。

3.小結

jwt和token+redis兩種方案,沒有最優,只有結合不同的業務場景,需求最適合的方案。就比如token2h過期,同一用戶每1.5h只生成瞎鉛廳一次token,當兩次token並存時,同時有效。大家可以考慮在這兩種方案的前提下,分別如何實現?

『柒』 水鏈有什麼優點

簡潔性:
水鏈(JWT)協議將盡可能簡單,即便以某些數據存儲和時間上的低效為代價,同時水鏈的操作使用也更加簡潔方便。
安全性:
水鏈(JWT)是一種加密貨幣,採用智能合約和去中心化技術,很難被竊取和篡改。同時水鏈(JWT)錢包地址的匿名性,使用戶的賬戶更加安全。
應用性強:
水鏈(JWT)不同於其他的空氣幣,水鏈(JWT)創造之初就被多家企業和無數的商家認可,可以在這些企業與商家中使用,同時這些豐富的應用場景也讓水鏈(JWT)稱為一款應用型極強的數字貨幣,產生了更高的價值。

閱讀全文

與jwt去中心化相關的資料

熱點內容
魔獸懷舊服中級挖礦去哪裡挖 瀏覽:415
鴻博股份區塊鏈 瀏覽:742
aot慈善幣1月19日礦機 瀏覽:973
現在哪個比特幣網可以交易 瀏覽:18
挖礦幣開盤怎麼寫開盤詞 瀏覽:421
礦機傳媒廣告背包 瀏覽:242
數字貨幣交易所MSOKEN 瀏覽:664
比特幣病毒2017 瀏覽:729
40萬螞蟻礦機 瀏覽:623
比特幣錢包簽名怎麼搞 瀏覽:586
數字貨幣最收藏價值 瀏覽:786
區塊鏈node 瀏覽:722
比特幣挖礦對氣候 瀏覽:320
購買比特幣屬於詐騙類的那種 瀏覽:772
btc圖表怎麼看 瀏覽:144
俄羅斯科學家計算機挖礦 瀏覽:761
明日之後礦機挖一次要多久 瀏覽:862
微星200系列主板挖礦 瀏覽:400
數字貨幣包括啥 瀏覽:409
為什麼不買熊貓礦機 瀏覽:343