这个开源组织里的项目都是精品(第二弹)

前言

之前我写过一篇文章——《这个开源组织里的项目都是精品》,里面列举了Dromara开源组织的4个java项目,每一个都轻量且实用,受到了很多小伙伴的喜爱。Dromara这个开源组织里的项目只针对Java,细看了下,都是能提高生产效率,告别加班的神器。这次我又从中挑出了5个精品项目,推荐给大家。

如果你没看过上一篇系列文章,那也建议你去回顾下:

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

Cubic

首先我要介绍的是Cubic,一站式问题定位平台!线程栈监控、线程池监控、动态arthas命令集、依赖分析等等等,强不强大,香不香?

官方网站:https://cubic.jiagoujishu.com/
Gitee托管仓库:https://gitee.com/dromara/cubic
Github托管仓库:https://github.com/dromara/cubic

这个开源组织里的项目都是精品(第二弹)

介绍

一站式问题定位平台,还在为线上问题而烦恼吗?

线程栈监控、线程池监控、动态arthas命令集、依赖分析等等等,致力于应用级监控,帮助开发人员快速定位问题。

有什么特性

  • 1、兼容性:整体监控不管你是IDC、ECS、Docker部署,都可完美兼容
  • 2、易用: 无需任何配置,开箱即用,基于agent无侵入接入,升级应用端无感知
  • 3、强大: 支持对应用的基础监控、堆栈监控、线程池监控等等
  • 4、高扩展:提供良好的扩展接口,给你自主选择

使用后能带来怎样工作效率上的提升

权限认证 实例列表 实例心跳监测 实例基础信息采集 服务器信息采集 JVM基础信息采集 启动参数采集 依赖包检测 arthas动态命令集支持 历史线程栈获取(分钟级) 实时线程栈获取 线程池监控

功能展示

实例中心(展示当前实例信息)

这个开源组织里的项目都是精品(第二弹)

基础信息(点击实例-》展示当前实例的基础信息)

这个开源组织里的项目都是精品(第二弹)

依赖监控(点击实例-》展示当前实例的依赖包信息)

这个开源组织里的项目都是精品(第二弹)

Arthas命令操作

这个开源组织里的项目都是精品(第二弹)

这个开源组织里的项目都是精品(第二弹)

线程池监控

这个开源组织里的项目都是精品(第二弹)

实时线程栈

这个开源组织里的项目都是精品(第二弹)

历史线程栈

这个开源组织里的项目都是精品(第二弹)

想要了解更多请参考:https://gitee.com/dromara/cubic

Sureness

丢掉Shiro吧,也别再用Spring Security了,简单易用多语言多框架支持,基于RESTAPI的强大国产鉴权框架,效率神器!

官方网站:https://usthe.com/sureness
Gitee托管仓库:https://gitee.com/dromara/sureness
Github托管仓库:https://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

支持 不支持 不支持
权限动态修改

支持 需改动支持 需改动支持
性能速度

较快 较慢 较慢
学习曲线

简单 简单 陡峭

这个开源组织里的项目都是精品(第二弹)

基准测试显示Sureness对比无权限框架应用损耗0.026ms性能,Shiro损耗0.088ms,Spring Security损耗0.116ms
性能差距会随着api匹配链的增加而进一步拉大
详见基准测试

原生支持样例

想要了解更多请参考:https://gitee.com/dromara/sureness

TLog

十分钟即可接入,一款神器的日志框架,支持众多的框架和主流RPC,让你的日志马上升级,变得可追溯!

官方网站:http://yomahub.com/tlog
Gitee托管仓库:https://gitee.com/dromara/TLog
Github托管仓库:https://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%

接入方式

这个开源组织里的项目都是精品(第二弹)

使用后你的每行日志会变成以下格式

这个开源组织里的项目都是精品(第二弹)

想要了解更多请参考:https://gitee.com/dromara/TLog

ImageCombiner

无需P图,用Java也能合成很好看的图,简单的使用方式,服务端批量合图利器!

官方网站:http://dromara.gitee.io/image-combiner
Gitee托管仓库:https://gitee.com/dromara/image-combiner

这个开源组织里的项目都是精品(第二弹)

介绍

ImageCombiner是一个专门用于Java服务端图片合成的工具,没有很复杂的功能,追求简单实用,从实际业务场景出发,提供简单的接口,几行代码即可实现图片拼合(当然用于合成水印也可以),特别适合图片营销、产品分享等需要实时生成图片场景。

特性

素材上支持图片、文本、矩形三种,支持元素的定位、缩放、旋转、圆角、透明度、颜色、字体、字号、删除线、居中绘制、文本自动换行等特性,足够覆盖图片合成的日常需求。项目不依赖任何框架,完全基于JDK本身编写,没有各种花里胡哨的东西,性能还是相当不错的。

效率提升

通过对Graphics2D的封装和元素模型的提炼,屏蔽了图像处理细节,把复杂的编码简化为设置各个元素的位置、属性即可,作者日常工作中,一个约含十余个元素的复杂图片合成,开发加调试(主要是对比设计稿还原度)20分钟即可搞定,极大的释放了生产力。

效果预览

这个开源组织里的项目都是精品(第二弹)

最简单的例子

