91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

      手機站
      千鋒教育

      千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

      千鋒教育

      掃一掃進入千鋒手機站

      領(lǐng)取全套視頻
      千鋒教育

      關(guān)注千鋒學(xué)習(xí)站小程序
      隨時隨地免費學(xué)習(xí)課程

      當(dāng)前位置:首頁  >  技術(shù)干貨  > 億級流量的互聯(lián)網(wǎng)項目如何快速構(gòu)建?這里為你詳細解密!

      億級流量的互聯(lián)網(wǎng)項目如何快速構(gòu)建?這里為你詳細解密!

      來源:千鋒教育
      發(fā)布人:syq
      時間: 2022-12-28 16:50:15 1672217415

        一. 大流量的互聯(lián)網(wǎng)項目

        1.項目背景

        之前負責(zé)的一個項目,業(yè)務(wù)背景是這樣的。城市的基礎(chǔ)設(shè)施建設(shè)是每個城市和地區(qū)都會涉及到的,如何在基建工地中實現(xiàn)人性化管理,是當(dāng)前項目的主要訴求。該項目要實現(xiàn)如下目標(biāo):

      互聯(lián)網(wǎng)項目如何快速構(gòu)建

        工地工人的智慧考勤:

        考勤機通過面容做人臉識別就能打卡,工人不需要脫手套按指紋,甚至不需要卸下口罩;

        工地安全檢測:

        檢測某一個區(qū)域沒有戴安全帽的工人,可以快速觸發(fā)總控臺,提醒管理員監(jiān)管;

        工地機器的工作情況:

        統(tǒng)計工地機器是否正在工作及已經(jīng)連續(xù)工作時長,用于檢測機器是否在安全時間內(nèi)使用。

        從上述項目背景中我們就能看出,每一個功能的實現(xiàn)都需要硬件設(shè)備來實現(xiàn):比如人臉識別考勤機來實現(xiàn)智慧打卡,帶有人體識別功能的攝像頭來捕捉?jīng)]有戴安全帽的人員,傳感器設(shè)備來統(tǒng)計機器是否正在工作。

      11

        除了工地項目外,還有另一種很有意思的應(yīng)用場景,就是統(tǒng)計商場、超市的熱門門店。大家肯定很好奇,這是怎么實現(xiàn)的?——對!也是通過攝像頭。攝像頭采集進入商場的人員,不用采集到臉,只需要根據(jù)人體的形態(tài)、衣服顏色、身高等特征值來標(biāo)識一個主體。根據(jù)人體識別算法,統(tǒng)計哪些類型的人,在什么時間段,去了哪些門店。如果特征值足夠匹配,甚至還能統(tǒng)計出性別和老幼。這個應(yīng)用場景是不是非常有意思?其實,很多城市已經(jīng)在用這一套系統(tǒng)。甚至還有更有意思的應(yīng)用場景,物聯(lián)網(wǎng)早已深入生活,而IOT的項目中的流量數(shù)據(jù)是非常大的。

        索爾為什么要說這些呢?你有沒有發(fā)現(xiàn),其實這些都跟硬件設(shè)備有關(guān)。如果老師所在的公司是一個硬件廠商,或者是一個小B中間商,就需要知道我買的這些設(shè)備,是否都能夠正常工作。如果能有一個類似于下面這樣的數(shù)據(jù)大屏,那是不是更加完美呢?我們就是這么干的。

      12 (1)

        問題來了,設(shè)備的心跳數(shù)據(jù)該多久上報一次?上報時間間隔的不同會對整個系統(tǒng)造成怎樣的影響?心跳數(shù)據(jù)怎么判斷設(shè)備是否正常?會有多少的心跳數(shù)據(jù)?

        2.設(shè)備上報心跳的時間間隔

        設(shè)備的上報心跳動作其實是一個很簡單的邏輯,就是上報將自己的設(shè)備key,和當(dāng)前時間封裝成一個http請求消息,發(fā)送給平臺。

        根據(jù)當(dāng)時硬件部門的設(shè)定,不同設(shè)備的約定不同,每個設(shè)備大致會在2秒到5秒之間向平臺發(fā)送一次心跳。

        3.如何通過心跳計算出當(dāng)前時間段設(shè)備是否正常

        根據(jù)目前的情況,平臺收到的設(shè)備的心跳信息可以通過這張表體現(xiàn)出來:

      13

        這個表就是用來記錄當(dāng)前設(shè)備的最后活躍時間。那么問題來了,該怎么統(tǒng)計當(dāng)前時間段的正常設(shè)備和異常設(shè)備?多久沒有上報心跳的設(shè)備會被判定為異常設(shè)備呢?

        心跳、服務(wù)發(fā)現(xiàn)。對!你也發(fā)現(xiàn)了,它們好像在描述同一件事情。在這里,參考了微服務(wù)中注冊中心對于服務(wù)剔除的方案。比如Nacos的服務(wù)健康檢查機制:

        Nacos Server會開啟一個定時任務(wù)用來檢查注冊服務(wù)實例的健康情況,對于超過15秒沒有收到客戶端心跳的實例會將它的健康屬性置為false,如果某個實例超過30秒沒有收到心跳,則直接剔除該實例。

        開啟了一個每隔30秒定時任務(wù),去設(shè)備心跳表中統(tǒng)計今日上報心跳的設(shè)備數(shù)量,具體的sql操作如下:

      14

        針對于這條sql,有同學(xué)會問,為什么不直接用日期函數(shù):

      15

        因為性能,使用函數(shù)會導(dǎo)致索引失效,關(guān)于SQL優(yōu)化這一塊的內(nèi)容,大家可以在MySQL優(yōu)化專題里進行學(xué)習(xí)。

      16 (1)

        我們可以將統(tǒng)計到的數(shù)據(jù),維護在redis中。也就是說,redis中維護了今日正常設(shè)備的總數(shù),這個數(shù)據(jù)每30秒更新一次。

        4.并發(fā)量的產(chǎn)生

        在上一章節(jié)中我們提到,任何一個設(shè)備,都會上報其心跳到平臺,而且每個設(shè)備會每隔2到5秒左右上報一次心跳,我們試算下:

        一臺設(shè)備:每隔3秒上報一次;

        三十萬臺設(shè)備:每隔3秒會上報30萬次;

        平臺:每秒接收到10萬次訪問,每天將會收到將近百億的消息。

        可以推算出,一個平臺基本上每秒都會收到大約10萬次訪問。這樣的并發(fā)量不算大,但也不能說少,而且這樣每秒10萬的請求是持續(xù)的,這10萬的請求每秒都會來,不間斷的來,此時考驗后端接口的時刻就到了。

        5.業(yè)務(wù)如何處理

        后端接口做到高性能、高可用設(shè)計,我們會在之后的專題去講,這里先聊一下接口收到數(shù)據(jù)后,該如何處理。

        很顯然,接口收到設(shè)備上報的心跳數(shù)據(jù)后,要把數(shù)據(jù)落到數(shù)據(jù)庫里。這就是具體業(yè)務(wù)要做的事,很簡單,只要落到數(shù)據(jù)庫里就可以。

        二. 待解決的核心業(yè)務(wù)邏輯

        1.項目模塊

      17 (1)

        整個項目分成了以下幾個子項目:

        數(shù)據(jù)大屏前端項目

        數(shù)據(jù)大屏后端項目

        硬件后端項目

        硬件設(shè)備

        Redis緩存服務(wù)器

        MySQL關(guān)系型數(shù)據(jù)庫

        這些項目之間有著重要的聯(lián)系,這樣的聯(lián)系可以總結(jié)為兩點:一是數(shù)據(jù)大屏的后端為數(shù)據(jù)大屏的前端提供數(shù)據(jù),二是硬件設(shè)備的后端供硬件設(shè)備訪問實現(xiàn)數(shù)據(jù)交互。

        那么問題來了,以第一點為例,后端和前端的數(shù)據(jù)交互方式是什么樣?

        2.前后端交互方式

      18 (1)

        “前端”的概念可以是多種終端的瀏覽器。部署在web服務(wù)器上的Java Web應(yīng)用程序(即“后端”)提供了供http協(xié)議訪問的web接口,也就是程序的調(diào)用入口。前端通過http協(xié)議訪問后端的web接口,實現(xiàn)數(shù)據(jù)的交互。比如前端通過http協(xié)議訪問后端獲取網(wǎng)絡(luò)資源的web接口,后端通過io流的方式獲得網(wǎng)絡(luò)資源并使用http協(xié)議返回給前端。這就是一個完整的前后端交互過程。

        3.核心業(yè)務(wù)

        如何編寫Java程序。關(guān)于Java入門及Java核心基礎(chǔ)部分的知識,老師為大家準(zhǔn)備了這一套Java核心基礎(chǔ)課程視頻非常建議剛?cè)腴T的同學(xué)好好學(xué)一遍。

        硬件如何訪問到Java程序:

        硬件也可以通過http協(xié)議來訪問到j(luò)ava的web接口;

        數(shù)據(jù)存到哪:

        打卡機等硬件生成員工的打卡數(shù)據(jù),將數(shù)據(jù)發(fā)送給后端Java程序,Java程序?qū)?shù)據(jù)保存到MySQL數(shù)據(jù)庫中。但這還不夠,因為數(shù)據(jù)大屏的前端也需要獲得數(shù)據(jù),于是需要讓數(shù)據(jù)大屏的后端去數(shù)據(jù)庫獲取數(shù)據(jù);

        優(yōu)化點在哪里。

        很顯然,設(shè)備的數(shù)據(jù)量非常大,勢必給數(shù)據(jù)庫造成過大的壓力。優(yōu)化點就在于如何讓數(shù)據(jù)庫更輕松一些。使用在處理能力上面非常優(yōu)秀的Redis緩存數(shù)據(jù)庫,解決數(shù)據(jù)庫的壓力。此時,與硬件對應(yīng)的后端java程序?qū)?shù)據(jù)存入到redis中,數(shù)據(jù)大屏的后端程序從redis中取出數(shù)據(jù),展示在數(shù)據(jù)大屏前端項目中。

        三. 核心業(yè)務(wù)代碼

        1.供硬件訪問的后端Java程序

        1.1 Controller

      19

        1.2 service

      20

        2.數(shù)據(jù)大屏前端訪問后端接口

      21

        前端使用VUE的axios來發(fā)送http請求,訪問后端接口,并實時展示在DataV前端數(shù)據(jù)大屏框架的翻牌器組件中。

        3.數(shù)據(jù)大屏后端提供數(shù)據(jù)的接口

        3.1 Controller

      22

        3.2 service

      23

        四. 前后端聯(lián)調(diào)及測試

        1.使用Postman測試后端硬件打卡接口

      24

        模擬使用id是1003,姓名是xiaoming的用戶進行打卡,并返回打卡成功。

        2.使用Postman測試后端獲得打卡數(shù)據(jù)接口

      25

        訪問后端獲得打卡總數(shù)的接口,獲得的打卡總數(shù)為18。

        3.啟動前端項目獲得打卡總數(shù)

        在項目路徑中使用cnpm install 安裝vue項目需要的依賴;

        在項目路徑中使用npm run serve 啟動項目;

        獲得頁面數(shù)據(jù)。

      26

        以上內(nèi)容就是為大家分享的億級流量互聯(lián)網(wǎng)項目構(gòu)建思路,不知道你現(xiàn)在是不是得到了一些啟發(fā)呢?在我們的線下課程里,這個智慧工地的項目會有詳細的講解哦,歡迎你來學(xué)習(xí)。

      tags:
      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
      請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
      免費領(lǐng)取
      今日已有369人領(lǐng)取成功
      劉同學(xué) 138****2860 剛剛成功領(lǐng)取
      王同學(xué) 131****2015 剛剛成功領(lǐng)取
      張同學(xué) 133****4652 剛剛成功領(lǐng)取
      李同學(xué) 135****8607 剛剛成功領(lǐng)取
      楊同學(xué) 132****5667 剛剛成功領(lǐng)取
      岳同學(xué) 134****6652 剛剛成功領(lǐng)取
      梁同學(xué) 157****2950 剛剛成功領(lǐng)取
      劉同學(xué) 189****1015 剛剛成功領(lǐng)取
      張同學(xué) 155****4678 剛剛成功領(lǐng)取
      鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
      董同學(xué) 138****2867 剛剛成功領(lǐng)取
      周同學(xué) 136****3602 剛剛成功領(lǐng)取
      相關(guān)推薦HOT
      為什么SpringBoot的 jar 可以直接運行?

      一、JAR文件的結(jié)構(gòu)與執(zhí)行方式Spring Boot的JAR包是Java Archive的縮寫,它是一種壓縮文件格式,可以將Java項目的類文件、資源文件以及依賴庫等...詳情>>

      2023-10-14 23:01:49
      站群服務(wù)器是什么?

      站群服務(wù)器的含義與用途站群服務(wù)器主要用于支持站群,即由一組相互鏈接的網(wǎng)站組成的群體。這些網(wǎng)站通常由同一組織或個人擁有,并且經(jīng)常會互相鏈...詳情>>

      2023-10-14 22:46:12
      自編碼器是什么?

      一、自編碼器原理自編碼器的設(shè)計靈感源于神經(jīng)科學(xué)中關(guān)于感知系統(tǒng)的認知原理,它的核心思想是將輸入數(shù)據(jù)經(jīng)過編碼過程,形成一個隱藏層的特征表示...詳情>>

      2023-10-14 22:41:10
      什么是云網(wǎng)融合?

      一、云網(wǎng)融合的定義云網(wǎng)融合是指將云計算與網(wǎng)絡(luò)技術(shù)相結(jié)合,實現(xiàn)資源的共享、業(yè)務(wù)的協(xié)同,將網(wǎng)絡(luò)與云端服務(wù)深度融合,提供更靈活、高效、安全的...詳情>>

      2023-10-14 22:31:47
      什么是setnx、Redlock、Redisson?

      一、setnxsetnx是Redis中的一個命令,用于將鍵值對(key-value)設(shè)置到Redis數(shù)據(jù)庫中。其中,setnx表示”Set if Not Exists”,即當(dāng)...詳情>>

      2023-10-14 22:22:53