主頁 >  其他 > (⊙o⊙)?原來邊緣計算是這么開發的!

(⊙o⊙)?原來邊緣計算是這么開發的!

2021-09-16 11:58:06 其他

邊緣計算

  • 1. KubeEdge簡介
  • 2. 功能說明
  • 3. 架構說明
    • 3.1 架構圖
    • 3.2. 云端
    • 3.3. 邊緣端
  • 4. 部署
    • 4.1環境準備
    • 4.2 云端部署
      • 4.2.1 配置 golang 環境
      • 4.2.2 配置 cloudcore
      • 4.2.3 創建cloud節點
    • 4.2 Edge 端部署
      • 4.2.1 環境初始化
      • 4.2.2 安裝部署docker
      • 4.2.3 安裝keadm
      • 4.2.4 從云端獲取令牌 token
      • 4.2.5 加入邊緣節點
    • 4.3 驗證
  • 5. 邊緣計算應用Demo
    • 5.1 準備作業 (云端操作)
    • 5.2 部署云端應用
    • 5.3 部署邊緣端應用
    • 5.4 體驗 demo
    • 5.5 原始碼分析
      • 5.5.1 代碼結構
      • 5.5.2 代碼說明
        • 5.5.2.1 云端應用:web-controller-app
        • 5.5.2.2 邊緣端應用:counter-mapper

1. KubeEdge簡介

KubeEdge是華為開源出來的邊緣計算組件,它是基于kubernetes之上將容器化應用的編排能力拓展到邊緣主機或邊緣設備,在云端和邊緣端提供網路通信,應用部署、元資料同步等功能,同時支持MQTT協議,允許開發者在邊緣端自定義接入邊緣設備,

為什么要用KubeEdge而不直接使用K8s?

KubeEdge是為硬體性能低下的遠程設備以及網路狀況糟糕的情況下而設計的,

2. 功能說明

  • 邊緣計算:提供邊緣節點自治能力,邊緣節點資料處理能力,
  • 便捷部署:開發者可以開發http或mqtt協議的應用,運行在云端和邊緣端,
  • k8s原生支持:可以通過k8s管理和監控邊緣設備和邊緣節點,
  • 豐富的應用型別:可以在邊緣端部署機器學習、圖片識別、事件處理等應用,

3. 架構說明

3.1 架構圖

kubeedge分為兩個可執行程式,cloudcore和edgecore,

3.2. 云端

  • CloudHub:一個web socket服務器,負責監聽云端的更新、快取及向EdgeHub發送訊息,
  • EdgeController:一個擴展的k8s控制器,負責管理邊緣節點和pod元資料,同步邊緣節點的資料,是k8s-apiserverEdgeCore的通信橋梁,
  • DeviceController:一個擴展的k8s控制器,負責管理節點設備,同步云端和邊緣端的設備元資料和狀態,

3.3. 邊緣端

  • EdgeHub:一個web socket客戶端,負責云端與邊緣端的資訊互動,其中包括將云端的資源變更同步到邊緣端及邊緣端的狀態變化同步到云端,它充當邊緣與云之間的通信鏈接,

  • Edged:運行在邊緣節點,管理節點生命周期,可以幫助用戶在邊緣節點上部署容器化的作業負載或應用程式, 這些作業負載可以執行任何操作,從簡單的遙測資料操作到分析或ML推理等,使用kubectl云端的命令列界面,用戶可以發出命令來啟動作業負載,

  • EventBus:一個MQTT客戶端,充當用于發送/接收有關mqtt主題的訊息的介面,與MQTT服務端互動,提供發布/訂閱的能力,

  • ServiceBus:一個HTTP客戶端,與HTTP服務端互動,為云組件提供HTTP客戶端功能,以訪問在邊緣運行的HTTP服務器,

  • DeviceTwin:負責存盤設備狀態并同步設備狀態到云端,同時提供應用的介面查詢,

  • MetaManager:edgededgehub之間的訊息處理器,負責向輕量資料庫(SQLite)存盤或查詢元資料,

4. 部署

4.1環境準備

我們在上篇文章中安裝好的k8s基礎上再增加1臺邊緣端節點,

從零開始學習部署K8S:https://blog.csdn.net/shyflea/article/details/119758389

注意:往下操作前要先安裝好K8S!!!

主機資訊如下,系統均采用Centos7.x,

型別IP地址主機名記憶體CPU部署服務
云端192.168.159.101master14G2k8s、docker、cloudcore
云端192.168.159.102node12G1docker
云端192.168.159.103node22G1docker
邊緣端192.168.159.201edge11G1docker、edgecore

4.2 云端部署

云端主要是負責編譯 kubeEdge 的相關組件與運行 cloudcore,所以需要準備 golang 環境,以及需要去官方 github 上拉取原始碼,進行編譯,

