中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站開發(fā)崗位實際情況岳陽seo

網(wǎng)站開發(fā)崗位實際情況,岳陽seo,做日租都有哪些網(wǎng)站,網(wǎng)站首頁框架圖目錄 一、前言 二、SkyWalking介紹 2.1 SkyWalking是什么 2.2 SkyWalking核心功能 2.3 SkyWalking整體架構 2.4 SkyWalking主要工作流程 三、為什么選擇SkyWalking 3.1 業(yè)務背景 3.2 常見監(jiān)控工具對比 3.3 為什么選擇SkyWalking 3.3.1 代碼侵入性極低 3.3.2 功能豐…

目錄

一、前言

二、SkyWalking介紹

2.1 SkyWalking是什么

2.2 SkyWalking核心功能

2.3 SkyWalking整體架構

2.4 SkyWalking主要工作流程

三、為什么選擇SkyWalking

3.1 業(yè)務背景

3.2 常見監(jiān)控工具對比

3.3 為什么選擇SkyWalking

3.3.1 代碼侵入性極低

3.3.2 功能豐富

3.3.3 產(chǎn)品完善度高

四、SkyWalking環(huán)境搭建

4.1 下載安裝包

4.2 部署服務

4.2.1 部署oap(apm)服務

4.2.2 web-ui界面訪問

4.3 數(shù)據(jù)持久化配置

4.3.1 修改配置文件

4.3.2 上傳mysql驅動包

4.3.3 重啟服務

五、springboot接入Skywalking

5.1 準備一個測試使用的接口

5.2 獲得Java Agent包

5.3 參數(shù)化啟動項目

5.4 接口訪問測試

六、dubbo接入Skywalking

6.1 搭建三個微服務模塊

6.2 api模塊

6.3?dubbo-provider模塊

6.3.1 添加核心依賴

6.3.2?添加核心配置文件

6.3.3 添加dubbo接口實現(xiàn)類

6.3.4?服務啟動類

6.4?dubbo-consumer模塊

6.4.1 添加核心依賴

6.4.2?添加核心配置文件

6.4.3?添加接口類

6.5 功能測試

6.6?接入Skywalking

七、寫在文末


一、前言

隨著分布式應用大規(guī)模部署,應用可觀測性從理論到落地已經(jīng)在眾多大型互聯(lián)網(wǎng)應用中得到實踐,經(jīng)過多年沉淀,行業(yè)內也逐步形成了相應的一整套解決方案,比如針對日志可視化ELK解決方案,分布式鏈路追蹤APM解決方案SkyWalking,可視化監(jiān)控工具Prometheus等等。今天將詳細介紹下APM解決方案中一款重要工具SkyWalking的使用。

二、SkyWalking介紹

2.1 SkyWalking是什么

?SkyWalking是一個開源的可觀測平臺,用于從服務和云原生等基礎設施收集、分析、聚合以及可視化數(shù)據(jù)。官網(wǎng)地址:Apache SkyWalking

SkyWalking 提供了一種簡便的方式來清晰地觀測分布式系統(tǒng)。相比較zipkin而言,skywalking利用agent字節(jié)碼增強技術實現(xiàn)代碼無侵入,通信方式采用GRPC,性能較好,實現(xiàn)方式是java探針,支持告警,支持JVM監(jiān)控,支持全局調用統(tǒng)計,UI界面更加強大等優(yōu)點。

2.2 SkyWalking核心功能

SkyWalking 有哪些功能呢?下面列舉了其主要的功能點:

  • 監(jiān)控手段豐富,可以通過語言探針和 service mesh 獲得監(jiān)控是數(shù)據(jù);

  • 多種類型的語言自動探針,包括 Java,.NET Core 和 Node.JS;

  • 輕量高效,無需大數(shù)據(jù)平臺,和大量的服務器資源;

  • 模塊化,UI、存儲、集群管理都有多種機制可選;

  • 支持各類告警機制;

  • 提供優(yōu)秀的可視化解決方案,支持各類監(jiān)控數(shù)據(jù)的可視化;

2.3 SkyWalking整體架構

