主頁 >  其他 > 全鏈路追蹤 skywalking 和 pinpoint

全鏈路追蹤 skywalking 和 pinpoint

2021-11-03 07:54:25 其他

背景介紹

隨著業務越來越復雜,企業應用也進入了分布式服務化的階段,隨著模塊的不斷增多,一次請求可能會涉及到十幾個甚至幾十個服務的協同處理,那么如何準確快速的定位到線上故障和性能瓶頸,便成為我們不得不面對的棘手問題,傳統的日志監控等方式無法很好達到跟蹤呼叫,排查問題等需求,
目前有很多優秀的分布式鏈路跟蹤系統架構可有效針對以上問題,如skywalking、pinpoint、cat及zipkin等,此文章主要針對 skywalking 和 pinpoint 做技術選型對比,并介紹 skywalking 的部署及簡單使用,

技術對比

對比內容pinpointskywalking
依賴Java 6,7,8
maven3+
Hbase0.94+
Java 6,7,8
maven3.0+
nodejs
zookeeper
elasticsearch
實作方式java探針,位元組碼增強java探針,位元組碼增強
顆粒度方法級方法級
編程語言Java,PHPJava,C#,PHP,Node.js
頁面UI*********
存盤選擇HbaseElasticsearch,H2,mysql
通信方式ThriftGRPC
MQ監控不支持RocketMq,Kafka
全域呼叫統計支持支持
Trace查詢不支持支持
報警支持支持
JVM監控支持支持
性能損耗
優點完全無侵入, 僅需修改啟動方式,界面完善,功能細致,完全無侵入,界面完善,支持應用拓撲圖及單個呼叫鏈查詢,
功能比較完善
缺點不支持查詢單個呼叫鏈, 對外表現的是整個應用的呼叫生態,
二次開發難度較高
3.2版本之前BUG較多 ,網上反映兼容性較差 . 3.2新版本的反映情況較少,
依賴較多
檔案檔案完善檔案完善
開發者Naver吳晟(華為開發者) ,目前已經加入Apache范訓器
使用公司Naver華為,alibaba cloud,天源迪科,當當網,京東金融

skywalking搭建

1. elasticsearch搭建(資料源,elasticsearch和mysql選一種即可)

  • 在Liunx環境下載
wget https://mirrors.huaweicloud.com/elasticsearch/7.10.1/elasticsearch-7.10.1-linux-x86_64.tar.gz 
  • 解壓檔案
tar -zxvf elasticsearch-7.10.1-linux-x86_64.tar.gz 
  • 賦予檔案夾及子檔案可執行權限
chmod -R +x elasticsearch-7.10.1
  • 創建elasticsearch啟動用戶(elasticsearch必須使用非ROOT用戶啟動)
adduser es
  • 更改檔案夾(elasticsearch-7.10.1)的所屬用戶
chown -R es elasticsearch-7.10.1
  • 賦予用戶(es)該檔案夾(elasticsearch-7.10.1)的執行權限
chmod -R +x es elasticsearch-7.10.1
  • 切換到config目錄檔案
cd elasticsearch-7.10.1/config/
  • 編輯 elasticsearch.yml
cluster.name: elasticsearch
node.name: node-1
  • 切換到bin目錄檔案
cd elasticsearch-7.10.1/bin/
  • 切換用戶(es),使用用戶(es)后臺啟動elasticsearch
su es
./elasticsearch -d

切換用戶

  • 訪問鏈接,查看啟動效果
curl http://localhost:9200

2. mysql搭建

  • 在Liunx環境下載
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
  • 解壓檔案
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
  • 修改目錄
mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql-5.7.36
  • 賦予檔案夾及子檔案可執行權限
chmod -R +x mysql-5.7.36
  • 添加系統mysql組和mysql用戶
groupadd mysql
useradd -r -g mysql mysql
  • 創建data 和 tmp目錄并賦權
