這個開源組織里的項目都是精品(第二彈)

前言

之前我寫過一篇文章——《這個開源組織里的項目都是精品》,裏面列舉了Dromara開源組織的4個java項目,每一個都輕量且實用,受到了很多小夥伴的喜愛。Dromara這個開源組織里的項目只針對Java,細看了下,都是能提高生產效率,告別加班的神器。這次我又從中挑出了5個精品項目,推薦給大家。

如果你沒看過上一篇系列文章,那也建議你去回顧下:

//mp.weixin.qq.com/s/rLYiwKgNkv9eFMykWdrA3w

Cubic

首先我要介紹的是Cubic,一站式問題定位平台!線程棧監控、線程池監控、動態arthas命令集、依賴分析等等等,強不強大,香不香?

官方網站://cubic.jiagoujishu.com/

Gitee託管倉庫://gitee.com/dromara/cubic

Github託管倉庫://github.com/dromara/cubic

介紹

一站式問題定位平台,還在為線上問題而煩惱嗎?

線程棧監控、線程池監控、動態arthas命令集、依賴分析等等等,致力於應用級監控,幫助開發人員快速定位問題。

有什麼特性

  • 1、兼容性:整體監控不管你是IDC、ECS、Docker部署,都可完美兼容

  • 2、易用: 無需任何配置,開箱即用,基於agent無侵入接入,升級應用端無感知

  • 3、強大: 支持對應用的基礎監控、堆棧監控、線程池監控等等

  • 4、高擴展:提供良好的擴展接口,給你自主選擇

使用後能帶來怎樣工作效率上的提升

權限認證
實例列表
實例心跳監測
實例基礎信息採集
服務器信息採集
JVM基礎信息採集
啟動參數採集
依賴包檢測
arthas動態命令集支持
歷史線程棧獲取(分鐘級)
實時線程棧獲取
線程池監控

功能展示

實例中心(展示當前實例信息)

輸入圖片說明

基礎信息(點擊實例-》展示當前實例的基礎信息)

輸入圖片說明

依賴監控(點擊實例-》展示當前實例的依賴包信息)

輸入圖片說明

Arthas命令操作

輸入圖片說明

輸入圖片說明

線程池監控

輸入圖片說明

實時線程棧

實時線程棧

歷史線程棧

歷史線程棧

想要了解更多請參考://gitee.com/dromara/cubic

Sureness

丟掉Shiro吧,也別再用Spring Security了,簡單易用多語言多框架支持,基於RESTAPI的強大國產鑒權框架,效率神器!

官方網站://usthe.com/sureness

Gitee託管倉庫://gitee.com/dromara/sureness

Github託管倉庫://github.com/dromara/sureness

介紹

在主流的前後端分離架構中,如何通過有效快速的認證鑒權來保護後端提供的REST API變得尤為重要。對現存框架,不原生支持RESTfulApache Shiro
還是深度綁定SpringSpring Security,或多或少都不是我們的理想型。
於是乎Sureness誕生了,我們希望能解決這些,提供一個面向REST API無框架依賴,可以動態修改權限多認證策略更快速度易用易擴展的認證鑒權框架。

特性

Sureness 是我們在深度使用 Apache Shiro 之後,吸取其優點全新設計開發的一個認證鑒權框架
面向 REST API 的認證鑒權,基於 RBAC (用戶-角色-資源)主要關注於對 API 的安全保護
無特定Web框架依賴,開箱即用(已有 Spring Boot,Quarkus,Javalin,Ktor,Micronaut,Jfinal,Solon 等集成樣例)
支持動態修改權限配置(動態修改配置每個 API 誰有權訪問)
支持 Websocket ,主流 HTTP 容器 ServletJAX-RSSpring Reactive
支持多種認證策略, JWT, Basic Auth, Digest Auth … 可擴展自定義認證方式
基於改進的字典匹配樹擁有的高性能
良好的擴展接口, 樣例和文檔助急速理解擴展使用
Sureness的低配置,易擴展,不耦合其他框架,希望能對系統多場景快速安全的保護

對比

~ Sureness Shiro Spring Security
多框架支持 支持 需改動支持 不支持
REST API 支持 需改動支持 支持
Websocket 支持 不支持 不支持
過濾鏈匹配 優化的字典匹配樹 ant匹配 ant匹配
註解支持 支持 支持 支持
Servlet 支持 支持 支持
JAX-RS 支持 不支持 不支持
權限動態修改 支持 需改動支持 需改動支持
性能速度 較快 較慢 較慢
學習曲線 簡單 簡單 陡峭

