国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 正文
    • 一、章節(jié)目的
    • 二、基本環(huán)境
    • 三、監(jiān)控配置
    • 四、數(shù)據(jù)上報
    • 五、啟動服務
  • 推薦器件
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

面試官:“你就說,你的系統(tǒng)QPS、TPS、響應時間都是多少!”

2024/04/24
2944
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

作者:小傅哥,博客:https://bugstack.cn

這位同學,你比上一位面試者好多了,你的簡歷中做的幾個項目都不錯。既有業(yè)務項目,也有技術項目,看得出你對編程開發(fā)是有一定的經(jīng)驗積累的。那么我還想了解下,這些項目在運行中的一個數(shù)據(jù)效果是怎么樣的。比如;tps、qps、響應時間、數(shù)據(jù)庫負載等,都是什么情況,你用的什么監(jiān)控工具。另外你這里還些了微服務的架構,那么微服務間的鏈路調用是怎么監(jiān)控的。

咋樣,是不一下就慌了。張口就喊:“java 崩盤了!” 以前靠背題吹牛逼就能入職,現(xiàn)在得把吹的牛逼落地了。而越來越多的面試官也更喜歡用結果推過程,從過程中再考察細節(jié)。一上來就問八股文的越來越少了。

所以,做完項目,最好在配上對應的數(shù)據(jù),這樣才更有說服力?!?所以本文小傅哥會教會你,如何配置一套全鏈路監(jiān)控系統(tǒng),并完成測試獲取系統(tǒng)運行的數(shù)據(jù)。此外這是整套《@小傅哥 Java 簡明教程》其中的一節(jié),更多內容可以進入這里學習;https://bugstack.cn/md/road-map/road-map.html

一、章節(jié)目的

本章節(jié)通過 Docker 方式部署一套 skywalking 非入侵的全鏈路監(jiān)控系統(tǒng),并在對應的測試工程中通過 skywalking-agent 字節(jié)碼增強組件,采集系統(tǒng)運行時的各項信息到 skywalking-ui 監(jiān)控平臺觀察數(shù)據(jù)。

    官網(wǎng):https://skywalking.apache.org/ - 如果你想了解更多關于此類系統(tǒng)的設計和實現(xiàn),可以閱讀小傅哥的《字節(jié)碼編程》源碼:https://gitcode.net/KnowledgePlanet/road-map/skywalking - 這是小傅哥整理好的一套可運行的監(jiān)控和系統(tǒng),讀者可以下載后對照本文進行驗證使用。

二、基本環(huán)境

    Docker version 1.13.1Docker compose - 用于在云服務器環(huán)境中執(zhí)行的 docker-compose 文件Portainer Docker 容器管理面板

以上內容安裝,參考【Java簡明教程/發(fā)布部署】:https://bugstack.cn/md/road-map/road-map.html - 發(fā)布部署

三、監(jiān)控配置

skywalking 的安裝,需要 elasticsearch - 存放數(shù)據(jù)、skywalking-oap 接收數(shù)據(jù)、skywalking-ui 界面展示。以及還需要一個 skywalking-agent 用于配置到應用程序中,采集監(jiān)控數(shù)據(jù)。注意這些內容在官網(wǎng)中,都已提供,地址:https://skywalking.apache.org/downloads/

因為小傅哥這里提供了Docker的自動部署以及下載好了 skywalking-agent 所以你就不需要一個個去下載安裝了。接下來小傅哥會分別介紹在本地環(huán)境云服務器兩套環(huán)境安裝,這樣可以更加方便小伙伴做測試驗證。

在進行下面的步驟前,請先下載 skywalking 監(jiān)控工程;https://gitcode.net/KnowledgePlanet/road-map/skywalking

1. 本地環(huán)境

腳本:/road-map/skywalking/docs/dev-ops/skywalking - 你可以打開工程找到這個位置,查看最新腳本。

version:?'3.8'
services:
??elasticsearch:
????image:?elasticsearch:7.16.2
????container_name:?elasticsearch
????ports:
??????-?"9200:9200"
????healthcheck:
??????test:?[?"CMD-SHELL",?"curl?--silent?--fail?localhost:9200/_cluster/health?||?exit?1"?]
??????interval:?30s
??????timeout:?10s
??????retries:?3
??????start_period:?10s
????environment:
??????-?discovery.type=single-node
??????-?bootstrap.memory_lock=true
??????-?"ES_JAVA_OPTS=-Xms512m?-Xmx512m"
????ulimits:
??????memlock:
????????soft:?-1
????????hard:?-1
????volumes:
??????-?./data/es_data:/usr/share/elasticsearch/data