cd mysql-5.7.36/
mkdir data tmp
chmod -R +x data tmp
  • 配置mysql服務
cp support-files/mysql.server /etc/init.d/mysql
  • 修改mysql服務
vi /etc/init.d/mysql

添加basedir 和 datadir

  • 修改組態檔my.cnf
vi /etc/my.cnf

拷貝內容如下,按需調整引數

[mysqld]
#skip-name-resolve
#skip-external-locking
skip-external-locking       
#shared-memory

# 設定3306埠
port=3306
# 設定mysql的安裝目錄
basedir=/usr/local/dev/mysql/mysql-5.7.36
# 設定mysql資料庫的資料的存放目錄
datadir=/usr/local/dev/mysql/mysql-5.7.36/data
#指定臨時檔案目錄
tmpdir=/usr/local/dev/mysql/mysql-5.7.36/tmp
# 允許最大連接數
max_connections=200
# 允許連接失敗的次數,這是為了防止有人從該主機試圖攻擊資料庫系統
max_connect_errors=10
# 服務端使用的字符集默認為UTF8
character-set-server=utf8
# 創建新表時將使用的默認存盤引擎
default-storage-engine=INNODB
# 默認使用“mysql_native_password”插件認證
default_authentication_plugin=mysql_native_password

#跳過密碼驗證
skip-grant-tables

user=mysql
  • 初始化mysql服務
--initialize--user=mysql --basedir=/usr/local/dev/mysql/mysql-5.7.36 --datadir=/usr/local/dev/mysql/mysql-5.7.36/data
  • 啟動服務
service mysql start
  • 修改mysql密碼
mysql -u root -p
mysql> use mysql
mysql> update user set Update_priv='Y' where user='root';  #這時候我們需要給root以更新的權限
mysql> update user set Grant_priv ='Y' where user ='root';   #然后是設定權限的權限
mysql> flush privileges;   #重繪權限
mysql> grant all privileges on *.* to root@'localhost' identified by "123" with grant option;   #123是密碼
mysql> flush privileges;
  • 修改組態檔關閉跳過密碼驗證
vi /etc/my.cnf
#跳過密碼驗證
#skip-grant-tables
  • 重啟mysql,創建資料庫
service mysql restart  #重啟服務
mysql -u root -p      #連接mysql
Enter password:
mysql> create database swtest;  #skywalking需要連接的庫名

3. skywalking 部署

  • 在Liunx環境下載
wget https://archive.apache.org/dist/skywalking/8.2.0/apache-skywalking-apm-es7-8.2.0.tar.gz
  • 解壓檔案
tar -zxvf apache-skywalking-apm-es7-8.1.0.tar.gz
  • 賦予檔案夾及子檔案可執行權限
chmod -R +x apache-skywalking-apm-bin-es7
  • 更改檔案所屬用戶組為root 若是默認為root則略過此步驟
chown -R root apache-skywalking-apm-bin-es7
chgrp root apache-skywalking-apm-bin-es7
  • 切換config目錄檔案
cd apache-skywalking-apm-bin-es7/config
  • 編輯 application.yml 檔案
#以elasticsearch7做存盤
storage:
  selector: ${SW_STORAGE:elasticsearch7}

  elasticsearch7:
    nameSpace: ${SW_NAMESPACE:"elasticsearch"}  #同elasticsearch的cluster.name一致
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200} #elasticsearch服務器ip:post

#以mysql做存盤
storage:
  selector: ${SW_STORAGE:mysql}
 
  mysql:
  properties:
      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://192.168.27.129:3306/swtest?useSSL=false"}
      dataSource.user: ${SW_DATA_SOURCE_USER:root}
      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:123}
      dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
      dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
      dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
      dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
    metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
    maxSizeOfArrayColumn: ${SW_STORAGE_MAX_SIZE_OF_ARRAY_COLUMN:20}
    numOfSearchableValuesPerTag: ${SW_STORAGE_NUM_OF_SEARCHABLE_VALUES_PER_TAG:2}

若是以mysql做存盤需要下載mysql驅動包(5.1.48)到 /usr/local/dev/skywalking/apache-skywalking-apm-bin-es7/oap-libs/ 目錄下

  • 編輯 webapp.yml 檔案
vi apache-skywalking-apm-bin-es7/webapp/webapp.yml
server:
  port: 8080   #可修改訪問埠(避免埠沖突)
  • 啟動skywalking
    .oapServiceNoInit.sh:單獨啟動后臺
    .webappService.sh:單獨啟動前臺
    .startup.sh:前后一起啟動
./apache-skywalking-apm-bin-es7/bin/startup.sh
  • 查看skywalking監控頁面 鏈接為配置的(skywalking部署服務器的映射ip)ip:post 默認:127.0.0.1:8080
    skywalking監控頁面

4. 探針配置(Agent)

多個監控應用分別將skywalking目錄下agent復制至被監聽同級目錄,并配置修改專案名字、日志列印級別、skywalking的服務地址等配置

agent/config/agent.config配置示例

# 命名空間,用于隔離跨行程傳播的header,如果進行了配置,header將為HeaderName:Namespa
agent.namespace=${SW_AGENT_NAMESPACE:default-namespace}

# 展示界面中現實服務名稱
agent.service_name=${SW_AGENT_NAME:emr-server}

# 鑒權是否開啟取決于后端的配置,可查看application.yml的詳細描述,對于大多數的場景,需要后端對鑒權進行擴展,目前僅實作了基本的鑒權功能,
# agent.authentication = ${SW_AGENT_AUTHENTICATION:xxxx}
 
# 單個線段中的最大跨距量,
# 通過這個配置項,SkyWalking可以估計應用程式記憶體開銷,
# agent.span_limit_per_segment=${SW_AGENT_SPAN_LIMIT:150}
 
# 如果為true,則SkyWalking代理將在“/debugging”檔案夾中保存所有檢測到的類檔案,
# SkyWalking可能會要求這些檔案,以解決兼容問題,
# agent.is_open_debugging_class = ${SW_AGENT_OPEN_DEBUG:true}
 
# 如果為true,SkyWalking代理將把所有檢測到的類檔案快取到記憶體或磁盤檔案中(由類快取模式決定),
# 允許其他javaagent增強那些由SkyWalking agent增強的類,
# agent.is_cache_enhanced_class = ${SW_AGENT_CACHE_CLASS:false}
 
# 插入指令的類快取模式:記憶體或檔案
# 記憶體:將類位元組快取到記憶體中,如果插入指令的類太多或太大,則可能會占用更多記憶體
# 檔案:在“/class cache”檔案夾中快取類位元組,當應用程式退出時自動清理快取的類檔案
# agent.class_cache_mode = ${SW_AGENT_CLASS_CACHE_MODE:MEMORY}
 
# 操作名稱最大長度
# 注意,在目前的實踐中,我們不建議長度超過190,
# agent.operation_name_threshold=${SW_AGENT_OPERATION_NAME_THRESHOLD:150}
 
# The agent use gRPC plain text in default.
# If true, SkyWalking agent uses TLS even no CA file detected.
# agent.force_tls=${SW_AGENT_FORCE_TLS:false}
 
# 如果為true,則當用戶創建新的組態檔任務時,skywalking代理將啟用組態檔,否則禁用組態檔,
# profile.active=${SW_AGENT_PROFILE_ACTIVE:true}
 
# 并行監視器段計數
# profile.max_parallel=${SW_AGENT_PROFILE_MAX_PARALLEL:5}
 
# 最大監視段時間(分鐘),如果當前段監視時間超出限制,則停止它,
# profile.duration=${SW_AGENT_PROFILE_DURATION:10}
 
# 最大轉儲執行緒堆疊深度
# profile.dump_max_stack_depth=${SW_AGENT_PROFILE_DUMP_MAX_STACK_DEPTH:500}
 
