最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Pinpoint對(duì)SpringCloud微服務(wù)項(xiàng)目實(shí)現(xiàn)全鏈路監(jiān)控的問(wèn)題

 更新時(shí)間:2022年02月17日 14:10:04   作者:Jiangxl~  
這篇文章主要介紹了基于Pinpoint對(duì)SpringCloud微服務(wù)項(xiàng)目實(shí)現(xiàn)全鏈路監(jiān)控的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

基于Pinpoint對(duì)SpringCloud微服務(wù)項(xiàng)目實(shí)現(xiàn)全鏈路監(jiān)控

1.全鏈路監(jiān)控的概念

隨著微服務(wù)架構(gòu)的流行,服務(wù)按照不同的緯度進(jìn)行拆分,一次請(qǐng)求往往需要設(shè)計(jì)到多個(gè)微服務(wù)程序,這些服務(wù)可能使用不同的編程語(yǔ)言開(kāi)發(fā),不同的團(tuán)隊(duì)開(kāi)發(fā),可能部署很多歌副本,因此就需要一些可以幫助理解系統(tǒng)行為,用于分析性能問(wèn)題的工具,以便發(fā)生故障的時(shí)候,能夠快速定位和解決問(wèn)題,這個(gè)工具就是全鏈路監(jiān)控組件。

全鏈路監(jiān)控組件可以監(jiān)控每個(gè)微服務(wù)程序之間通信的一個(gè)數(shù)據(jù)指標(biāo),可以幫助運(yùn)維好很好的分析一個(gè)請(qǐng)求時(shí)如何轉(zhuǎn)發(fā)到各個(gè)微服務(wù)之間以及微服務(wù)之間的調(diào)度。

全鏈路性能監(jiān)控,從整體緯度到局部緯度展示各項(xiàng)指標(biāo),將跨應(yīng)用的所有調(diào)度鏈性能信息幾種展現(xiàn),方便度量整體和局部的性能,并且方面找到故障產(chǎn)生的源頭,生產(chǎn)上可以極大縮短故障的排除時(shí)間。

全鏈路監(jiān)控解決的問(wèn)題:

  • 請(qǐng)求鏈路追蹤

通過(guò)監(jiān)控可以分析服務(wù)之間的調(diào)用關(guān)系,繪制運(yùn)行時(shí)的拓?fù)湫畔?,可視化展示?/p>

  • 調(diào)用情況衡量

各個(gè)調(diào)用環(huán)節(jié)的性能分析,例如吞吐量、響應(yīng)時(shí)間、錯(cuò)誤次數(shù)

  • 容器規(guī)劃參考

根據(jù)監(jiān)控?cái)?shù)據(jù)的分析,可以及時(shí)的對(duì)微服務(wù)進(jìn)行擴(kuò)容/縮容、服務(wù)降級(jí)、流量控制

  • 運(yùn)行情況反饋

通過(guò)監(jiān)控?cái)?shù)據(jù)和業(yè)務(wù)日志快速定位錯(cuò)誤信息

全鏈路監(jiān)控工具有很多種,應(yīng)該從下面幾種方面去選擇

  • 探針的性能消耗

全鏈路監(jiān)控工具都需要開(kāi)啟一個(gè)探針才能對(duì)微服務(wù)的鏈路進(jìn)行監(jiān)控,因此我們要選擇對(duì)服務(wù)的影響盡可能的少、數(shù)據(jù)分析的要快,性能占用小的工具。

  • 代碼的侵入性

部分的鏈路監(jiān)控工具還需要在應(yīng)用程序的代碼中集成,我們應(yīng)該選擇盡可能不改業(yè)務(wù)程序代碼的同時(shí)也能把微服務(wù)監(jiān)控起來(lái)的工具,減少開(kāi)發(fā)人員的負(fù)擔(dān)。

  • 監(jiān)控緯度

監(jiān)控的數(shù)據(jù)要全方面、要到位、監(jiān)控指標(biāo)越多越好。

  • 可擴(kuò)展性

工具可以支持分部署部署,具備良好的擴(kuò)展性。

主流的鏈路監(jiān)控工具由zipkin、skywalking、pinpoint。

2.pinpoint鏈路監(jiān)控組件的介紹

pinpoint是一個(gè)APM(應(yīng)用程序性能管理)的工具,適用于JAVA/PHP編寫(xiě)的大型分布式系統(tǒng)。

