前言
之前我写过一篇文章——《这个开源组织里的我的项目都是精品》,外面列举了 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
变得尤为重要。对现存框架,不原生反对 RESTful
的Apache Shiro
,
还是深度绑定 Spring
的Spring Security
,或多或少都不是咱们的现实型。
于是乎 Sureness
诞生了,咱们心愿能解决这些,提供一个面向 REST API, 无框架依赖 ,能够 动静批改权限 , 多认证策略 , 更快速度 , 易用易扩大 的认证鉴权框架。
个性
Sureness 是咱们在深度应用
Apache Shiro
之后, 汲取其长处全新设计开发的一个认证鉴权框架
面向REST API
的认证鉴权, 基于RBAC
(用户 - 角色 - 资源)次要关注于对API
的平安爱护
无特定 Web 框架依赖, 开箱即用 (已有Spring Boot,Quarkus,Javalin,Ktor,Micronaut,Jfinal,Solon
等集成样例)
反对动静批改权限配置 (动静批改配置每个API
谁有权拜访)
反对Websocket
, 支流HTTP
容器Servlet
,JAX-RS
,Spring 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 匹配链的减少而进一步拉大
详见基准测试
原生反对样例
- [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 | 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 | 低 |
- 登录反对
序号 | 登录形式 | 反对 |
---|---|---|
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 | 扫码登录 | 企业微信 / 钉钉扫码登录 |
- 提供规范的认证接口以便于其余利用集成 SSO,平安的挪动接入,平安的 API、第三方认证和互联网认证的整合。
- 提供用户生命周期治理,反对 SCIM 2 协定,基于 Apache Kafka 代理,通过连接器 (Connector) 实现身份供应同步。
- 认证核心具备平台无关性、环境多样性,反对 Web、手机、挪动设施等, 如 Apple iOS,Andriod 等,将认证能力从 B / S 到挪动利用全面笼罩。
- 多种认证机制并存,各利用零碎可保留原有认证机制,同时集成认证核心的认证;利用具备高度独立性,不依赖认证核心,又可用应用认证核心的认证,实现单点登录。
- 基于 Java EE 平台,采纳 Spring、MySQL、Tomcat、Redis、Apache Kafka 等开源技术,微服务架构,扩展性强。
- 开源、平安、自主可控,许可证 Apache 2.0 License & MaxKey 版权申明。
界面预览
想要理解更多请参考:https://gitee.com/dromara/MaxKey
最初
其实 Dromara 开源社区还有最出名的我的项目(也是 star 最多的我的项目)——Hutool,那我为什么不写呢。我想说,这框架普及率太高了,简直是能够取代 apache common 包,guava 包的存在,程序员应该每个人都用下。一篇文章不足以写出 Hutool 这个框架的全面性和弱小。当前留一篇专门介绍 Hutool 这个框架。
以上举荐的开源我的项目,也是 Dromara Java 社区里的精品我的项目,很多都曾经是 GVP 我的项目了,用好这些框架 / 工具,真的能让工作效率大大晋升。
最初,看到这的童鞋,点赞,分享,在看点起来啊!