精華 2023年10月2日 微服務 日誌中心

2021-10-09 22:55:21 字數 3188 閱讀 6825

舉例說明,在做的各位有沒有在讀小學的,都是讀過小寫的,我們讀小學的時候,經常做乙個事情,老師要求我們寫日記,我們感覺非常煩,那麼,日記記錄的是什麼,是我們每一天做的事情。專業表述,日記是不是用來記錄人每一天活動的狀態,

同理,在軟體中,為了記錄軟體的執行狀態,那麼記錄這種狀態的叫做日誌

日記是用來記錄人的狀態,那麼日誌是用來記錄軟體系統執行的狀態。

日記組成:時間,地點,做了什麼。(條件和結果)

日誌組成:時間,類,方法資訊(輸入引數和輸出結果)

就是統一記錄多個系統的執行日誌,就叫做日誌中心。

見圖,微服務系統中使用日誌中心

1、微服務系統執行正常,一切正常的情況下,不需要使用日中中心

2、微服務系統執行執行異常

​ 2.1 微服務系統內部出現了異常,無法進行排查

​ 2.2 微服務系統呼叫過程出現了內部異常,定位日誌問題非常麻煩,一會在這個地方用,一會在那個地方用,不是非常好維護,

在這兩種情況下,所以就出現了日誌中心,來統一排查問題

elk:elk是三個開源軟體的縮寫,分別表示:elasticsearch , logstash, kibana ,

比較不同的日誌框架

對於目前elk成為了微服務系統和分布式系統的主流,在市面上還沒有其他的日誌中心可選

這個時候需要和其他進行對比,只有對比才有效果,就是他的優勢在**,其他日誌中心框架的缺陷在**。

logstash :日誌收集,處理器

elasticsearch :日誌儲存器

kibana:日誌視覺化分析器(webui)

在這三個元件裡面,logstash 是核心地位

logstash 組成

客戶端:收集日誌 ==== 客戶端有哪些nlog,log4j

服務端:接受客戶端收集來的日誌進行進行處理。

見圖進行展示

條件1、微服務系統

2、elasticsearch 6.6.0

3、logstash 6.6.0

4、kibana 6.6.0

5、nlog

步驟1、微服務系統操作

​ 1.1 微服務系統已經準備好

2、 elasticsearch 6.6.0操作

​ 解壓後,在elasticsearch-6.6.0/config目錄下,在elasticsearch.yml內配置

network.host: 0.0.0.0

增加thread_pool.bulk.queue_size: 1000

​ 2.3 elasticsearch 6.6.0啟動

​ 解壓後,在elasticsearch-6.6.0/bin目錄下,雙擊啟動

elasticsearch.bat
​ 2.4 elasticsearch 6.6.0訪問

​ 瀏覽器輸入:http://localhost:9200,顯示結果,啟動成功

3、logstash 6.6.0操作

​ 3.2 logstash 6.6.0配置

​ 解壓後,在logstash-6.6.0/config目錄下,建立logstash.conf檔案,在其中新增配置資訊

input 

}

output "

#user => "elastic"

#password => "changeme"

}}

​ 3.3 logstash 6.6.0啟動

logstash -f  ../config/logstash.conf
​ 3.4 logstash 6.6.0訪問

​ 瀏覽器輸入:http://localhost:9600,顯示結果,啟動成功

4、kibana 6.6.0操作

​ 4.2 kibana 6.6.0配置

​ 解壓後,在kibana-6.6.0-windows-x86_64/config目錄下,開啟kibana.yml檔案,在其中新增配置資訊

server.port: 5601

server.host: "localhost"

elasticsearch.hosts: ["http://localhost:9200"]

​ 3.3 kibana 6.6.0啟動

在kibana-6.6.0-windows-x86_64/bin目錄下,雙擊

kibana.bat
​ 3.4 logstash 6.6.0訪問

​ 瀏覽器輸入:http://localhost:5601,顯示結果,啟動成功

5、微服務系統操作

​ 5.1 nlog操作

​ 在ruanmou.microservice.core微服務使用nuegt安裝nlog.web.aspnetcore

nuget nlog.web.aspnetcore
​ 5.1.2 nlog配置

​ 在ruanmou.microservice.aggregateservice微服務中建立nlog.config檔案,內容為

<?xml version="1.0" encoding="utf-8" ?>

​ 5.1.3 nlog載入

​ 在ruanmou.microservice.aggregateservice微服務中開啟program.cs,配置內容為

public static ihostbuilder createhostbuilder(string args) =>

host.createdefaultbuilder(args)

.configurewebhostdefaults(webbuilder =>

);// 2、使用nllog

webbuilder.usestartup().usenlog();

});

​ 5.1.4 nlog使用

​ 在ruanmou.microservice.aggregateservice微服務中開啟aggregatecontroller.cs,增加內容為

// nlog日誌列印類

private readonly ilogger _logger = logmanager.getcurrentclasslogger();

精華 2023年10月1日 微服務 事件匯流排

例如 事物 所有看到的一切都是事物,不能看到的也是事物 例如 團隊微服務,成員微服務,聚合微服務,閘道器api,認證中心等等包括類,物件 所有的事件都是事物變化的結果 大家接觸事件最早就是在js 或者是c 高階特性。大家對於事件不預設,但是對於事件不是很好理解 事件就是指事物狀態的變化,每一次事物變...

精華 2023年8月17日 WebApi許可權認證

session webapi預設是不支援session restful 可以自行擴充套件去支援 無狀態 第2次請求和第1次請求不關聯 1 登陸過程,拿到令牌 token ticket 許可證 2 驗證成功 賬號 密碼 其他資訊 時間 加密一下得到ticket 返回給客戶端 3 請求時,ajax裡面帶...

精華 2023年01月02日 WPF繫結

在winform中,我們常常會用到各種型別的賦值,例如 類似這種賦值操作,我們之所以不稱之為繫結,主要原因是因為他們大多數操作都是一次性的,無論是資料還是按鈕本身發生變化,對兩者而言都是不可見的。而繫結的概念則側重於 兩者的關聯,協議與兩者之間的影響。首先,從乙個簡單的例子來理解什麼是繫結。1 bi...