pinpoint的特性:

  • 服務(wù)地圖(serverMap):通過(guò)可視化分布式系統(tǒng)的模塊和他們之間的相互來(lái)展示系統(tǒng)拓?fù)?,點(diǎn)擊某個(gè)節(jié)點(diǎn)會(huì)展示該模塊的詳情,比如當(dāng)前的狀態(tài)和請(qǐng)求數(shù)量。
  • 實(shí)時(shí)活動(dòng)性線程圖(Realtime Active Thread Chart):實(shí)時(shí)監(jiān)控應(yīng)用內(nèi)部的活動(dòng)線程。
  • 請(qǐng)求響應(yīng)分布圖(Request/Response Scatter Chart):長(zhǎng)期可視化請(qǐng)求數(shù)量和應(yīng)答模式來(lái)定位潛在問(wèn)題。
  • 調(diào)用棧(CallStack):在分布式環(huán)境中為每個(gè)調(diào)用生成代碼級(jí)別的可視圖,在單個(gè)視圖中定位瓶頸和失敗點(diǎn)檢查器(Inspector):查看應(yīng)用上的其他詳細(xì)信息,比如CPU使用率、內(nèi)存/垃圾回收、TPS和JVM參數(shù)。

pinpoint架構(gòu)

pinpoint agent會(huì)部署在程序服務(wù)器上,程序啟動(dòng)時(shí)會(huì)指定agent服務(wù),由pinpoint collector獲取微服務(wù)之間的鏈路監(jiān)控,然后存儲(chǔ)在Hbase數(shù)據(jù)庫(kù)中,pinpoint web ui展示監(jiān)控?cái)?shù)據(jù)。

img

3.使用docker部署pinpoint監(jiān)控組件

pinpoint托管在github上,拉取鏡像非常慢,可以從百度網(wǎng)盤(pán)上獲取。

pinpoint對(duì)docker-compose的版本也要要求,最好在1.25版本以上。

1.下載docker-compose
# curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose 
# chmod a+x /usr/local/bin/docker-compose 

2.下載pinpoint docker部署安裝包
# wget https://codeload.github.com/pinpoint-apm/pinpoint-docker/zip/refs/tags/1.8.5

3.部署pinpoint
# unzip pinpoint-docker-1.8.5.zip
# docker-compose pull && docker-compose up -d

4.如果網(wǎng)速不行,就采用下載的方式部署
#導(dǎo)入pinpoint鏡像
[root@binary-k8s-node2 ~]# cd pinpoint-image/
[root@binary-k8s-node2 pinpoint-image]# for i in `ls`; do docker load -i $i; done
#部署pinpoint
[root@binary-k8s-node2 ~]# unzip pinpoint-docker-1.8.5.zip >/dev/null
[root@binary-k8s-node2 ~]# cd pinpoint-docker-1.8.5/
[root@binary-k8s-node2 pinpoint-docker-1.8.5]# docker-compose up -d
Creating pinpoint-docker-185_zoo2_1 ... done
Creating pinpoint-flink-jobmanager  ... done
Creating pinpoint-docker-185_zoo1_1 ... done
Creating pinpoint-hbase             ... done
Creating pinpoint-mysql             ... done
Creating pinpoint-docker-185_zoo3_1 ... done
Creating pinpoint-flink-taskmanager ... done
Creating pinpoint-collector         ... done
Creating pinpoint-web               ... done
Creating pinpoint-agent             ... done
Creating pinpoint-quickstart        ... done

[root@binary-k8s-node2 pinpoint-docker-1.8.5]# docker-compose ps

在這里插入圖片描述

pinpoint-web容器提供頁(yè)面展示,已經(jīng)將容器的8080端口映射成了8039端口,直接訪問(wèn)8079端口即可。

pinpoint自帶了一個(gè)quickapp的展示模板

在這里插入圖片描述

4.在微服務(wù)中集成pinpoint-agent

4.1.pinpoint-agent的接入方式

Tomcat方式接入pinpoint-agent方式
需要修改bin/catalina.sh腳本
CATALINA_OPTS="$CATALINA_OPTS -javaagent:"$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId="$AGENT_ID"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName="$APPLICATION_NAME"

java -jar啟動(dòng)程序的方式如下
直接在啟動(dòng)命令中增加即可
java -jar -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar -Dpinpoint.agentId=$AGENT_ID
-Dpinpoint.applicationName=$APPLICATION_NAME xxx.jar

-javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar			#agent程序的的jar包
-Dpinpoint.agentId=$AGENT_ID					#程序計(jì)入pinpoint的一個(gè)id號(hào),每個(gè)微服務(wù)副本節(jié)點(diǎn)都要求唯一
-Dpinpoint.applicationName=$APPLICATION_NAME				#應(yīng)用組名,一個(gè)相同的微服務(wù)他們的應(yīng)用組名要保持一樣

下載pinpoint-agent程序

點(diǎn)擊設(shè)置—>installation

https://github.com/pinpoint-apm/pinpoint/releases/download/1.8.5/pinpoint-agent-1.8.5.tar.gz

在這里插入圖片描述

4.2.配置pinpoint-agent

配置pinpoint-agent,然后將pinpoint-agent目錄拷貝到每一個(gè)微服務(wù)的程序代碼目錄中。

1.下載pinpoint-agent
[root@binary-k8s-master1 ~]# wget https://github.com/pinpoint-apm/pinpoint/releases/download/1.8.5/pinpoint-agent-1.8.5.tar.gz

2.配置pinpoint
[root@binary-k8s-master1 ~]# vim pinpoint-agent/pinpoint.config 
profiler.collector.ip=192.168.20.13				#指定pinpoint collector組件的IP地址

3.將pinpoint拷貝到每個(gè)微服務(wù)的代碼目錄中
[root@binary-k8s-master1 ~]# cp -rp pinpoint-agent springcloud/simple-microservice-dev1/{eureka-service,gateway-service,portal-service}
[root@binary-k8s-master1 ~]# cp -rp pinpoint-agent springcloud/simple-microservice-dev1/product-service/product-service-biz/
[root@binary-k8s-master1 ~]# cp -rp pinp springcloud/simple-microservice-dev1/stock-service/stock-service-biz/
[root@binary-k8s-master1 ~]# cp -rp pinpoint-agent springcloud/simple-microservice-dev1/stock-service/stock-service-biz/

4.3.修改每個(gè)微服務(wù)程序的Dockerfile接入pinpoint-agent

修改每個(gè)微服務(wù)程序的Dockerfile,將pinpoint的程序目錄拷貝到容器中,然后在程序的啟動(dòng)命令中加上pinpoint-agent參數(shù),接入pinpoint,其中-Dpinpoint.agentId字段的值采用pod的名稱來(lái)定義,Dpinpoint.applicationName字段的值采用simple-服務(wù)名稱來(lái)定義。

eureke-service服務(wù)

[root@binary-k8s-master1 simple-microservice-dev1]# vim eureka-service/Dockerfile 
FROM 192.168.20.11/base/centos-java:v1
RUN mkdir /data/simple-microservice/eureka-service -p
COPY ./target/eureka-service.jar /data/simple-microservice/eureka-service/
COPY pinpoint-agent /pinpoint-agent
RUN echo -e "#!/bin/bash \njava -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=\${HOSTNAME} -Dpinpoint.applicationName=simple-eureka -Deureka.instance.hostname=${MY_POD_NAME}.eureka-service.simple-ms /data/simple-microservice/eureka-service/eureka-service.jar > /data/simple-microservice/eureka-service/eureka-service.log & \ntail -f /data/simple-microservice/eureka-service/eureka-service.log" > /data/entrypoint.sh && chmod a+x /data/entrypoint.sh
EXPOSE 8080
ENTRYPOINT /data/entrypoint.sh


############################################
java -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=${HOSTNAME} -Dpinpoint.applicationName=simple-eureka -Deureka.instance.hostname=${MY_POD_NAME}.eureka-service.simple-ms /data/simple-microservice/eureka-service/eureka-service.jar

gateway-service服務(wù)

[root@binary-k8s-master1 simple-microservice-dev1]# vim gateway-service/Dockerfile 
FROM 192.168.20.11/base/centos-java:v1
RUN mkdir /data/simple-microservice/gateway-service -p
COPY ./target/gateway-service.jar /data/simple-microservice/gateway-service/
COPY pinpoint-agent /pinpoint-agent
RUN echo -e "#!/bin/bash \njava -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=\${HOSTNAME} -Dpinpoint.applicationName=simple-gateway /data/simple-microservice/gateway-service/gateway-service.jar > /data/simple-microservice/gateway-service/gateway-service.log & \ntail -f /data/simple-microservice/gateway-service/gateway-service.log" > /data/entrypoint.sh && chmod a+x /data/entrypoint.sh
EXPOSE 8080
ENTRYPOINT /data/entrypoint.sh