下面是SkyWalking的整體架構圖

從官網(wǎng)提供的Skywalking架構圖來看,分成幾個部分,簡單來說,可以分成下面幾個部分

OAP后端

OAP負責接收 Agent 發(fā)送的 Tracing 和Metric的數(shù)據(jù)信息,然后進行分析Analysis Core,存儲到外部存儲器 Storage ,最終提供查詢Query 功能

WEB-UI

UI負責提供web控制臺,查看鏈路,查看各種指標,性能等

Agent探針

Agent負責收集日志數(shù)據(jù):Agent以探針的方式,進行請求鏈路的數(shù)據(jù)采集,并向OAP服務器上報

Storage存儲

數(shù)據(jù)的存儲層,支持ElasticSearch、Mysql、H2多種方式

2.4 SkyWalking主要工作流程

官網(wǎng)關于SkyWalking的詳細工作流程圖如下

如果在實際應用中,簡化上面的流程之后其核心工作流程分為下面幾步:

  • 數(shù)據(jù)采集 ,服務通過探針的方式接入數(shù)據(jù)采集的功能;
  • 上報服務器 ,請求鏈路的相關處理行為會上報到OAP服務中;
  • 數(shù)據(jù)存儲 ,進行數(shù)據(jù)的聚合管理和分析,并存儲在持久層;
  • 數(shù)據(jù)展現(xiàn) ,通過UI界面進行可視化呈現(xiàn)收集的數(shù)據(jù);

三、為什么選擇SkyWalking

3.1 業(yè)務背景

隨著業(yè)務規(guī)模的不斷增長,應用的微服務數(shù)量也在隨著增長,當微服務的數(shù)量越來越大時,一旦系統(tǒng)中出現(xiàn)某個問題,如果不借助工具或其他監(jiān)測手段,解決問題是耗時耗力的,尤其是N多個微服務之間的調用鏈路很長,調用關系非常復雜的時候,對于排查、定位分析和解決問題將變得異常困難。因此急需一種可視化工具,可以追蹤分布式調用的完整鏈路的信息,并提供可視化分析界面。

3.2 常見監(jiān)控工具對比

市面上提供的可用于微服務應用監(jiān)控工具有很多,下面列舉一些常用的解決方案:

  • Zipkin:Twitter公司開源的一個分布式追蹤工具,被Spring Cloud Sleuth集成,使用廣泛而穩(wěn)定,需要在應用程序中埋點,對代碼侵入性強;

  • Cat:美團大眾點評開源的一款分布式鏈路追蹤工具。需要在應用程序中埋點,對代碼侵入性強;

  • Pinpoint:一個韓國團隊開源的產(chǎn)品,探針收集的數(shù)據(jù)粒度非常細,但性能損耗大,因其出現(xiàn)的時間較長,完成度很高;

  • SkyWalking:中國人吳晟(華為)開源的一款分布式追蹤,分析,告警的工具,現(xiàn)在是Apache旗下開源項目,對云原生支持,目前增長勢頭強勁,社區(qū)活躍,中文文檔沒有語言障礙;

  • OpenTelemetry ,是 CNCF 的一個可觀測性項目,旨在提供可觀測性領域的標準化方案,解決觀測數(shù)據(jù)的數(shù)據(jù)模型、采集、處理、導出等的標準化問題,提供與三方 vendor 無關的服務;

  • Grafana,是一個監(jiān)控儀表系統(tǒng),由Grafana Labs公司開源的的一個系統(tǒng)監(jiān)測 (System Monitoring) 工具。幫助用戶簡化監(jiān)控的復雜度,用戶只需要提供需要監(jiān)控的數(shù)據(jù),它就可以生成各種可視化儀表。同時它還支持報警功能,可以在系統(tǒng)出現(xiàn)問題時通知用戶;

  • Prometheus,主要用于對基礎設施的監(jiān)控,包括服務器(CPU、MEM等)、數(shù)據(jù)庫(MYSQL、PostgreSQL等)、Web服務等,幾乎所有東西都可以通過Prometheus進行監(jiān)控。而它的數(shù)據(jù),則是通過配置,建立與數(shù)據(jù)源的聯(lián)系來獲取的;

