国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

應(yīng)用SpringAOP及Tlog工具完成日志鏈路追蹤、收集、持久化

KaltZK / 2804人閱讀

摘要:經(jīng)過(guò)一番考察吧,對(duì)于鏈路追蹤,我們選用了這個(gè)日志追蹤工具。日志收集使用注解主要對(duì)出入?yún)⒓爱惓P判倪M(jìn)行收集處理。另外對(duì)進(jìn)行簡(jiǎn)單封裝,提供等方法,這些方法輸入的日志也進(jìn)行收集存儲(chǔ)。

?一、痛點(diǎn)

目前我司各系統(tǒng)的日志管理比較原始,使用logback打日志到log文件,雖然有服務(wù)管理平臺(tái),但記錄的日志也僅僅是前置機(jī)調(diào)用后臺(tái)系統(tǒng)的出入?yún)ⅲ?dāng)遇到問(wèn)題時(shí)查日志較為麻煩。

登錄VPN-打開(kāi)服務(wù)器-找到日志目錄-打開(kāi)日志文件-搜索

而這個(gè)過(guò)程也僅僅是在一臺(tái)服務(wù)器上的操作,一般需要看前置機(jī)、后臺(tái)系統(tǒng)甚至服務(wù)管理平臺(tái)。

當(dāng)用戶較少時(shí),通過(guò)先后順序等其他標(biāo)志還能查到,但當(dāng)調(diào)用量稍多后就很難判斷哪個(gè)日志是哪個(gè)操作發(fā)出的。

另外,我司產(chǎn)品前臺(tái)面向用戶,后臺(tái)與多家公司產(chǎn)品有大量互相調(diào)用,當(dāng)用戶遇到問(wèn)題首先投訴的是我司產(chǎn)品,如在日志中找不到問(wèn)題點(diǎn),背鍋的就是我們。

??二、解決思路

任務(wù)有2個(gè)

  1. 鏈路追蹤,一次調(diào)用的日志,無(wú)論跨多少平臺(tái)都能串起來(lái);
  2. 日志存庫(kù),這主要是為了開(kāi)發(fā)一個(gè)日志查詢功能,提供給運(yùn)維人員。

2.1、Tlog

經(jīng)過(guò)一番考察吧,對(duì)于鏈路追蹤,我們選用了Tlog這個(gè)日志追蹤工具。主頁(yè)鏈接:yomahub.com/tlog/

主要考慮點(diǎn)是:

  • 最基礎(chǔ)的功能:日志打標(biāo)簽,并且支持標(biāo)簽?zāi)0宓淖远x,可通過(guò)TLogContext.getTraceId()和TLogContext.putTraceId(id)獲取和設(shè)置id;
  • 業(yè)務(wù)代碼無(wú)侵入

不過(guò)對(duì)HttpClient是侵入式的,需要加攔截器

這個(gè)攔截器的實(shí)現(xiàn)還是頗為簡(jiǎn)單

public class TLogHttpClientInterceptor implements HttpRequestInterceptor {        private static final Logger log = LoggerFactory.getLogger(TLogHttpClientInterceptor.class);        @Override    public void process(final HttpRequest request, final HttpContext context) throws HttpException, IOException {        Args.notNull(request, "HTTP request");        String traceId = TLogContext.getTraceId();        if(StringUtils.isNotBlank(traceId)) {            String appName = TLogSpringAware.getProperty("spring.application.name");            request.addHeader(TLogConstants.TLOG_TRACE_KEY, traceId);            request.addHeader(TLogConstants.TLOG_SPANID_KEY, SpanIdGenerator.generateNextSpanId());            request.addHeader(TLogConstants.PRE_IVK_APP_KEY, appName);            request.addHeader(TLogConstants.PRE_IVK_APP_HOST, LocalhostUtil.getHostName());            request.addHeader(TLogConstants.PRE_IP_KEY, LocalhostUtil.getHostIp());        } else {            log.debug("[TLOG]鏈湴threadLocal鍙橀噺娌℃湁姝g‘浼犻?抰raceId,鏈璋冪敤涓嶄紶閫抰raceId");        }    }}

 

不過(guò)需要注意的點(diǎn)是,有一些方法使用了Hutool高版本提供的方法,注意項(xiàng)目中版本沖突的解決。

對(duì)Tlog的集成還有一個(gè)問(wèn)題,公司使用的服務(wù)管理平臺(tái)由其他部門開(kāi)發(fā)管理,需要該部門協(xié)同解決,不過(guò)好在我們可以拿到源碼????????