############################################
java -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=${HOSTNAME} -Dpinpoint.applicationName=simple-gateway /data/simple-microservice/gateway-service/gateway-service.jar

order-service服務(wù)

[root@binary-k8s-master1 simple-microservice-dev1]# vim order-service/order-service-biz/Dockerfile 
FROM 192.168.20.11/base/centos-java:v1
RUN mkdir /data/simple-microservice/order-service -p
COPY ./target/order-service-biz.jar /data/simple-microservice/order-service/
COPY pinpoint-agent /pinpoint-agent
RUN echo -e "#!/bin/bash \njava -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=\${HOSTNAME} -Dpinpoint.applicationName=simple-order  /data/simple-microservice/order-service/order-service-biz.jar > /data/simple-microservice/order-service/order-service-biz.log & \ntail -f /data/simple-microservice/order-service/order-service-biz.log" > /data/entrypoint.sh && chmod a+x /data/entrypoint.sh
EXPOSE 8080
ENTRYPOINT /data/entrypoint.sh


############################################
java -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=${HOSTNAME} -Dpinpoint.applicationName=simple-order  /data/simple-microservice/order-service/order-service-biz.jar

portal-service服務(wù)

[root@binary-k8s-master1 simple-microservice-dev1]# vim portal-service/Dockerfile 
FROM 192.168.20.11/base/centos-java:v1
RUN mkdir /data/simple-microservice/portal-service -p
COPY ./target/portal-service.jar /data/simple-microservice/portal-service/
COPY pinpoint-agent /pinpoint-agent
RUN echo -e "#!/bin/bash \njava -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=\${HOSTNAME} -Dpinpoint.applicationName=simple-portal /data/simple-microservice/portal-service/portal-service.jar > /data/simple-microservice/portal-service/portal-service.log & \ntail -f /data/simple-microservice/portal-service/portal-service.log" > /data/entrypoint.sh && chmod a+x /data/entrypoint.sh
EXPOSE 8080
ENTRYPOINT /data/entrypoint.sh


############################################
java -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=${HOSTNAME} -Dpinpoint.applicationName=simple-protal /data/simple-microservice/portal-service/portal-service.jar

product-service服務(wù)

[root@binary-k8s-master1 simple-microservice-dev1]# vim product-service/product-service-biz/Dockerfile 
FROM 192.168.20.11/base/centos-java:v1
RUN mkdir /data/simple-microservice/product-service -p
COPY ./target/product-service-biz.jar /data/simple-microservice/product-service/
COPY pinpoint-agent /pinpoint-agent
RUN echo -e "#!/bin/bash \njava -jar -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=\${HOSTNAME} -Dpinpoint.applicationName=simple-product /data/simple-microservice/product-service/product-service-biz.jar > /data/simple-microservice/product-service/product-service-biz.log & \ntail -f /data/simple-microservice/product-service/product-service-biz.log" > /data/entrypoint.sh && chmod a+x /data/entrypoint.sh
EXPOSE 8080
ENTRYPOINT /data/entrypoint.sh


############################################
java -jar -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=${HOSTNAME} -Dpinpoint.applicationName=simple-product /data/simple-microservice/product-service/product-service-biz.jar

stock-service服務(wù)

[root@binary-k8s-master1 simple-microservice-dev1]# vim stock-service/stock-service-biz/Dockerfile 
FROM 192.168.20.11/base/centos-java:v1
RUN mkdir /data/simple-microservice/stock-service -p
COPY ./target/stock-service-biz.jar /data/simple-microservice/stock-service/
COPY pinpoint-agent /pinpoint-agent
RUN echo -e "#!/bin/bash \njava -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=\${HOSTNAME} -Dpinpoint.applicationName=simple-stock /data/simple-microservice/stock-service/stock-service-biz.jar > /data/simple-microservice/stock-service/stock-service-biz.log & \ntail -f /data/simple-microservice/stock-service/stock-service-biz.log" > /data/entrypoint.sh && chmod a+x /data/entrypoint.sh
EXPOSE 8080
ENTRYPOINT /data/entrypoint.sh


java -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=${HOSTNAME} -Dpinpoint.applicationName=simple-stock /data/simple-microservice/stock-service/stock-service-biz.jar 