benchmark

基準測試顯示Sureness對比無權限框架應用損耗0.026ms性能,Shiro損耗0.088ms,Spring Security損耗0.116ms
性能差距會隨着api匹配鏈的增加而進一步拉大
詳見基準測試

原生支持樣例

想要了解更多請參考://gitee.com/dromara/sureness

TLog

十分鐘即可接入,一款神器的日誌框架,支持眾多的框架和主流RPC,讓你的日誌馬上升級,變得可追溯!

官方網站://yomahub.com/tlog

Gitee託管倉庫://gitee.com/dromara/TLog

Github託管倉庫://github.com/dromara/TLog

介紹

隨着微服務盛行,很多公司都把系統按照業務邊界拆成了很多微服務,在排錯查日誌的時候。因為業務鏈路貫穿着很多微服務節點,導致定位某個請求的日誌以及上下游業務的日誌會變得有些困難。

這時候很多童鞋會開始考慮上SkyWalking,Pinpoint等分佈式追蹤系統來解決,基於OpenTracing規範,而且通常都是無侵入性的,並且有相對友好的管理界面來進行鏈路Span的查詢。

但是搭建分佈式追蹤系統,熟悉以及推廣到全公司的系統需要一定的時間周期,而且當中涉及到鏈路span節點的存儲成本問題,全量採集還是部分採集?如果全量採集,就以SkyWalking的存儲來舉例,ES集群搭建至少需要5個節點。這就需要增加服務器成本。況且如果微服務節點多的話,一天下來產生幾十G上百G的數據其實非常正常。如果想保存時間長點的話,也需要增加服務器磁盤的成本。

當然分佈式追蹤系統是一個最終的解決方案,如果您的公司已經上了分佈式追蹤系統,那TLog並不適用。

TLog提供了一種最簡單的方式來解決日誌追蹤問題,它不收集日誌,也不需要另外的存儲空間,它只是自動的對你的日誌進行打標籤,自動生成TraceId貫穿你微服務的一整條鏈路。並且提供上下游節點信息。適合中小型企業以及想快速解決日誌追蹤問題的公司項目使用。

為此TLog適配了三大日誌框架,支持自動檢測適配。支持dubbo,dubbox,spring cloud三大RPC框架,更重要的是,你的項目接入TLog,可能連十分鐘就不需要 :)

項目特性

目前TLog的支持的特性如下:

  • 通過對日誌打標籤完成輕量級微服務日誌追蹤
  • 提供三種接入方式:javaagent完全無侵入接入,位元組碼一行代碼接入,基於配置文件的接入
  • 對業務代碼無侵入式設計,使用簡單,10分鐘即可接入
  • 支持常見的log4j,log4j2,logback三大日誌框架,並提供自動檢測,完成適配
  • 支持dubbo,dubbox,springcloud三大RPC框架
  • 支持Spring Cloud Gateway和Soul網關
  • 適配HttpClient和Okhttp的http調用標籤傳遞
  • 支持三種任務框架,JDK的TimerTask,Quartz,XXL-JOB
  • 支持日誌標籤的自定義模板的配置,提供多個系統級埋點標籤的選擇
  • 支持異步線程的追蹤,包括線程池,多級異步線程等場景
  • 幾乎無性能損耗,快速穩定,經過壓測,損耗在0.01%

接入方式

使用後你的每行日誌會變成以下格式

想要了解更多請參考://gitee.com/dromara/TLog

ImageCombiner

無需P圖,用Java也能合成很好看的圖,簡單的使用方式,服務端批量合圖利器!

官方網站://dromara.gitee.io/image-combiner

Gitee託管倉庫://gitee.com/dromara/image-combiner

介紹

ImageCombiner是一個專門用於Java服務端圖片合成的工具,沒有很複雜的功能,追求簡單實用,從實際業務場景出發,提供簡單的接口,幾行代碼即可實現圖片拼合(當然用於合成水印也可以),特別適合圖片營銷、產品分享等需要實時生成圖片場景。

特性

素材上支持圖片、文本、矩形三種,支持元素的定位、縮放、旋轉、圓角、透明度、顏色、字體、字號、刪除線、居中繪製、文本自動換行等特性,足夠覆蓋圖片合成的日常需求。項目不依賴任何框架,完全基於JDK本身編寫,沒有各種花里胡哨的東西,性能還是相當不錯的。

效率提升

