主頁 > 資料庫 > Kafka 集群在馬蜂窩大資料平臺的優化與應用擴展

Kafka 集群在馬蜂窩大資料平臺的優化與應用擴展

2020-09-14 18:49:22 資料庫

馬蜂窩技術原創文章,更多干貨請訂閱公眾號:mfwtech

 

Kafka 是當下熱門的訊息佇列中間件,它可以實時地處理海量資料,具備高吞吐、低延時等特性及可靠的訊息異步傳遞機制,可以很好地解決不同系統間資料的交流和傳遞問題,

Kafka 在馬蜂窩也有非常廣泛的應用,為很多核心的業務提供支撐,本文將圍繞 Kafka 在馬蜂窩大資料平臺的應用實踐,介紹相關業務場景、在 Kafka 應用的不同階段我們遇到了哪些問題以及如何解決、之后還有哪些計劃等,

 

Part.1 應用場景

從 Kafka 在大資料平臺的應用場景來看,主要分為以下三類:

第一類是將 Kafka 作為資料庫,提供大資料平臺對實時資料的存盤服務,從來源和用途兩個維度來說,可以將實時資料分為業務端 DB 資料、監控型別日志、基于埋點的客戶端日志 (H5、WEB、APP、小程式) 和服務端日志,

第二類是為資料分析提供資料源,各埋點日志會作為資料源,支持并對接公司離線資料、實時資料倉庫及分析系統,包括多維查詢、實時 Druid OLAP、日志明細等,

第三類是為業務方提供資料訂閱,除了在大資料平臺內部的應用之外,我們還使用 Kafka 為推薦搜索、大交通、酒店、內容中心等核心業務提供資料訂閱服務,如用戶實時特征計算、用戶實時畫像訓練及實時推薦、反作弊、業務監控報警等,

主要應用如下圖所示:

 

Part.2 演進之路

四個階段

早期大資料平臺之所以引入 Kafka 作為業務日志的收集處理系統,主要是考慮到它高吞吐低延遲、多重訂閱、資料回溯等特點,可以更好地滿足大資料場景的需求,但隨著業務量的迅速增加,以及在業務使用和系統維護中遇到的問題,例如注冊機制、監控機制等的不完善,導致出現問題無法快速定位,以及一些線上實時任務發生故障后沒有快速恢復導致訊息積壓等, 使 Kafka 集群的穩定性和可用性得受到挑戰,經歷了幾次嚴重的故障,

解決以上問題對我們來說迫切而棘手,針對大資料平臺在使用 Kafka 上存在的一些痛點,我們從集群使用到應用層擴展做了一系列的實踐,整體來說包括四個階段:

第一階段:版本升級,圍繞平臺資料生產和消費方面存在的一些瓶頸和問題,我們針對目前的 Kafka 版本進行技術選型,最終確定使用 1.1.1 版本,

第二階段:資源隔離,為了支持業務的快速發展,我們完善了多集群建設以及集群內 Topic 間的資源隔離,

第三階段:權限控制和監控告警,

首先在安全方面,早期的 Kafka 集群處于裸跑狀態,由于多產品線共用 Kafka,很容易由于誤讀其他業務的 Topic 導致資料安全問題,因此我們基于 SASL/ SCRAM + ACL 增加了鑒權的功能,

在監控告警方面,Kafka 目前已然成為實時計算中輸入資料源的標配,那么其中 Lag 積壓情況、吞吐情況就成為實時任務是否健康的重要指標,因此,大資料平臺構建了統一的 Kafka 監控告警平臺并命名「雷達」,多維度監控 Kafka 集群及使用方情況,

第四階段:應用擴展,早期 Kafka 在對公司各業務線開放的程序中,由于缺乏統一的使用規范,導致了一些業務方的不正確使用,為解決該痛點,我們構建了實時訂閱平臺,通過應用服務的形式賦能給業務方,實作資料生產和消費申請、平臺的用戶授權、使用方監控告警等眾多環節流程化自動化,打造從需求方使用到資源全方位管控的整體倍訓,

下面圍繞幾個關鍵點為大家展開介紹,

核心實踐

1. 版本升級

之前大資料平臺一直使用的是 0.8.3 這一 Kafka 早期版本,而截止到當前,Kafka 官方最新的 Release 版本已經到了 2.3,于是長期使用 0.8 版本程序中漸漸遇到的很多瓶頸和問題,我們是能夠通過版本升級來解決的,

舉例來說,以下是一些之前使用舊版時常見的問題:

  • 缺少對 Security 的支持:存在資料安全性問題及無法通過認證授權對資源使用細粒度管理
  • broker under replicated:發現 broker 處于 under replicated 狀態,但不確定問題的產生原因,難以解決,
  • 新的 feature 無法使用:如事務訊息、冪等訊息、訊息時間戳、訊息查詢等,
  • 客戶端的對 offset 的管理依賴 zookeeper, 對 zookeeper 的使用過重, 增加運維的復雜度
  • 監控指標不完善:如 topic、partition、broker 的資料 size 指標, 同時 kafka manager 等監控工具對低版本 kafka 支持不好