4.2.1 配置 golang 環境

$ cd /home
$ wget https://golang.google.cn/dl/go1.14.4.linux-amd64.tar.gz
$ tar -zxvf go1.14.4.linux-amd64.tar.gz -C /usr/local

配置 golang 環境變數

$ vim /etc/profile
檔案末尾追加
# golang env
export GOROOT=/usr/local/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
 
$ source /etc/profile

# 創建作業目錄:
$ mkdir -p /data/gopath && cd /data/gopath
$ mkdir -p src pkg bin

4.2.2 配置 cloudcore

下載 kubeEdge 原始碼

# 由于從github上下載比較慢,這里使用加速地址
$ cd /home
$ git clone https://hub.fastgit.org/dogfei/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedge 

編譯 keadm

$ cd $GOPATH/src/github.com/kubeedge/kubeedge
$ make all WHAT=keadm
$ make all WHAT=cloudcore
$ yum -y install gcc
$ make all WHAT=edgecore

將編譯好的二進制檔案 copy 到/usr/local/bin 中

$ cp _output/local/bin/* /usr/local/bin/

4.2.3 創建cloud節點

創建 cloudcore 節點

$ keadm init --advertise-address="192.168.159.101" #IP替換為本機IP

問題1: 連接不上raw.githubusercontent.com

解決方法:編輯vi /etc/hosts,增加

151.101.108.133 raw.githubusercontent.com

問題2: 如果添加完host以后,還是

> Error: failed to run 'sh -c cd /etc/kubeedge/crds/devices && wget -k
> --no-check-certificate --progress=bar:force https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/devices/devices_v1alpha2_device.yaml'
> because of error : exit status 4

解決方法:手動下載后上傳到相應目錄

# 上傳devices_v1alpha2_devicemodel.yaml 和devices_v1alpha2_device.yaml
$ cd /etc/kubeedge/crds/devices 
# 下載地址:https://github.com/kubeedge/kubeedge/edit/master/build/crds/devices/

# 上傳 cluster_objectsync_v1alpha1.yaml objectsync_v1alpha1.yaml
$ cd /etc/kubeedge/crds/reliablesyncs
# 下載地址:https://github.com/kubeedge/kubeedge/edit/master/build/crds/reliablesyncs
# 手動下載kubeedge-v1.7.2-linux-amd64.tar.gz安裝包
$ cd /etc/kubeedge/
$ wget -k --no-check-certificate --progress=bar:force  https://ghproxy.com/https://github.com/kubeedge/kubeedge/releases/download/v1.7.2/kubeedge-v1.7.2-linux-amd64.tar.gz

# 重新啟動
$ keadm init --advertise-address="192.168.159.101"
# 注意安裝程序中提示是否洗掉kubeedge-v1.7.2-linux-amd64.tar.gz重新下載,要選N

4.2 Edge 端部署

4.2.1 環境初始化

首先對邊緣端edge1進行初始化操作:

關閉防火墻和SELinux

$ systemctl stop firewalld && systemctl disable firewalld
$ setenforce 0
$ vi /etc/selinux/config
SELINUX=disabled

設定/etc/host決議到互通的主機

云端控制節點master1:

$ vi /etc/hosts
192.168.159.201 edge1

邊緣端節點edge1:

$ vi /etc/hosts
192.168.159.201 edge1
192.168.159.101 master1

配置時間同步定時任務

# 使用公共NTP網路時間服務器地址:阿里云
* * * * * /sbin/ntpdate time1.aliyun.com > /dev/null 2>&1

臨時關閉swap磁區

$ swapoff -a
# 永久關閉
$ sed -ri 's/.*swap.*/#&/' /etc/fstab

4.2.2 安裝部署docker

在邊緣節點安裝docker

# 1.設定國內YUM源
$ cd /etc/yum.repos.d/
$ yum install wget
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 2.安裝指定的docker版本
$ yum -y install docker-ce-18.09.7-3.el7 docker-ce-cli-18.09.7

# 3.設定docker使用阿里云加速
$ mkdir /etc/docker
$ cat > /etc/docker/daemon.json <<EOF
    {
      "registry-mirrors": ["https://ig2l319y.mirror.aliyuncs.com"],
      "exec-opts": ["native.cgroupdriver=cgroupfs"] 
    }
EOF

# 4.啟動后臺行程
$ systemctl enable docker && systemctl start docker

# 5.查看docker版本
$ docker -v

4.2.3 安裝keadm

Edge 端也通過 keadm 進行配置,可以將 cloud 端編譯生成的二進制檔案 scp 到 Edge 端,

在云端執行如下命令:

$ cd $GOPATH/src/github.com/kubeedge/kubeedge
$ scp -r _output/local/bin/* root@192.168.159.201:/usr/local/bin/
$ scp  /etc/kubeedge/kubeedge-v1.7.2-linux-amd64.tar.gz root@192.168.159.201:/etc/kubeedge/

4.2.4 從云端獲取令牌 token

獲取的令牌用于邊緣節點加入時使用,類似于 k8s 的節點加入集群中

$ keadm gettoken 
# 輸出結果
576713eff1f92ea4a48fda83538354b25d1e42190d17bbbc7b36e07980dfae2c.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Mjk2MDI3OTJ9.DH78U1CoFiW_v-Qlnscf40b7De7dAy1-Y2bc7FMkxxg

4.2.5 加入邊緣節點

在邊緣端執行以下命令

$ keadm join --cloudcore-ipport=192.168.159.101:10000 --token=576713eff1f92ea4a48fda83538354b25d1e42190d17bbbc7b36e07980dfae2c.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Mjk2MDI3OTJ9.DH78U1CoFiW_v-Qlnscf40b7De7dAy1-Y2bc7FMkxxg
# 出現以下輸出表示安裝成功
KubeEdge edgecore is running, For logs visit: journalctl -u edgecore.service -b

4.3 驗證

邊緣端 edgecore 啟動成功后,會與云端的 cloudcore 進行通信,并且邊緣端會加入到 k8s 集群中,所以可以使用 kubectl 命令進行驗證

$ kubectl get nodes
NAME      STATUS   ROLES        AGE    VERSION
edge1     Ready    agent,edge   15m    v1.18.6-kubeedge-v1.4.0-beta.0.242+8280082f9da41b
master1   Ready    master       4d8h   v1.16.2
node1     Ready    node         4d5h   v1.16.2
node2     Ready    node         4d5h   v1.16.2

在控制臺也能夠看到新加入的邊緣節點,

5. 邊緣計算應用Demo

這里拿官方的一個例子,進行測驗,

KubeEdge Counter Demo 計數器是一個偽設備,用戶無需任何額外的物理設備即可運行此演示,計數器在邊緣側運行,用戶可以從云側在 Web 中對其進行控制,也可以從云側在 Web 中獲得計數器值,原理圖如下:

5.1 準備作業 (云端操作)

下載示例代碼:

# 使用官方的示例倉庫會比較慢,這里使用加速倉庫
$ git clone https://hub.fastgit.org/kubeedge/examples.git $GOPATH/src/github.com/kubeedge/examples

創建 device model

$ cd $GOPATH/src/github.com/kubeedge/examples/kubeedge-counter-demo/crds
$ kubectl create -f kubeedge-counter-model.yaml

創建 model

#需要根據實際情況修改yaml檔案,修改matchExpressions
$ cd $GOPATH/src/github.com/kubeedge/examples/kubeedge-counter-demo/crds
$ vim kubeedge-counter-instance.yaml
apiVersion: devices.kubeedge.io/v1alpha2
kind: Device
metadata:
  name: counter
  labels:
    description: 'counter'
spec:
  deviceModelRef:
    name: counter-model
  nodeSelector:
    nodeSelectorTerms:
    - matchExpressions:
      - key: 'kubernetes.io/hostname'
        operator: In
        values:
        - edge1

status:
  twins:
    - propertyName: status
      desired:
        metadata:
          type: string
        value: 'OFF'
      reported:
        metadata:
          type: string
        value: '0'

# 運行yaml
$ kubectl create -f kubeedge-counter-instance.yaml

5.2 部署云端應用

云端應用 web-controller-app 用來控制邊緣端的 pi-counter-app 應用,該程式默認監聽的埠號為 80,此處修改為 8089,如下所示:

$ cd $GOPATH/src/github.com/kubeedge/examples/kubeedge-counter-demo/web-controller-app
$ vim main.go
package main

import (
        "github.com/astaxie/beego"
        "github.com/kubeedge/examples/kubeedge-counter-demo/web-controller-app/controller"
)

func main() {
        beego.Router("/", new(controllers.TrackController), "get:Index")
        beego.Router("/track/control/:trackId", new(controllers.TrackController), "get,post:ControlTrack")

        beego.Run(":8089")
}

構建鏡像

#注意:構建鏡像時,如果原始碼不在GOPATH對應的路徑下,請將原始碼拷貝到GOPATH對應的路徑下,如果開啟了go mod請關閉,
$ make all
$ make docker
#這里會進行構建鏡像操作

部署 web-controller-app

$ cd $GOPATH/src/github.com/kubeedge/examples/kubeedge-counter-demo/crds
$ kubectl apply -f kubeedge-web-controller-app.yaml

5.3 部署邊緣端應用

修改代碼并構建鏡像

需要將 Makefile 中的 GOARCH 修改為 amd64 才能運行該容器,

$ cd $GOPATH/src/github.com/kubeedge/examples/kubeedge-counter-demo/counter-mapper
$ vim Makefile
.PHONY: all pi-execute-app docker clean
all: pi-execute-app

pi-execute-app:
        GOARCH=amd64 go build -o pi-counter-app main.go

docker:
        docker build . -t kubeedge/kubeedge-pi-counter:v1.0.0

clean:
        rm -f pi-counter-app

$ make all
$ make docker

部署 Pi Counter App

$ cd $GOPATH/src/github.com/kubeedge/examples/kubeedge-counter-demo/crds
$ kubectl apply -f kubeedge-pi-counter-app.yaml

# 說明:為了防止Pod的部署卡在`ContainerCreating`,這里直接通過docker save、scp和docker load命令將鏡像發布到邊緣端
$ docker save -o kubeedge-pi-counter.tar kubeedge/kubeedge-pi-counter:v1.0.0
$ scp  kubeedge-pi-counter.tar root@192.168.159.201:/home

# 以下在邊緣端執行
$ cd /
$ docker load -i kubeedge-pi-counter.tar  

5.4 體驗 demo

現在,KubeEdge Demo 的云端部分和邊緣端的部分都已經部署完畢,如下:

$ kubectl get pod -o wide
NAME                                    READY   STATUS    RESTARTS   AGE     IP                NODE      NOMINATED NODE   READINESS GATES
kube-7fcbcfdf95-84tjw                   1/1     Running   0          4d5h    10.2.1.6          node1     <none>           <none>
kube-7fcbcfdf95-g4dzs                   1/1     Running   0          4d5h    10.2.2.6          node2     <none>           <none>
kubeedge-counter-app-758b9b4ffd-28xq4   1/1     Running   0          4m34s   192.168.159.101   master1   <none>           <none>
kubeedge-pi-counter-c69698d6-l7dmt      1/1     Running   0          107s    192.168.159.201   edge1     <none>           <none>

訪問測驗

因為使用的 hostNetwork 模式,所以直接訪問即可 ,

選擇ON點擊Execute

在邊緣節點查看執行情況:

$ docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS               NAMES
8ced25dc67e4        0c040c9b34a0         "/pi-counter-app pi-…"   5 minutes ago       Up 5 minutes                            k8s_kubeedge-pi-counter_kubeedge-pi-counter-c69698d6-l7dmt_default_c01ecd79-daa6-4b6b-a600-f6c71f228167_0
88f4400bda21        kubeedge/pause:3.1   "/pause"                 6 minutes ago       Up 6 minutes                            k8s_POD_kubeedge-pi-counter-c69698d6-l7dmt_default_c01ecd79-daa6-4b6b-a600-f6c71f228167_0

$ docker logs -f 8ced25dc67e4        

5.5 原始碼分析

5.5.1 代碼結構

代碼主要包含3部分:

1、 web-contoller-app:云端應用,用以控制邊緣端

2 、counter-mapper:邊緣端應用,用以計數

3 、crds:資源檔案,用以部署應用

(1)kubeedge-web-controller-app.yaml:用以部署云端web應用

(2)kubeedge-pi-counter-app.yaml:用以部署邊緣端應用

(3)kubeedge-counter-model.yaml:Device Model,描述設備的元資訊,包括序列號、資產識別符號、Mac地址等描述設備的詳細資訊,也可以稱為設備的靜態屬性或設備屬性,

(4)kubeedge-counter-instance.yaml:Device,描述設備的動態資料,包括特定背景下的設備專有實時資料,例如燈的開、關狀態,也可以稱為設備的孿生屬性,設備孿生同時記錄設備的Actual State(真實狀態)和Expected State(期望狀態),這種方式也使設備在離線狀況下再次上線時,設備的狀態也能得到同步,

status:
  twins:
    - propertyName: status
      desired:  # 期望狀態
        metadata:
          type: string
        value: 'OFF'
      reported: # 真實狀態
        metadata:
          type: string
        value: '0'

5.5.2 代碼說明

5.5.2.1 云端應用:web-controller-app

1、部署檔案:kubeedge-web-controller-app.yaml

2、web開發采用Beego框架

主要頁面為views\content.html,主要JS為static\js\track.js,頁面控制類為controller\trackController.go,

3、應用提供3個功能:開、關邊緣端的計數功能,以及獲取當前計數,

4、通過呼叫k8s API,逐層往下呼叫(遠端、邊緣端、MQTT), 最終實作與邊緣端互動的目的,

5.5.2.2 邊緣端應用:counter-mapper

1、主程式入口為main.go的main方法

2、通過訂閱訊息$hw/events/device/counter/twin/update獲取來自云端的指令

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

標籤:其他

上一篇:記一次PLC和脈沖型伺服電機的接線方法_20210915

下一篇:DDD領域驅動開發

標籤雲
其他(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)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more