中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么實現Skywalking支持HTTP 1.1通信接口

發布時間:2021-12-10 17:39:08 來源:億速云 閱讀:451 作者:iii 欄目:云計算

本篇內容介紹了“怎么實現Skywalking支持HTTP 1.1通信接口”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!        

OpenResty 是什么?

OpenResty是一個基于 Nginx 與 Lua 的高性能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模塊以及大多數的依賴項。用于方便地搭建能夠處理超高并發、擴展性極高的動態 Web 應用、Web 服務和動態網關。

因此,很多公司都會使用 OpenResty 開發出適合自己業務的高性能 web Server 模塊。

那么它和 Skywalking 有什么關心呢?我們得先知道Skywalking是什么,Skywalking 是由Java 語言開發的一套APM系統,主要監控服務與服務之間的調用鏈路以及服務應用指標。官方的介紹是:分布式系統的應用程序性能監視工具,專為微服務、云原生架構和基于容器(Docker、K8s、Mesos)架構而設計。

假設,當我們的使用Nginx/OpenResty 為我們的微服務做負載均衡的時候,怎樣才能將整條鏈路通過請求串起來,以及怎樣保證整個鏈路的拓撲圖正確呢?目前的解決方案是在 Nginx 中支持鏈路信息的上報,同時能夠將請求鏈路關鍵信息傳遞給上游應用。     

Skywalking 7.x 開始支持 HTTP 1.1

Skywalking 監控 Java、Golang、Node、.NET 語言的鏈路都是采用了 SDK 或者 Agent 的方式將數據上報到 Skyalking 后端。不過都是采用 gRPC 的方式和后端交互,Apache Nginx Lua 考慮到 Nginx 足以勝任 10K 以上并發連接響應,并沒有采用 Nginx gRPC的方式,因此需要 Skywalking 支持 HTTP 1.1 的通信接口。 

怎么玩起來?

這里先畫一個怎么玩的邏輯圖:

怎么實現Skywalking支持HTTP 1.1通信接口  
skywalking_nginx_lua


  • 首先安裝 Openresty 參照官網:https://openresty.org/cn/download.html

Macos 系統采用 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
 
  • 克隆或者下載 Apache Nginx Lua庫
git clone https://github.com/apache/skywalking-nginx-lua.git
cd skywalking-nginx-lua/examples/
 

該目錄存放了關于Nginx的樣例配置,如下是部分內容:

  • nginx.conf:
http {
  # 這里指向剛剛克隆下來的 skywalking nginx lua項目
   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')

       # 這里需要指定上報Skywalking 的后端地址。端口默認是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 上游服務的地址
           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 即可,并指定配置文件,例如:
openresty -c /Users/tanjian/gitprojects/skywalking-nginx-lua/examples/nginx.conf

“怎么實現Skywalking支持HTTP 1.1通信接口”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巧家县| 永德县| 沐川县| 军事| 三河市| 青铜峡市| 晴隆县| 佳木斯市| 泽州县| 织金县| 三明市| 黔南| 乌兰浩特市| 耒阳市| 山东| 运城市| 平阴县| 怀集县| 庆阳市| 西乡县| 阳城县| 宁夏| 茶陵县| 象州县| 洛川县| 赤壁市| 金华市| 盖州市| 嘉义市| 南江县| 东海县| 临潭县| 五家渠市| 北碚区| 洮南市| 北票市| 英德市| 临江市| 宝丰县| 元江| 鄂尔多斯市|