同時對一些目標版本的特性進行了選型調研,如:

  • 0.9 版本, 增加了配額和安全性, 其中安全認證和授權是我們最關注的功能
  • 0.10 版本,更細粒度的時間戳. 可以基于偏移量進行快速的資料查找,找到所要的時間戳,這在實時資料處理中基于 Kafka 資料源的資料重播是極其重要的
  • 0.11 版本, 冪等性和 Transactions 的支持及副本資料丟失/資料不一致的解決,
  • 1.1 版本,運維性的提升,比如當 Controller Shut Down,想要關閉一個 Broker 的時候,之前需要一個很長很復雜的程序在 1.0 版本得到很大的改善,

最終選擇 1.1 版本, 則是因為出于 Camus 與 Kafka 版本的兼容性及 1.1 版本已經滿足了使用場景中重要新特性的支持的綜合考量,這里再簡單說一下 Camus 組件,同樣是由 Linkedin 開源,在我們的大資料平臺中主要作為 Kafka 資料 Dump 到 HDFS 的重要方式,

2. 資源隔離

之前由于業務的復雜性和規模不大,大資料平臺對于 Kafka 集群的劃分比較簡單,于是,一段時間以后導致公司業務資料混雜在一起,某一個業務主題存在的不合理使用都有可能導致某些 Broker 負載過重,影響到其他正常的業務,甚至某些 Broker 的故障會出現影響整個集群,導致全公司業務不可用的風險,

針對以上的問題,在集群改造上做了兩方面實踐:

  • 按功能屬性拆分獨立的集群
  • 集群內部 Topic 粒度的資源隔離

(1) 集群拆分

按照功能維度拆分多個 Kafka 物理集群,進行業務隔離,降低運維復雜度,

以目前最重要的埋點資料使用來說, 目前拆分為三類集群,各類集群的功能定義如下:

  • Log 集群:各端的埋點資料采集后會優先落地到該集群, 所以這個程序不能出現由于 Kafka 問題導致采集中斷,這對 Kafka 可用性要求很高,因此該集群不會對外提供訂閱,保證消費方可控;同時該集群業務也作為離線采集的源頭,資料會通過 Camus 組件按小時時間粒度 dump 到 HDFS 中,這部分資料參與后續的離線計算,

  • 全量訂閱集群:該集群 Topic 中的絕大部分資料是從 Log 集群實時同步過來的,上面我們提到了 Log 集群的資料是不對外的,因此全量集群就承擔了消費訂閱的職責,目前主要是用于平臺內部的實時任務中,來對多個業務線的資料分析并提供分析服務,

  • 個性定制集群:之前提到過,我們可以根據業務方需求來拆分、合并資料日志源,同時我們還支持定制化 Topic,該集群只需要提供分流后 Topic 的落地存盤,

集群整體架構劃分如下圖:

(2) 資源隔離

Topic 的流量大小是集群內部進行資源隔離的重要依據,例如,我們在業務中埋點日志量較大的兩個資料源分別是后端埋點資料源 server-event 和端上的埋點 mobile-event 資料源,我們要避免存盤兩個資料的主題磁區分配到集群中同一個 Broker 上的節點,通過在不同 Topic 進行物理隔離,就可以避免 Broker 上的流量發生傾斜,

3. 權限控制和監控告警

(1) 權限控制

開始介紹時我們說過,早期 Kafka 集群沒有設定安全驗證處于裸跑狀態,因此只要知道 Broker 的連接地址即可生產消費,存在嚴重的資料安全性問題,

一般來說, 使用 SASL 的用戶多會選擇 Kerberos,但就平臺 Kafka 集群的使用場景來說,用戶系統并不復雜,使用 Kerberos 就有些大材小用, 同時 Kerberos 相對復雜,存在引發其他問題的風險,另外,在 Encryption 方面, 由于都是運行在內網環境,所以并沒有使用 SSL 加密,

最終平臺 Kafka 集群使用 SASL 作為鑒權方式, 基于 SASL/ SCRAM + ACL 的輕量級組合方式,實作動態創建用戶,保障資料安全,

(2) 監控告警

之前在集群的使用中我們經常發現,消費應用的性能無緣無故變差了,分析問題的原因, 通常是滯后 Consumer 讀取的資料大概率沒有命中 Page- cache,導致 Broker 端機器的內核要首先從磁盤讀取資料加載到 Page- cache 中后,才能將結果返還給 Consumer,相當于本來可以服務于寫操作的磁盤現在要讀取資料了, 影響了使用方讀寫同時降低的集群的性能,

這時就需要找出滯后 Consumer 的應用進行事前的干預從而減少問題發生,因此監控告警無論對平臺還是用戶都有著重大的意義,下面介紹一下我們的實踐思路,

整體方案:

整體方案主要是基于開源組件 Kafka JMX Metrics+OpenFalcon+Grafana:

  • Kafka JMX Metrics:Kafka broker 的內部指標都以 JMX Metrics 的形式暴露給外部,1.1.1 版本 提供了豐富的監控指標,滿足監控需要
  • OpenFalcon:小米開源的一款企業級、高可用、可擴展的開源監控系統
  • Grafana:Metrics 可視化系統,大家比較熟悉,可對接多種 Metrics 資料源,