4.4.先將product商品服務(wù)接入到pinpoint觀察效果

我們接入pinpoint的Dockerfile已經(jīng)寫(xiě)好,直接使用腳本將produce重新部署一下即可。

sh deploy_k8s.sh product-service
[root@binary-k8s-master1 k8s]# kubectl get pod -n simple-ms
NAME                       READY   STATUS    RESTARTS   AGE
eureka-0                   1/1     Running   1          6d17h
eureka-1                   1/1     Running   0          6d17h
eureka-2                   1/1     Running   1          6d17h
gateway-7bb79fdbc4-vvnct   1/1     Running   0          6d11h
order-6694f4c474-rg7kw     1/1     Running   0          6d17h
portal-697fdf95dd-ml86k    1/1     Running   0          6d16h
product-847bb6d9fc-cs692   1/1     Running   0          10m						#重新部署
stock-6cf98bb445-l8gxb     1/1     Running   0          6d19h

product部署好之后在portal門(mén)戶網(wǎng)站上購(gòu)買(mǎi)一個(gè)商品,產(chǎn)生product商品微服務(wù)的請(qǐng)求,觀察pinpoint上的鏈路狀態(tài)。

product商品微服務(wù)下單之后會(huì)調(diào)用stock庫(kù)存微服務(wù),stock微服務(wù)還沒(méi)有接入到pinpoint中,所以在看pinpoint上鏈路監(jiān)控時(shí),就會(huì)發(fā)現(xiàn)stock只會(huì)以ip的形式展示。

可以在鏈路監(jiān)控視圖中看到服務(wù)之間調(diào)用請(qǐng)求的次數(shù),以及是如何調(diào)用的。

。

4.5.將所有的微服務(wù)接入到pinpoint系統(tǒng)

Dockerfile已經(jīng)調(diào)整好,只需要執(zhí)行咱們寫(xiě)好的部署腳本,將所有的微服務(wù)根據(jù)最新的Dockerfile制作出最新的鏡像,然后在K8S集群中重新部署一下即可。

deploy_k8s腳本不跟任何位置參數(shù)就表示將所有的微服務(wù)程序全部更新部署。

[root@binary-k8s-master1 k8s]# sh deploy_k8s.sh 

在門(mén)戶網(wǎng)站中購(gòu)買(mǎi)兩個(gè)商品觀察微服務(wù)之間的調(diào)用。

在這里插入圖片描述

5.pinpoint監(jiān)控系統(tǒng)簡(jiǎn)單使用

在監(jiān)控視圖的右側(cè)可以選擇不同的微服務(wù)副本節(jié)點(diǎn)、程序之間的調(diào)用、請(qǐng)求成功失敗的次數(shù)

在這里插入圖片描述

5.1.查看程序代碼類之間是怎么調(diào)用其他微服務(wù)的

1)點(diǎn)擊view servers可以隨機(jī)切換各個(gè)副本節(jié)點(diǎn)

在這里插入圖片描述

2)點(diǎn)擊右側(cè)最上面的統(tǒng)計(jì)圖,然后找到圖中的小點(diǎn),選中這個(gè)小點(diǎn)就會(huì)跳轉(zhuǎn)到代碼調(diào)用的頁(yè)面

在這里插入圖片描述

3)選中完之后會(huì)立即跳轉(zhuǎn),然后點(diǎn)擊該請(qǐng)求

請(qǐng)求成功的監(jiān)控內(nèi)容

在這里插入圖片描述

請(qǐng)求失敗的監(jiān)控內(nèi)容

在這里插入圖片描述

4)這里還會(huì)有比之前更豐富的視圖

在這里插入圖片描述

5)點(diǎn)擊mixed view會(huì)看到更加豐富的展示視圖

請(qǐng)求成功的

在這里插入圖片描述

請(qǐng)求失敗的

在這里插入圖片描述

5.2.查看微服務(wù)的JVM監(jiān)控信息

1)點(diǎn)擊inspector

在這里插入圖片描述

2)選擇指定的副本節(jié)點(diǎn)

這些名稱都是通過(guò)在啟動(dòng)命令中加的-Dpinpoint.agentId=${HOSTNAME}參數(shù)生效的

在這里插入圖片描述