2.2、日志存儲(chǔ)

日志存儲(chǔ)自然不希望對(duì)當(dāng)前業(yè)務(wù)有任何影響,考慮到系統(tǒng)并發(fā)量并不是很大,就采用線程池來(lái)調(diào)用日志系統(tǒng)存庫(kù)。

2.3、日志收集

使用注解主要對(duì)出入?yún)⒓爱惓P判倪M(jìn)行收集處理。另外對(duì)logback進(jìn)行簡(jiǎn)單封裝,提供info()、error()等方法,這些方法輸入的日志也進(jìn)行收集、存儲(chǔ)。 因業(yè)務(wù)特殊性,需要使用的系統(tǒng)都復(fù)用一套自定義注解、公共切面方法,并在切面中完成特殊業(yè)務(wù)的處理。

頗多細(xì)節(jié)就不多寫了,本文主要就是介紹整體思路,對(duì)于調(diào)用量說(shuō)多不多的系統(tǒng)還可以。

?

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/124529.html

相關(guān)文章

  • 他山之石——運(yùn)維平臺(tái)哪家強(qiáng)?

    摘要:當(dāng)云平臺(tái)出現(xiàn)網(wǎng)絡(luò)故障系統(tǒng)故障等問(wèn)題,這對(duì)云租戶用戶有時(shí)甚至是致命的,所以不少是由高級(jí)別開(kāi)發(fā)人員轉(zhuǎn)型而來(lái)。目前國(guó)內(nèi)各大云廠商也基本都提供了應(yīng)用運(yùn)維平臺(tái),包括騰訊藍(lán)鯨阿里華為等。 DevOps 全鏈路 下圖是我們熟知的軟件研發(fā)環(huán)節(jié),在迭代頻率高的研發(fā)組織里,一天可能要經(jīng)歷多次如下循環(huán)。對(duì)于用戶群體龐大或者正在經(jīng)歷大幅業(yè)務(wù)擴(kuò)張的企業(yè)研發(fā)組織,除了重點(diǎn)關(guān)注應(yīng)用的快速上線之外,如何保障應(yīng)用的高可...

    mylxsw 評(píng)論0 收藏0
  • 微服務(wù)調(diào)用鏈追蹤中心搭建

    摘要:一個(gè)客戶端請(qǐng)求從發(fā)出到被響應(yīng)經(jīng)歷了哪些組件哪些微服務(wù)請(qǐng)求總時(shí)長(zhǎng)每個(gè)組件所花時(shí)長(zhǎng)等信息我們有必要了解和收集,以幫助我們定位性能瓶頸進(jìn)行性能調(diào)優(yōu),因此監(jiān)控整個(gè)微服務(wù)架構(gòu)的調(diào)用鏈?zhǔn)钟斜匾疚膶㈥U述如何使用搭建微服務(wù)調(diào)用鏈追蹤中心。 showImg(https://segmentfault.com/img/remote/1460000014553707); 概述 一個(gè)完整的微服務(wù)系統(tǒng)包含...

    Pines_Cheng 評(píng)論0 收藏0
  • Java學(xué)習(xí)路線

    摘要:學(xué)習(xí)路線編程基礎(chǔ)語(yǔ)言語(yǔ)言基礎(chǔ)數(shù)據(jù)類型面向?qū)ο蠼涌谌萜鳟惓7盒头瓷渥⒔饬骷项惣虞d機(jī)制字節(jié)碼執(zhí)行機(jī)制 Java學(xué)習(xí)路線 Java編程基礎(chǔ) Java語(yǔ)言 Java語(yǔ)言基...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • 貓頭鷹的深夜翻譯:使用SpringBoot和AspectJ實(shí)現(xiàn)AOP

    摘要:我們會(huì)寫切面來(lái)攔截對(duì)這些業(yè)務(wù)類和類的調(diào)用。切面定義何時(shí)攔截一個(gè)方法以及做什么和在一起成為切面連接點(diǎn)當(dāng)代碼開(kāi)始執(zhí)行,并且切點(diǎn)的條件滿足時(shí),通知被調(diào)用。 前言 這篇文章會(huì)幫助你使用Spring Boot Starter AOP實(shí)現(xiàn)AOP。我們會(huì)使用AspectJ實(shí)現(xiàn)四個(gè)不同的通知(advice),并且新建一個(gè)自定義的注解來(lái)追蹤方法的執(zhí)行時(shí)間。 你將會(huì)了解 什么是交叉分割關(guān)注點(diǎn)(cross...

    meislzhua 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<