??oap:
????image:?apache/skywalking-oap-server:8.9.0
????container_name:?oap
????depends_on:
??????elasticsearch:
????????condition:?service_healthy
????links:
??????-?elasticsearch
????ports:
??????-?"11800:11800"
??????-?"12800:12800"
????healthcheck:
??????test:?[?"CMD-SHELL",?"/skywalking/bin/swctl?ch"?]
??????interval:?30s
??????timeout:?10s
??????retries:?3
??????start_period:?10s
????environment:
??????SW_STORAGE:?elasticsearch
??????SW_STORAGE_ES_CLUSTER_NODES:?elasticsearch:9200
??????SW_HEALTH_CHECKER:?default
??????SW_TELEMETRY:?prometheus
??????JAVA_OPTS:?"-Xms1024m?-Xmx1024m"

??skywalking-ui:
????image:?apache/skywalking-ui:8.9.0
????container_name:?skywalking-ui
????depends_on:
??????oap:
????????condition:?service_healthy
????links:
??????-?oap
????ports:
??????-?"9090:8080"
????environment:
??????SW_OAP_ADDRESS:?http://oap:12800

    • 在 Docker 安裝并正確?啟動后,你就可以點擊這個按鈕了。它會幫你自動運行安裝出整套的 skywalking 監(jiān)控系統(tǒng)。非常方便。如果你點擊紅圈下面的單個按鈕,那么代表的是只安裝當前一個應用。你可以通過命令執(zhí)行

skywalking-docker-compose.yml

    • 的安裝:

/usr/local/bin/docker-compose -f /docs/dev-ops/skywalking/skywalking-docker-compose.yml up -d

    - 在云服務器端也是使用這個命令安裝。

訪問驗證:http://localhost:9090/ - 我設置的端口是9090,如果你是其他的則需要修改。

2. 云服務器

    準備一臺2核4G的云服務器,整個服務啟動后會占用2-3G左右下載 ssh 工具,用于連接云服務。這里小傅哥推薦使用 Termius 非常好用!docker-compose 安裝,參考:https://bugstack.cn/md/road-map/road-map.html - 發(fā)布部署,Docker#7
2.1 文件上傳

通過 ssh 的 sftp 工具,把 skywalking/docs 全部上傳到云服務器。

2.2 執(zhí)行腳本

[root@dev-ops?~]#?cd?/docs/
[root@dev-ops?docs]#?ls
dev-ops??skywalking-agent??sql
[root@dev-ops?docs]#?cd?dev-ops/
[root@dev-ops?dev-ops]#?ls
environment??skywalking
[root@dev-ops?dev-ops]#?cd?skywalking/
[root@dev-ops?skywalking]#?ls
skywalking-docker-compose.yml
[root@dev-ops?skywalking]#?/usr/local/bin/docker-compose?-f?/docs/dev-ops/skywalking/skywalking-docker-compose.yml?up?-d
[+]?Building?0.0s?(0/0)??????????????????????????????????????????????????????????????????????????
[+]?Running?3/3
???Container?elasticsearch??Healthy?????????????????????????????????????????????????????????0.5s?
???Container?oap????????????Healthy?????????????????????????????????????????????????????????1.0s?
???Container?skywalking-ui??Running?????????????????????????????????????????????????????????0.0s

安裝完成記得開放端口;

    9090 端口;skywalking-ui 界面端口11800 端口;監(jiān)控數(shù)據(jù)上報端口

安裝完成后就可以訪問監(jiān)控界面了;http://180.76.138.**:9090/ ?- 替換為你的IP地址

四、數(shù)據(jù)上報

監(jiān)控數(shù)據(jù)的上報使用的是 Javaagent 技術,在程序編譯時候通過字節(jié)碼增強技術,在需要監(jiān)控的位置自動加上額外的監(jiān)控代碼,來采集系統(tǒng)的運行數(shù)據(jù)。所以我們這里可以把 Javaagent 配置到程序啟動上,也可以配置到 Docker 鏡像打包上。

1. 程序啟動 - 加入探針

配置到 IDEA 程序啟動中,VM Options 參數(shù):-javaagent:/Users/fuzhengwei/1024/KnowledgePlanet/road-map/skywalking/docs/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=skywalking-app-dev -Dskywalking.collector.backend_service=127.0.0.1:11800

    • 注意修改;

地址、應用名、IP

    【如果是云服務,就配置云服務的IP地址】

2. 鏡像打包 - 加入探針

當程序需要運行在云服務的 Docker 容器了,就不能這樣配置了,需要把配置打包到鏡像里,更加方便執(zhí)行。