到此這篇關(guān)于基于Pinpoint對(duì)SpringCloud微服務(wù)項(xiàng)目實(shí)現(xiàn)全鏈路監(jiān)控的文章就介紹到這了,更多相關(guān)Pinpoint全鏈路監(jiān)控內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot整合Active消息隊(duì)列

    Springboot整合Active消息隊(duì)列

    這篇文章主要介紹了Springboot整合Active消息隊(duì)列的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-12-12
  • 關(guān)于Unsupported Media Type的解決方案

    關(guān)于Unsupported Media Type的解決方案

    在Web開(kāi)發(fā)中,415錯(cuò)誤表示服務(wù)器無(wú)法處理請(qǐng)求附帶的媒體格式,本文介紹了導(dǎo)致HTTP 415錯(cuò)誤的原因以及解決該問(wèn)題的兩種方法,首先,415錯(cuò)誤通常是由于客戶端請(qǐng)求的內(nèi)容類型與服務(wù)器期望的不匹配引起的,例如,服務(wù)器可能期望JSON格式的數(shù)據(jù)
    2024-10-10
  • 使用Cloud Toolkit在IDEA中極速創(chuàng)建dubbo工程

    使用Cloud Toolkit在IDEA中極速創(chuàng)建dubbo工程

    這篇文章主要介紹了使用Cloud Toolkit在IDEA中極速創(chuàng)建dubbo工程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Java中JDK動(dòng)態(tài)代理的超詳細(xì)講解

    Java中JDK動(dòng)態(tài)代理的超詳細(xì)講解

    JDK 的動(dòng)態(tài)代理是基于攔截器和反射來(lái)實(shí)現(xiàn)的,JDK代理是不需要第三方庫(kù)支持的,只需要JDK環(huán)境就可以進(jìn)行代理,下面這篇文章主要給大家介紹了關(guān)于Java中JDK動(dòng)態(tài)代理的超詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • swagger2隱藏在API文檔顯示某些參數(shù)的操作

    swagger2隱藏在API文檔顯示某些參數(shù)的操作

    這篇文章主要介紹了swagger2隱藏在API文檔顯示某些參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringBoot整合任務(wù)系統(tǒng)quartz和SpringTask的方法

    SpringBoot整合任務(wù)系統(tǒng)quartz和SpringTask的方法

    這篇文章主要介紹了SpringBoot整合任務(wù)系統(tǒng)(quartz和SpringTask),Quartz是一個(gè)比較成熟了的定時(shí)任務(wù)框架,但是捏,它稍微的有些許繁瑣,本文先給大家講解下Quartz的一些基本概念結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • 關(guān)于JSqlparser使用攻略(高效的SQL解析工具)

    關(guān)于JSqlparser使用攻略(高效的SQL解析工具)

    這篇文章主要介紹了關(guān)于JSqlparser使用攻略(高效的SQL解析工具),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 淺談java的守護(hù)線程與非守護(hù)線程

    淺談java的守護(hù)線程與非守護(hù)線程

    這篇文章主要介紹了淺談java的守護(hù)線程與非守護(hù)線程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • 使用Java接收和處理OpenTelemetry數(shù)據(jù)的完整指南

    使用Java接收和處理OpenTelemetry數(shù)據(jù)的完整指南

    在現(xiàn)代分布式系統(tǒng)中,OpenTelemetry 成為了一種常見(jiàn)的標(biāo)準(zhǔn),用于跟蹤和監(jiān)控應(yīng)用程序的性能和行為,OTLP是 OpenTelemetry 社區(qū)定義的一種數(shù)據(jù)傳輸協(xié)議,文將介紹如何使用 Java 編寫(xiě)代碼來(lái)接收和處理 OTLP 數(shù)據(jù),需要的朋友可以參考下
    2024-04-04
  • springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能

    springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能

    這篇文章主要為大家詳細(xì)介紹了springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評(píng)論

顺昌县| 湘潭市| 上蔡县| 永靖县| 临汾市| 长沙县| 资兴市| 哈尔滨市| 哈尔滨市| 冕宁县| 龙泉市| 浮山县| 蒙城县| 阆中市| 贵德县| 东源县| 乌兰察布市| 彩票| 万源市| 怀安县| 社旗县| 澎湖县| 邵阳市| 丰台区| 瓦房店市| 泉州市| 勃利县| 龙岩市| 青浦区| 讷河市| 陆丰市| 西乡县| 浑源县| 繁峙县| 承德市| 洛浦县| 长岭县| 河北区| 达日县| 大悟县| 壤塘县|