public void simpleDemo() throws Exception {

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

    //加图片元素
    combiner.addImageElement("http://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");

想要了解更多请参考:https://gitee.com/dromara/image-combiner

MaxKey

MaxKey单点登录认证系统是业界领先的企业级IAM身份管理和认证框架,产品化程度很高,多家知名公司的选择!

官方网站:https://www.maxkey.top/
Gitee托管仓库:https://gitee.com/dromara/MaxKey
Github托管仓库:https://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版权声明。

界面预览

这个开源组织里的项目都是精品(第二弹)

这个开源组织里的项目都是精品(第二弹)

这个开源组织里的项目都是精品(第二弹)

这个开源组织里的项目都是精品(第二弹)

想要了解更多请参考:https://gitee.com/dromara/MaxKey

最后

其实Dromara开源社区还有最知名的项目(也是star最多的项目)——Hutool,那我为什么不写呢。我想说,这框架普及率太高了,几乎是可以取代apache common包,guava包的存在,程序员应该每个人都用下。一篇文章不足以写出Hutool这个框架的全面性和强大。以后留一篇专门介绍Hutool这个框架。

以上推荐的开源项目,也是Dromara Java社区里的精品项目,很多都已经是GVP项目了,用好这些框架/工具,真的能让工作效率大大提升。

最后,看到这的童鞋,点赞,分享,在看点起来啊!

这个开源组织里的项目都是精品(第二弹)

Original: https://www.cnblogs.com/bryan31/p/15406243.html
Author: 铂赛东
Title: 这个开源组织里的项目都是精品(第二弹)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586239/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 这个开源组织里的项目都是精品

    前言 在开源中国里,不知道大家有没有留意到一个Java开源组织——Dromara? 这个组织是由Apache ShenYu(前身是Soul网关)的作者创立,多位Java开源作者参与…

    Java 2023年6月8日
    077
  • java 启动脚本

    #!bin/bash source /etc/profile MEM_TOTAL=cat /proc/meminfo | grep 'MemTotal' | a…

    Java 2023年5月29日
    068
  • Kotlin学习快速入门(8)—— 委托

    原文地址:Kotlin学习快速入门(8)—— 属性委托 – Stars-One的杂货小窝委托其实是一种设计模式,但Kotlin把此特性编写进了语法中,可以方便开发者快速…

    Java 2023年6月13日
    092
  • Java判定一个数值是否在指定的开闭区间范围内

    对于开闭区间,在数学中的表示方式通常为 () 和 [],小括号代表开放区间,中括号代表封闭区间,而它们的区别主要在于是否包含 = 等于号,开闭区间通常会分为以下一些情形: (1, …

    Java 2023年6月8日
    052
  • 刘亦菲生日当天,引发了我对正则的思考

    前两天从网上采集到一条短视频数据(刷短视频),发现六公主连排5部刘亦菲主演的电影!甚是震惊,太有牌面了,看了一下日子是8月25号,嗷,原来当天是刘亦菲的生日。巧了,正好也是我家柴犬…

    Java 2023年6月14日
    085
  • [Java] Hashtable 源码简要分析

    线程安全。 Key、Value均不能为null。 包含了一个Entry[]数组,而Entry又是一个链表,用来处理冲突。 每个Key对应了Entry数组中固定的位置(记为index…

    Java 2023年5月29日
    0101
  • 通用树形结构的迭代与组合模式实现方案

    日常开发过程过程中。树形结构运用的非常频繁。 例如:公司组织结构、各种分类结构、分组结构等等。 SET FOREIGN_KEY_CHECKS = 0; CREATE TABLE I…

    Java 2023年6月9日
    0114
  • 如何规避容器内做Java堆dump导致容器崩溃的问题

    写在前边 最近公司生产环境的容器云上出了个性能问题,为了做性能分析,使用 JDK 自带的 jmap 收集堆dump,出现了内存溢出导致了容器崩溃。 本篇文章将带你探究,如何规避容器…

    Java 2023年5月29日
    0156
  • SpringBoot接口-如何优雅的对参数进行校验?

    在以SpringBoot开发Restful接口时, 对于接口的查询参数后台也是要进行校验的,同时还需要给出校验的返回信息放到上文我们统一封装的结构中。那么如何优雅的进行参数的统一校…

    Java 2023年6月6日
    098
  • 性能测试案例全过程方案八———混合场景设计(多线程组并发运行)

    JMeter压力测试(一)中设置线程组的线程数,即执行时的并发用户数,适用于单个线程组的并发测试。 如果测试需求出现如下场景,该如何使用JMeter实现压力测试呢?即JMeter如…

    Java 2023年5月30日
    0103
  • [学习笔记] Java数组

    数组是Java中一种重要的数据结构,用来存储固定大小的同类型元素; 数组特点 数组元素可以是基本数据类型,也可以是引用数据类型,数组本身是引用数据类型; 在创建数组时,数组的所有元…

    Java 2023年6月5日
    059
  • Java面试题整理

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    080
  • cenos7搭建gitlab

    git、github和gitlab的区别 git:是一种版本控制系统,是一个命令,是一种工具 gitlib:是基于实现功能的开发库 github:是一个基于git实现的在线代码仓库…

    Java 2023年6月7日
    080
  • 设计模式–Bulider模式

    起因:最近在做统计计算,创建的实体中属性比较多,都是一些数值,一开始是通过get、set方法进行赋值,占用了很多业务代码方法的长度,可读…

    Java 2023年6月5日
    088
  • 学习进度第二次报告

    学习课程以及部分学习知识总结: 我的目标计划: 通过学习CSS基础知识,准备对我之前写的一些网页进行精细修饰。然后再去B站以及CSDN等技术网站上 多找找关于网页修饰这一类的课程和…

    Java 2023年6月6日
    072
  • 跟我学Python图像处理丨傅里叶变换之高通滤波和低通滤波

    摘要:本文讲解基于傅里叶变换的高通滤波和低通滤波。 一.高通滤波 傅里叶变换的目的并不是为了观察图像的频率分布(至少不是最终目的),更多情况下是为了对频率进行过滤,通过修改频率以达…

    Java 2023年6月15日
    076
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球