通過對Graphics2D的封裝和元素模型的提煉,屏蔽了圖像處理細節,把複雜的編碼簡化為設置各個元素的位置、屬性即可,作者日常工作中,一個約含十餘個元素的複雜圖片合成,開發加調試(主要是對比設計稿還原度)20分鐘即可搞定,極大的釋放了生產力。

效果預覽

最簡單的例子

public void simpleDemo() throws Exception {

    //合成器
    ImageCombiner combiner = new ImageCombiner("//xxx.com/image/bg.jpg", OutputFormat.JPG);

    //加圖片元素
    combiner.addImageElement("//xxx.com/image/product.png", 0, 300)
            .setAlpha(.8f)          //透明度(0.0~1.0)
            .setRotate(45)          //旋轉(0~360)
            .setBlur(20);           //高斯模糊(1~100);

    //加文本元素
    combiner.addTextElement("周末大放送", 0, 150, 1400)
            .setCenter(true)        //居中繪製(會忽略x坐標,改為自動計算)
            .setColor(Color.Red)    //顏色

    //執行圖片合併
    combiner.combine();

    //可以獲取流(並上傳oss等)
    InputStream is = combiner.getCombinedImageStream();

    //也可以保存到本地
    combiner.save("d://image.jpg");

想要了解更多請參考://gitee.com/dromara/image-combiner

MaxKey

MaxKey單點登錄認證系統是業界領先的企業級IAM身份管理和認證框架,產品化程度很高,多家知名公司的選擇!

官方網站://www.maxkey.top/

Gitee託管倉庫://gitee.com/dromara/MaxKey

Github託管倉庫://github.com/dromara/MaxKey

介紹

MaxKey單點登錄認證系統(Single Sign On System),諧音馬克思的鑰匙寓意是最大鑰匙,是業界領先的企業級IAM身份管理和認證產品,支持OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等標準協議,提供簡單、標準、安全和開放的用戶身份管理(IDM)、身份認證(AM)、單點登錄(SSO)、RBAC權限管理和資源管理等。

特性

  1. 標準認證協議:
序號 協議 支持
1.1 OAuth 2.x/OpenID Connect
1.2 SAML 2.0
1.3 JWT
1.4 CAS
1.5 FormBased
1.6 TokenBased(Post/Cookie)
1.7 ExtendApi
1.8 EXT
  1. 登錄支持
序號 登錄方式 支持
2.1 動態驗證碼 字母/數字/算術
2.2 雙因素認證 短訊/時間令牌/郵件
2.3 短訊認證 騰訊雲短訊/阿里雲短訊/網易雲信
2.4 時間令牌 登錄易/Google/Microsoft Authenticator/FreeOTP/支持TOTP或者HOTP
2.5 域認證 Kerberos/SPNEGO/AD域
2.6 LDAP OpenLDAP/ActiveDirectory/標準LDAP服務器
2.7 社交賬號 微信/QQ/微博/釘釘/Google/Facebook/其他
2.8 掃碼登錄 企業微信/釘釘掃碼登錄
  1. 提供標準的認證接口以便於其他應用集成SSO,安全的移動接入,安全的API、第三方認證和互聯網認證的整合。
  2. 提供用戶生命周期管理,支持SCIM 2協議,基於Apache Kafka代理,通過連接器(Connector)實現身份供給同步。
  3. 認證中心具有平台無關性、環境多樣性,支持Web、手機、移動設備等, 如Apple iOS,Andriod等,將認證能力從B/S到移動應用全面覆蓋。
  4. 多種認證機制並存,各應用系統可保留原有認證機制,同時集成認證中心的認證;應用具有高度獨立性,不依賴認證中心,又可用使用認證中心的認證,實現單點登錄。
  5. 基於Java EE平台,採用Spring、MySQL、Tomcat、Redis、Apache Kafka等開源技術,微服務架構,擴展性強。
  6. 開源、安全、自主可控,許可證 Apache 2.0 License & MaxKey版權聲明。

界面預覽

想要了解更多請參考://gitee.com/dromara/MaxKey

最後

其實Dromara開源社區還有最知名的項目(也是star最多的項目)——Hutool,那我為什麼不寫呢。我想說,這框架普及率太高了,幾乎是可以取代apache common包,guava包的存在,程序員應該每個人都用下。一篇文章不足以寫出Hutool這個框架的全面性和強大。以後留一篇專門介紹Hutool這個框架。

以上推薦的開源項目,也是Dromara Java社區里的精品項目,很多都已經是GVP項目了,用好這些框架/工具,真的能讓工作效率大大提升。

最後,看到這的童鞋,點贊,分享,在看點起來啊!

Tags: