前言

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

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

https://segmentfault.com/a/11...

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/sur...

Github托管仓库:https://github.com/dromara/su...

介绍

在支流的前后端拆散架构中,如何通过无效疾速的认证鉴权来爱护后端提供的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的低配置,易扩大,不耦合其余框架,心愿能对系统多场景疾速平安的爱护

比照

~SurenessShiroSpring Security
多框架反对反对需改变反对不反对
REST API反对需改变反对反对
Websocket反对不反对不反对
过滤链匹配优化的字典匹配树ant匹配ant匹配
注解反对反对反对反对
Servlet反对反对反对
JAX-RS反对不反对不反对
权限动静批改反对需改变反对需改变反对
性能速度较快较慢较慢
学习曲线简略简略平缓

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

原生反对样例

  • [x] Sureness集成Spring Boot样例(配置文件计划) sample-bootstrap
  • [x] Sureness集成Spring Boot样例(数据库计划) sample-tom
  • [x] Sureness集成Quarkus样例 sample-quarkus
  • [x] Sureness集成Javalin样例 sample-javalin
  • [x] Sureness集成Ktor样例 sample-ktor
  • [x] Sureness集成Spring Webflux样例 sample-spring-webflux
  • [x] Sureness集成Micronaut样例 sample-micronaut
  • [x] Sureness集成MicroProfile样例 sample-microProfile
  • [x] Sureness集成Jfinal样例 sample-jfinal
  • [x] Sureness集成Solon样例 sample-solon
  • [x] Sureness集成Spring Gateway样例 sample-spring-gateway
  • [x] Sureness集成Zuul样例 sample-zuul
  • [x] Sureness集成Session样例 sureness-session
  • [x] Sureness集成分布式缓存Session样例 sureness-redis-session
  • [x] More samples todo

想要理解更多请参考:https://gitee.com/dromara/sur...

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...

Gitee托管仓库:https://gitee.com/dromara/ima...

介绍

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/ima...

MaxKey

MaxKey单点登录认证零碎是业界当先的企业级IAM身份治理和认证框架,产品化水平很高,多家出名公司的抉择!

官方网站:https://www.maxkey.top/

Gitee托管仓库:https://gitee.com/dromara/MaxKey

Github托管仓库:https://github.com/dromara/Ma...

介绍

MaxKey单点登录认证零碎(Single Sign On System),谐音马克思的钥匙寓意是最大钥匙,是业界当先的企业级IAM身份治理和认证产品,反对OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等标准协议,提供简略、规范、平安和凋谢的用户身份治理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限治理和资源管理等。

个性

  1. 规范认证协定:
序号协定反对
1.1OAuth 2.x/OpenID Connect
1.2SAML 2.0
1.3JWT
1.4CAS
1.5FormBased
1.6TokenBased(Post/Cookie)
1.7ExtendApi
1.8EXT
  1. 登录反对
序号登录形式反对
2.1动静验证码字母/数字/算术
2.2双因素认证短信/工夫令牌/邮件
2.3短信认证腾讯云短信/阿里云短信/网易云信
2.4工夫令牌登录易/Google/Microsoft Authenticator/FreeOTP/反对TOTP或者HOTP
2.5域认证Kerberos/SPNEGO/AD域
2.6LDAPOpenLDAP/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我的项目了,用好这些框架/工具,真的能让工作效率大大晋升。

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