3.3 為什么選擇SkyWalking

相比于其他框架,SkyWalking有自己的優(yōu)勢,主要體現(xiàn)在下面幾點:

3.3.1 代碼侵入性極低

Skywalking采用字節(jié)碼增強的技術實現(xiàn),微服務以java-agent的方式集成,業(yè)務代碼本身無侵入,像Zipkin代碼侵入性就比較高。

3.3.2 功能豐富

1)鏈路追蹤、拓撲分析能力強,采用先進的流式拓撲分析設計;

2)Skywalking功能比較豐富,插件豐富,報表統(tǒng)計,UI界面更加人性化,更符合國人的使用習慣;

3.3.3 產(chǎn)品完善度高

Java生態(tài)、功能豐富,國人開發(fā)、社區(qū)活躍,迭代迅速。

四、SkyWalking環(huán)境搭建

官網(wǎng)安裝包下載地址:Downloads | Apache SkyWalking

4.1 下載安裝包

為了后面的演示,即將springboot服務接入到Skywalking,需要部署OAP服務,以及Java Agent,對應的安裝包如下:

下載oap安裝包

oap即Skywalking服務端,如下進到官網(wǎng)后,選擇下面這里的包,選擇合適的版本進行下載,這里我選擇9.3.0的版本;

下載Java Agent包

即服務端agent,用于收集來自客戶端的端點信息和指標信息,然后上報到oap服務端

4.2 部署服務

4.2.1 部署oap(apm)服務

oap的服務運行起來很簡單,最直接的方式就是解壓后進入到bin目錄直接使用腳本啟動即可

tar -zxvf apache-skywalking-apm-9.3.0.tar.gzcd apache-skywalking-apm-bincd bin

啟動腳本說明:

1、oapService.sh,oap的服務啟動腳本;

2、webappService.sh,web-ui服務啟動腳本;

3、startup.sh,同時包含了啟動上面兩個服務的腳本

實際使用時,為了方便直接使用 startup.sh啟動即可

啟動成功后會有兩個服務,如上所示:

  • skywalking-oap-server:暴露11800和12800兩個端口,分別為收集監(jiān)控數(shù)據(jù)的端口11800和接受前端請求的端口12800,修改端口可以修改config/applicaiton.yml;
  • skywalking-web-ui:服務會占用 8080 端口, 修改端口可以修改webapp/webapp.yml;

4.2.2 web-ui界面訪問

啟動成功后,可以直接訪問web-ui界面,訪問地址:IP:8080,如果需要修改ui界面的訪問端口,直接修改web-app目錄下的配置文件中的端口即可;

訪問的界面如下

4.3 數(shù)據(jù)持久化配置

默認情況下如果不做任何配置,Skywalking運行過程中產(chǎn)生的數(shù)據(jù)將會存儲在H2,即內存數(shù)據(jù)庫,一旦服務宕機或被重啟,數(shù)據(jù)將丟失,Skywalking提供了多種持久化數(shù)據(jù)存儲的方式,可以選擇mysql,es等,下面使用mysql來存儲數(shù)據(jù)。

4.3.1 修改配置文件

找到config目錄下的application.yml配置文件,然后找到下面配置的地方,改為mysql

修改相關的mysql連接參數(shù),指向你自己的連接,注意提前創(chuàng)建一個數(shù)據(jù)庫

4.3.2 上傳mysql驅動包

將mysql的連接jar包上傳到oap-libs目錄下,下載鏈接:文件分享

4.3.3 重啟服務

不管是使用哪種數(shù)據(jù)持久化方式,一定要上傳對應的jar包之后再重啟服務,否則會報連接驅動找不到的問題

然后刷新頁面,就可以看到數(shù)據(jù)庫下生成了很多Skywalking相關的數(shù)據(jù)表

五、springboot接入Skywalking

在項目中,如何將springboot接入Skywalking,從而通過Skywalking來監(jiān)控服務呢?下面來看具體的操作步驟

