本篇內(nèi)容介紹了“怎么實(shí)現(xiàn)Skywalking支持HTTP 1.1通信接口”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
澤州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
OpenResty是一個(gè)基于 Nginx 與 Lua 的高性能 Web 平臺(tái),其內(nèi)部集成了大量精良的 Lua 庫(kù)、第三方模塊以及大多數(shù)的依賴項(xiàng)。用于方便地搭建能夠處理超高并發(fā)、擴(kuò)展性極高的動(dòng)態(tài) Web 應(yīng)用、Web 服務(wù)和動(dòng)態(tài)網(wǎng)關(guān)。
因此,很多公司都會(huì)使用 OpenResty 開發(fā)出適合自己業(yè)務(wù)的高性能 web Server 模塊。
那么它和 Skywalking 有什么關(guān)心呢?我們得先知道Skywalking是什么,Skywalking 是由Java 語言開發(fā)的一套APM系統(tǒng),主要監(jiān)控服務(wù)與服務(wù)之間的調(diào)用鏈路以及服務(wù)應(yīng)用指標(biāo)。官方的介紹是:分布式系統(tǒng)的應(yīng)用程序性能監(jiān)視工具,專為微服務(wù)、云原生架構(gòu)和基于容器(Docker、K8s、Mesos)架構(gòu)而設(shè)計(jì)。
假設(shè),當(dāng)我們的使用Nginx/OpenResty 為我們的微服務(wù)做負(fù)載均衡的時(shí)候,怎樣才能將整條鏈路通過請(qǐng)求串起來,以及怎樣保證整個(gè)鏈路的拓?fù)鋱D正確呢?目前的解決方案是在 Nginx 中支持鏈路信息的上報(bào),同時(shí)能夠?qū)⒄?qǐng)求鏈路關(guān)鍵信息傳遞給上游應(yīng)用。
Skywalking 監(jiān)控 Java、Golang、Node、.NET 語言的鏈路都是采用了 SDK 或者 Agent 的方式將數(shù)據(jù)上報(bào)到 Skyalking 后端。不過都是采用 gRPC 的方式和后端交互,Apache Nginx Lua考慮到 Nginx 足以勝任 10K 以上并發(fā)連接響應(yīng),并沒有采用 Nginx gRPC的方式,因此需要 Skywalking 支持 HTTP 1.1 的通信接口。
這里先畫一個(gè)怎么玩的邏輯圖:
Macos 系統(tǒng)采用 Homebrew 安裝:
> brew install openresty/brew/openresty
==> Summary
???? /usr/local/Cellar/openresty/1.15.8.2: 303 files, 6.5MB, built in 1 minute
==> Caveats
==> openresty-openssl
openresty-openssl is keg-only, which means it was not symlinked into /usr/local,
because only for use with OpenResty.
If you need to have openresty-openssl first in your PATH run:
echo 'export PATH="/usr/local/opt/openresty-openssl/bin:$PATH"' >> ~/.zshrc
For compilers to find openresty-openssl you may need to set:
export LDFLAGS="-L/usr/local/opt/openresty-openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openresty-openssl/include"
==> openresty
To have launchd start openresty/brew/openresty now and restart at login:
brew services start openresty/brew/openresty
Or, if you don't want/need a background service you can just run:
openresty
git clone https://github.com/apache/skywalking-nginx-lua.git
cd skywalking-nginx-lua/examples/
該目錄存放了關(guān)于Nginx的樣例配置,如下是部分內(nèi)容:
http {
# 這里指向剛剛克隆下來的 skywalking nginx lua項(xiàng)目
lua_package_path "path/to/skywalking-nginx-lua/lib/skywalking/?.lua;;";
# Buffer represents the register inform and the queue of the finished segment
lua_shared_dict tracing_buffer 100m;
init_worker_by_lua_block {
local metadata_buffer = ngx.shared.tracing_buffer
metadata_buffer:set('serviceName', 'User Service Name')
-- Instance means the number of Nginx deloyment, does not mean the worker instances
metadata_buffer:set('serviceInstanceName', 'User Service Instance Name')
# 這里需要指定上報(bào)Skywalking 的后端地址。端口默認(rèn)是12800
require("client"):startBackendTimer("http://127.0.0.1:12800")
}
server {
listen 8080;
location /test {
default_type text/html;
rewrite_by_lua_block {
require("tracer"):start("upstream service")
}
# 這里則是 上圖中 nginx 上游服務(wù)的地址
proxy_pass http://127.0.0.1:8080/upstream/test;
body_filter_by_lua_block {
if ngx.arg[2] then
require("tracer"):finish()
end
}
log_by_lua_block {
require("tracer"):prepareForReport()
}
}
}
}
openresty -c /Users/tanjian/gitprojects/skywalking-nginx-lua/examples/nginx.conf
“怎么實(shí)現(xiàn)Skywalking支持HTTP 1.1通信接口”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
本文名稱:怎么實(shí)現(xiàn)Skywalking支持HTTP1.1通信接口
標(biāo)題鏈接:http://jinyejixie.com/article8/iehjop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、自適應(yīng)網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司、企業(yè)建站、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)