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

溫馨提示×

溫馨提示×

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

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

Networknt Light 4J分析報告是怎樣的

發布時間:2021-12-28 15:28:50 來源:億速云 閱讀:157 作者:柒染 欄目:云計算

這篇文章將為大家詳細講解有關Networknt Light 4J分析報告是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Networknt Light 4J分析報告

一、整體介紹

Light 4J是networknt.com的核心產品。一個基于Java SE快速、輕量級并且高效的微服務框架。其包含十多個子模塊,用于不同風格的API構建,包括OAuth3,Portal,Logging,Messaging和Metrics等基礎設施服務。此外,還有一系列工具可幫助提高開發人員和操作人員的工作效率。

1、性能情況

在Light 4J官方的benchmark的測試報告中,將它與 Spring Boot 及其他微服務平臺作了性能比較。Light 4J比Spring Boot內嵌Tomcat的主流微服務框架平臺快44倍,并且只需要1/5內存,性能與 Go 語言并肩,擁有更低的平均延遲。

     Framework

Language

Max Throughput

Avg Latency

Transfer

Go FastHttp

Go

1,396,685.83

99.98ms

167.83MB

Light-4j

Java

1,344,512.65

2.36ms

169.25MB

Spark

Java

194,553.83

13.85ms

32.47MB

Go Http

Go

170,313.02

15.01ms

20.95MB

Spring Boot Undertow

Java

44,260.61

38.94ms

6.42MB

Spring Boot Tomcat

Java

33,086.22

82.93ms

3.98MB

2、Github情況

Light 4J目前共有71個Github子項目,其中Java項目39個,最高熱度的項目為Light 4J本身,2167 star,354 fork,低于Spring Boot、Spring Cloud、Dubbo等項目。其余幾個核心子項目,如light-oauth3、light-rest-4j、light-proxy等項目僅有一兩百的star。

Light 4J項目目前共有23個代碼貢獻者,但目前關注的開發者開始逐漸加入, 形成開發梯隊。

3、Light 4J能力清單

模塊

描述

server

基于Undertow實現http請求

security

基于OAuth3實現JWT的校驗和解析,并支持mock

config

支持獨立應用的外配配置文件,支持docker配置文件

Utility

一個工具集

client

封裝了httpclient和httpasyncclient的能力,支持緩存和jwt信息的讀取

validator

支持基于sawgger的請求參數和url路徑校驗,支持基于json-schema-validator的請求包體校驗

audit

支持以json的格式,將請求和響應報文輸出到日志文件中

info

提供一個/server/info端點,可以輸出應用的各個組件配置信息

mask

為特定數據脫敏,比如卡號等信息

status

構建http錯誤類型模型,使用唯一的錯誤編號來幫助應用排查問題

swagger-codegen

使用swagger規范生成API接口程序

balance

復雜均衡模塊,默認支持輪詢和本地優先,可擴展開發

body

支持將http body格式化成Java Map或List

cluster

支持通過服務名的方式進行服務發現

consul

Light 4j的consul注冊中心實現

correlation、traceability

鏈路跟蹤模塊

CORS

http CORS 訪問控制模塊

zookeeper

Light 4j的zookeeper注冊中心實現

data-source

各種數據庫接入實現

decryptor、encode-decode

加解密模塊,支持AES

rate-limit

請求速率限制模塊

prometheus

支持prometheus格式數據接口

email-sender

郵件發送模塊

ip-whitelist

請求白名單

metrics

交易統計模塊

二、框架設計思路及技術核心

Light 4J面向微服務架構進行設計,力求高吞吐、低延遲、輕量級。基于Undertow Core Http server核心組件進行實現,集成了盡可能少的第三方依賴庫。在架構設計時,主要遵循以下設計原則:

  1. 專門為微服務進行設計,并對容器化部署進行適配優化

  2. 摒棄復雜的JavaEE,僅基于純粹的HTTP進行實現

  3. 以安全第一為設計原則,內嵌了OAuth3.0實現和分布式網關的實現

  4. 設計中考慮了如何在微服務上實現分布式事物

  5. 將各個不同功能都設計為插件形式,易于框架的定制和擴展

  6. 服務消費方直接支持服務的發現,無需通過服務網關、服務代理等機制進行實現

  7. 日志可以結合ElasticSearch,、LogStash、Kibana提供監控和報警能力

  8. 內嵌的服務調用統計和鏈路跟蹤功能

  9. 實現了自己的依賴注入機制,無需引入Spring等復雜框架

Light 4J框架將Handler請求攔截機制作為核心,在Handler中處理框架邏輯和業務邏輯。Handler可分為兩種,一種是chain類型Handler,類似過濾器,會處理每個請求;另一種path類型Handler僅處理特定http路徑請求。

配置chain handler有兩個步驟:1、在yml配置文件中handlers的位置增加實現類定義(外部引入),格式為“包名.類名@別名”;2、在yml配置文件中的的chains位置增加該別名,別名的順序代表處理的順序,cross-cutting concerns處理鏈是開發是結構, 用戶可以override或者加入自己的cross-cutting concerns處理鏈去支持其它標準或者應用, 比如opentracing, istio 等。

配置http handler有三個步驟:1、基于LightHttpHandler接口實現http請求處理類;2、在yml配置文件中handler位置定義該實現類的,格式為“包名.類名”;3、在yml配置文件中paths的位置配置http請求對應的請求方式、路徑、實現類。

Handlers配置示例:

Networknt Light 4J分析報告是怎樣的

Chains配置示例:

Networknt Light 4J分析報告是怎樣的

Paths配置示例:

Networknt Light 4J分析報告是怎樣的

自定義Handlers實現示例:

Networknt Light 4J分析報告是怎樣的

三、總結

1、性能方面

Light 4J相比較與現有的Spring Boot、Spring Cloud或Dubbo,由于功能上的簡化,性能上確實會來帶較大的提升,同時它也提供了基礎的服務注冊與發現機制,支持zookeeper,支持容器上云部署。

不同于大應用(monolithic application), 微服務(microservices application)的每一個服務本身所處理的邏輯相對簡單, 不應該把大量的業務邏輯處理和數據庫交互放在單個服務(service API)中。而service to service的交互相對更加頻繁 (servicemesher)。 很多復雜的業務邏輯處理應該分布在多個服務中,然后通過service to service的交互來完成。所以框架本身的性能和service to service的交互中的相應時間就極其重要。對于大規模容器上云部署, 可以顯著地節約成本。

基于一個用戶的測試報告:

For the same functionality, 

Framework      throughput         latency          memory

Spring-Boot       213/s              66.07ms         1.5GB

Light-4j            2319/s             11.39ms         300MB

2、生態方面

Light 4J主要的弱點在于其生態的相對薄弱。 Light 4J目前并沒有完善的生態體系,社區方面熱度也較低,主項目僅有2.2k的star,其他項目基本都只有幾十到幾百的star。相比于Spring健全的生態體系,能力上會弱很多,比如熔斷、限流、配置中心這些能力目前處于沒有實現或僅有簡單方案的狀態,與不同第三方中間件的對接,都要以Handler的模式進行二次開發適配。

3、能力方面

Light 4J框架Handler請求攔截機制對于開發者透明并且可延遲配置, 開發者可以集中精力在業務邏輯從而提高工作效率。  雖然Light 4J本身提供了較多微服務架構下所需的能力, 有些并沒有跟蹤行業標準。例如Light 4J框架內部提供了鏈路跟蹤模塊不支持Open Tracing . 用戶可以按自己的標準設計并開發擴展模塊 (cross-cutting concerns middleware handler)。

關于Networknt Light 4J分析報告是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

平昌县| 台中县| 钟祥市| 曲周县| 红安县| 嘉峪关市| 华宁县| 慈利县| 揭东县| 全南县| 福建省| 新竹市| 潜江市| 密云县| 文成县| 揭阳市| 汶川县| 高平市| 招远市| 龙门县| 绥德县| 合作市| 喀喇| 常熟市| 丰顺县| 新宁县| 沅江市| 罗定市| 钟祥市| 闽侯县| 板桥市| 黎平县| 桃江县| 平湖市| 威信县| 儋州市| 哈尔滨市| 固原市| 佛冈县| 抚松县| 合水县|