5.1 準備一個測試使用的接口

@RestController
@RequestMapping("/user")
public class UserController {@GetMapping("/getById")public User find(@RequestParam String userId) {return new User(userId, "jerry");}}

5.2 獲得Java Agent包

通過上面下載的Agent的包解壓到本地目錄(如果是服務器同樣的操作)

5.3 參數(shù)化啟動項目

本地啟動項目時,添加如下啟動參數(shù)

-javaagent:E:\code-self\skywalking-agent\skywalking-agent.jar -DSW_AGENT_NAME=sky-boot -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=服務端IP:11800

在idea中配置上面的這段啟動參數(shù)

5.4 接口訪問測試

啟動成功后,瀏覽器訪問上面提供的測試接口

然后再在skywalking的web-ui界面上就能看到當前監(jiān)控到的服務信息了

繼續(xù)點進去,可以看到詳細的各種監(jiān)控指標信息

也可以點擊其他的監(jiān)控指標進行多維度查看

六、dubbo接入Skywalking

dubbo在微服務治理中也是經(jīng)常使用的,下面通過實例演示下如何利用Skywalking監(jiān)控dubbo服務

6.1 搭建三個微服務模塊

工程目錄結構如下

頂層pom依賴

<properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><dubbo.version>3.1.5</dubbo.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.6.14</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-bom</artifactId><version>${dubbo.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

6.2 api模塊

該模塊主要定義公共的實體類,服務接口

定義一個實體類

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {private String id;private String userName;}

定義一個服務接口

public interface UserService {User getByUserId(String userId);
}

發(fā)布api模塊jar包

通過maven命令,將api模塊的jar包發(fā)布到本地倉庫以供其他模塊依賴

6.3?dubbo-provider模塊

模塊結構如下

6.3.1 添加核心依賴

這里注冊中心使用zk

    <dependencies><dependency><groupId>com.congge</groupId><artifactId>api</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- dubbo --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper</artifactId><type>pom</type></dependency></dependencies>

6.3.2?添加核心配置文件

server:port: 8083dubbo:application:name: sky-dubbo-providerprotocol:name: dubboport: -1registry:address: zookeeper://IP地址:2181protocol: zookeeper

6.3.3 添加dubbo接口實現(xiàn)類

import com.congge.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;@Slf4j
@DubboService
public class UserServiceImpl implements UserService{@Overridepublic User getByUserId(String userId) {log.info("[ServiceProvider] 根據(jù) id 查詢用戶:{}", userId);return new User(userId, "jerry");}
}

6.3.4?服務啟動類

import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@EnableDubbo
@SpringBootApplication
public class ProviderApp {public static void main(String[] args) {SpringApplication.run(ProviderApp.class, args);}
}

6.4?dubbo-consumer模塊

模塊結構如下

6.4.1 添加核心依賴

    <dependencies><dependency><groupId>com.congge</groupId><artifactId>api</artifactId><version>${project.parent.version}</version></dependency><!-- dubbo --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper</artifactId><type>pom</type></dependency></dependencies>

6.4.2?添加核心配置文件

server:port: 8082dubbo:application:name: sky-dubbo-consumerprotocol:name: dubboport: -1registry:address: zookeeper://IP地址:2181protocol: zookeeper

6.4.3?添加接口類

為了方便測試,自定義一個接口,在接口中調用dubbo服務

@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {@DubboReferenceprivate UserService userService;//http://localhost:8082/user/getByUserId?userId=001@GetMapping("/getByUserId")private User getByUserId(@RequestParam String userId) {User user = userService.getByUserId(userId);log.info("調用 dubbo 服務成功,獲取用戶信息:{}", JSON.toJSONString(user));return user;}
}

6.5 功能測試

分別啟動provider和consumer兩個微服務模塊,然后調用一下上面的接口,確認看到下面的結果后說明服務可以正常調通(前提:確保連接的zk服務可正常使用

6.6?接入Skywalking

按照上述接入springboot的方式,idea啟動的時候修改下啟動配置參數(shù),provider和consumer兩個模塊啟動時分別添加如下參數(shù):

provider配置的啟動參數(shù)

-javaagent:E:\code-self\skywalking-agent\skywalking-agent.jar -DSW_AGENT_NAME=dubbo-provider -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=IP地址:11800

consumer配置的啟動參數(shù)

-javaagent:E:\code-self\skywalking-agent\skywalking-agent.jar -DSW_AGENT_NAME=dubbo-consumer -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=IP地址:11800

配置之后再次啟動兩個模塊的服務,再次訪問接口,仍然能夠得到期望的結果

此時再次到web-ui界面上看到在服務列表中出現(xiàn)了dubbo的兩個服務信息

如果切換到拓撲圖,也能夠清晰看到兩個服務的調用鏈路

七、寫在文末

本文詳細介紹了Skywalking從搭建到使用的詳細流程,事實上Skywalking的功能遠不止這些,它不僅能夠監(jiān)控微服務的調用,還能監(jiān)控像前端,PHP,nginx等眾多其他的中間件,甚至還能與其他的可視化展示工具進行對接,可以說功能非常完善,如果整合你的項目在技術選項中需要集成一款鏈路監(jiān)控,鏈路追蹤以及可視化監(jiān)控指標展示的工具,Skywalking也許是一個不錯的選擇。

http://www.risenshineclean.com/news/11113.html

相關文章:

  • 網(wǎng)站開發(fā)年終總結魔方優(yōu)化大師官網(wǎng)
  • 如何做網(wǎng)站實現(xiàn)收入穩(wěn)定免費seo關鍵詞優(yōu)化方案
  • 施工企業(yè)安全生產(chǎn)管理規(guī)范最新版seo站長網(wǎng)怎么下載
  • 做3d人物模型素材下載網(wǎng)站五種營銷工具
  • 順的網(wǎng)站建設咨詢免費國外ddos網(wǎng)站
  • 巴中哪里做網(wǎng)站網(wǎng)站推廣名詞解釋
  • 哪些網(wǎng)站可以做淘寶店招競價代運營
  • 金融軟件網(wǎng)站建設公司百度一下百度網(wǎng)頁官
  • 制作企業(yè)網(wǎng)站需要多少錢b2b平臺是什么意思啊
  • 國內好用的五款開源建站系統(tǒng)企業(yè)培訓體系搭建
  • 同一個服務器的網(wǎng)站做有鏈事件營銷
  • 重慶網(wǎng)站建設設計俄羅斯搜索引擎瀏覽器官網(wǎng)入口
  • 視頻網(wǎng)站做cpa搜索關鍵詞的工具
  • php網(wǎng)站用到的知識山東最新消息今天
  • 如何在工商局網(wǎng)站上做網(wǎng)登湖南專業(yè)關鍵詞優(yōu)化服務水平
  • 網(wǎng)站如何制作學校的做手機如何建網(wǎng)站
  • 杭州公司展廳設計公司網(wǎng)站seo優(yōu)化分析
  • 網(wǎng)站充值接口免費推廣軟件
  • 網(wǎng)站建設需要域名服務器網(wǎng)絡營銷手段有哪些方式
  • 網(wǎng)站手機app開發(fā)seo引擎搜索入口
  • 如何做盆栽蔬菜網(wǎng)站網(wǎng)站首頁快速收錄
  • 哪些網(wǎng)站適合花錢做推廣朝陽區(qū)seo技術
  • 巫山那家做網(wǎng)站厲害長沙哪里有網(wǎng)站推廣優(yōu)化
  • 互助盤網(wǎng)站開發(fā)杭州龍席網(wǎng)絡seo
  • wordpress 合法評論網(wǎng)站seo整站優(yōu)化
  • 網(wǎng)站建設平臺網(wǎng)站設計seo刷關鍵詞排名優(yōu)化
  • 慈溪高端網(wǎng)站設計百度貼吧怎么做推廣
  • 產(chǎn)品網(wǎng)站系統(tǒng)溫州最好的seo
  • 怎樣做網(wǎng)站的二維碼海豹直播nba
  • 完整的網(wǎng)站后臺權限編碼百度手機app