# 快照傳輸到后端緩沖區的大小
# profile.snapshot_transport_buffer_size=${SW_AGENT_PROFILE_SNAPSHOT_TRANSPORT_BUFFER_SIZE:0}
 
# skywalking后端服務地址,
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.27.129:11800}

# 日志檔案名
logging.file_name=${SW_LOGGING_FILE_NAME:skywalking-api-emrServer.log}

# 日志記錄級別
logging.level=${SW_LOGGING_LEVEL:INFO}

# 日志檔案存盤目錄
# logging.dir=${SW_LOGGING_DIR:""}

# 日志檔案最大值, default: 300 * 1024 * 1024 = 314572800
# logging.max_file_size=${SW_LOGGING_MAX_FILE_SIZE:314572800}

# 最大歷史記錄日志檔案,當發生滾動時,如果日志檔案超過這個數字,
# 然后洗掉最舊的檔案,默認情況下,負數或零表示禁用,
# 如果不限制個數可能到只日志檔案過大,磁盤爆滿
# logging.max_history_files=${SW_LOGGING_MAX_HISTORY_FILES:-1}

# 忽略例外,有些例外屬于業務需要,不用在sw中標示出來
# statuscheck.ignored_exceptions=${SW_STATUSCHECK_IGNORED_EXCEPTIONS:}
 
# 例外鏈路的跟蹤深度,最好不要高于10,對性能有影響
# statuscheck.max_recursive_depth=${SW_STATUSCHECK_MAX_RECURSIVE_DEPTH:1}

# 增加agent下特定檔案夾下的支持插件
plugin.mount=${SW_MOUNT_FOLDERS:plugins,activations,bootstrap-plugins}

# 不加載某些支持插件,名稱參考Plugin-list.md
plugin.exclude_plugins=${SW_EXCLUDE_PLUGINS:dubbo,motan}

# 忽略指定后綴的請求收集
agent.ignore_suffix=${SW_AGENT_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg}

# 每3秒的采樣率,負數代表100%
agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1}

# 是否獲取mysql操作sql的引數
# plugin.mysql.trace_sql_parameters=${SW_MYSQL_TRACE_SQL_PARAMETERS:false}

# Kafka producer configuration
# plugin.kafka.bootstrap_servers=${SW_KAFKA_BOOTSTRAP_SERVERS:localhost:9092}

# 跟蹤Spring中的bean,需要耗費更多的資源
plugin.springannotation.classname_match_regex=${SW_SPRINGANNOTATION_CLASSNAME_MATCH_REGEX:}
  1. 基于Tomcat的服務(SpringMvc)

在tomcat的bin目錄下的catalina.sh首行增加如下命令列,例如:

--Tomcat7 添加如下命令
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/project/project/agent/skywalking-agent.jar"
export CATALINA_OPTS

--Tomcat8添加如下命令
set JAVA_OPT = -javaagent:usr/local/project/project/agent/skywalking-agent.jar
  1. 基于JAR file的服務(SpringBoot)

在啟動應用程式命令列中添加引數,并確保在-jar引數之前添加它,例如:

java -javaagent:/usr/local/project/emr_server/agent/skywalking-agent.jar -Dskywalking.agent.service_name=emr-server  -Dskywalking.collector.backend_service=192.168.27.129:11800  -jar emr_server/hiop.emr.server-1.1.0.jar
  1. NodeJs接入skywalking

安裝 nodejs module

npm install skyapm-nodejs@latest --save

app.js內添加初始化代碼

require('skyapm-nodejs').start({
    // 應用名稱
    serviceName: 'hiop-web',
    // Skywalking后端暴露的agent_gRPC/grpc service地址
    directServers: '192.168.27.129:11800'
});

如果對本篇文章有什么意見或建議,歡迎在評論區交流,

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

標籤:其他

上一篇:基于Java開發Streaming篇

下一篇:計算機網路的概念、功能、組成和分類

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