關于監控:

  • Falcon-agent:部署到每臺 Broker 上, 決議 Kafka JMX 指標上報資料
  • Grafana:用來可視化 Falcon Kafka Metrics 資料,對 Cluster、Broker、Topic、Consumer 4 個角色制作監控大盤,
  • Eagle:獲取消費組 Active 狀態、消費組 Lag 積壓情況,同時提供 API,為監控告警系統「雷達」提供監控資料,

關于告警:

雷達系統: 自研監控系統,通過 Falcon 及 Eagle 獲取 Kafka 指標,結合設定閾值進行告警,以消費方式舉例,Lag 是衡量消費情況是否正常的一個重要指標,如果 Lag 一直增加,必須要對它進行處理,

發生問題的時候,不僅 Consumer 管理員要知道,它的用戶也要知道,所以報警系統也需要通知到用戶,具體方式是通過企業微信告警機器人自動提醒對應消費組的負責人或使用者及 Kafka 集群的管理者,

監控示例:

 

4. 應用擴展

(1) 實時資料訂閱平臺 

實時資料訂閱平臺是一個提供 Kafka 使用全流程管理的系統應用,以工單審批的方式將資料生產和消費申請、平臺用戶授權、使用方監控告警等眾多環節流程化自動化, 并提供統一管控,

核心思想是基于 Kafka 資料源的身份認證和權限控制,增加資料安全性的同時對 Kafka 下游應用進行管理,

(2) 標準化的申請流程

無論生產者還是消費者的需求,使用方首先會以工單的方式提出訂閱申請,申請資訊包括業務線、Topic、訂閱方式等資訊;工單最侄訓流轉到平臺等待審批;如果審批通過,使用方會分配到授權賬號及 Broker 地址,至此,使用方就可以進行正常的生產消費了,

(3) 監控告警

對于平臺來說,權限與資源是系結的,資源可以是用于生產的 Topic 或消費使用的 GroupTopic,一旦權限分配后,對于該部分資源的使用就會自動在我們的雷達監控系統進行注冊,用于資源整個生命的周期的監控, 

(4) 資料重播

出于對資料完整性和準確性的考量,目前 Lamda 架構已經是大資料的一種常用架構方式,但從另一方面來說,Lamda 架構也存在資源的過多使用和開發難度高等問題,

實時訂閱平臺可以為消費組提供任意位點的重置,支持對實時資料按時間、位點等多種方式的資料重播, 并提供對 Kappa 架構場景的支持,來解決以上痛點,

(5) 主題管理

為什么提供主題管理?舉一些很簡單的例子,比如當我們想讓一個用戶在集群上創建他自己的 Kafka  Topic,這時顯然是不希望讓他直接到一個節點上操作的,因此剛才所講的服務,不管是對用戶來講,還是管理員來講,我們都需要有一個界面操作它,因為不可能所有人都通過 SSH 去連服務器,

因此需要一個提供管理功能的服務,創建統一的入口并引入主題管理的服務,包括主題的創建、資源隔離指定、主題元資料管理等,

(6) 資料分流

在之前的架構中, 使用方消費 Kafka 資料的粒度都是每個 Kafka Topic 保存 LogSource 的全量資料,但在使用中很多消費方只需要消費各 LogSource 的部分資料,可能也就是某一個應用下幾個埋點事件的資料,如果需要下游應用自己寫過濾規則,肯定存在資源的浪費及使用便捷性的問題;另外還有一部分場景是需要多個資料源 Merge 在一起來使用的,

基于上面的兩種情況, 我人實作了按業務方需求拆分、合并并定制化 Topic 支持跨資料源的資料合并及 appcode 和 event code 的任意組個條件的過濾規則,

 

Part.3 后續計劃

  • 解決資料重復問題,為了解決目前平臺實時流處理中因故障恢復等因素導致資料重復的問題,我們正在嘗試用 Kafka 的事務機制結合 Flink 的兩段提交協議實作端到端的僅一次語意,目前已經在平臺上小范圍試用, 如果通過測驗,將會在生產環境下推廣,

  • Consumer 限流,在一寫多讀場景中, 如果某一個 Consumer 操作大量讀磁盤, 會影響 Produce 級其他消費者操作的延遲,l 因此,通過 Kafka Quota 機制對 Consume 限流及支持動態調整閾值也是我們后續的方向

  • 場景擴展,基于 Kafka 擴展 SDK、HTTP 等多種訊息訂閱及生產方式,滿足不同語言環境及場景的使用需求,

以上就是關于 Kafka 在馬蜂窩大資料平臺應用實踐的分享,如果大家有什么建議或者問題,歡迎在馬蜂窩技術公眾號后臺留言,

本文作者:畢博,馬蜂窩大資料平臺研發工程師,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/37870.html

標籤:大數據

上一篇:Spark調優指南

下一篇:MySQL (InnoDB)在什么情況下無法使用索引

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more