#?基礎鏡像
FROM?openjdk:8-jre-slim
#?作者
MAINTAINER?xiaofuge
#?配置
ENV?PARAMS=""
#?時區(qū)
ENV?TZ=PRC
RUN?ln?-snf?/usr/share/zoneinfo/$TZ?/etc/localtime?&&?echo?$TZ?>?/etc/timezone
#?添加應用
ADD?/target/skywalking-app.jar?/skywalking-app.jar
##?在鏡像運行為容器后執(zhí)行的命令
ENTRYPOINT?["java",?"-Xmx512m",?"-javaagent:/docs/skywalking-agent/skywalking-agent.jar",?"-Dskywalking.agent.service_name=skywalking-app",?"-Dskywalking.collector.backend_service=180.76.138.41:11800",?"-jar",?"/skywalking-app.jar"]
    • 注意;

/docs/skywalking-agent/skywalking-agent.jar

    這個是通過 SFTP 工具上傳到云服務器端的。但不在 Docker 容器里,等部署程序的時候還需要做一次文件映射。

五、啟動服務

如果你希望在把應用程序部署到云服務端,一種是通過 IDEA 連接 Docker 服務,另外一種是把應用程序的鏡像發(fā)布到Docker Hub。這里我們通過 IDEA 連接 Docker 服務。參考:https://bugstack.cn/md/road-map/road-map.html - 開通 2375 端口,用完記得關閉。

腳本:skywalking/src/bin/main/start.sh

CONTAINER_NAME=skywalking-app
IMAGE_NAME=fuzhengwei/skywalking-app:1.0
PORT=9091

echo?"容器部署開始?${CONTAINER_NAME}"

#?停止容器
docker?stop?${CONTAINER_NAME}

#?刪除容器
docker?rm?${CONTAINER_NAME}

#?啟動容器 skywalking-agent 下載:https://archive.apache.org/dist/skywalking/java-agent/8.9.0/apache-skywalking-java-agent-8.9.0.tgz
docker?run?--name?${CONTAINER_NAME}?
-p?${PORT}:${PORT}?
-v?/docs/skywalking-agent/:/docs/skywalking-agent/?
-d?${IMAGE_NAME}

#docker?run?--name?skywalking-app?
#-p?9091:9091?
#-v?/docs/skywalking-agent/:/docs/skywalking-agent/?
#-d?fuzhengwei/skywalking-app:1.2

echo?"容器部署成功?${CONTAINER_NAME}"

docker?logs?-f?${CONTAINER_NAME}
    • 你可以在云服務執(zhí)行 start.sh 腳本,或者直接復制 docker run 命令,去執(zhí)行啟動。注意;

-v /docs/skywalking-agent/:/docs/skywalking-agent/

    是你的映射地址,只有這樣才能拿到 skywalking-agent另外記得按照 MySQL【environment-docker-compose.yml】 到云服務以及執(zhí)行 road-map.sql 文件。

如果你需要;簡明學習路線、實戰(zhàn)項目鍛煉、學習幫助輔導、幫你簡歷優(yōu)化 - 應對招聘,那么可以掃碼加入小傅哥的知識星球【碼農會鎖】- 我會帶著走捷徑直擊目標,完成實戰(zhàn)項目,提高編程思維,鍛煉編碼能力。

- END -

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
LTC6908CS6-2#TRPBF 1 Linear Technology LTC6908 - Dual Output Oscillator with Spread Spectrum Modulation; Package: SOT; Pins: 6; Temperature Range: 0°C to 70°C
$43.81 查看
ECS-.327-12.5-34B-C-TR 1 ECS International Inc Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, SMD, 2 PIN

ECAD模型

下載ECAD模型
$0.74 查看
ATS16A 1 CTS Corporation Parallel - Fundamental Quartz Crystal, 16MHz Nom, GREEN, RESISTANCE WELD, METAL PACKAGE-2
$0.35 查看

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

作者小傅哥多年從事一線互聯(lián)網(wǎng)Java開發(fā),從19年開始編寫工作和學習歷程的技術匯總,旨在為大家提供一個較清晰詳細的核心技能學習文檔。如果本文能為您提供幫助,請給予支持(關注、點贊、分享)!

托里县| 高邑县| 绥芬河市| 抚顺县| 鄂伦春自治旗| 天长市| 浦城县| 阿荣旗| 哈巴河县| 隆安县| 白城市| 元朗区| 合川市| 南阳市| 始兴县| 乌恰县| 鞍山市| 会东县| 利津县| 灵丘县| 万年县| 巨鹿县| 肇庆市| 土默特左旗| 信宜市| 江陵县| 姚安县| 连城县| 建德市| 宣威市| 许昌县| 京山县| 霍邱县| 荔浦县| 延庆县| 太和县| 陵水| 渭南市| 那坡县| 龙山县| 石楼县|