说明:以下都是项目中使用过的,后续将持续更新!!!
1、开源 Java 诊断工具 Arthas
Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具,深受开发者喜爱。
Arthas 采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
地址:
GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器ArthasAlibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthashttps://github.com/alibaba/arthas妥妥的问题排查神器。
2、Java 的 JSON 处理器 fastjson
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
主要特点:快速 FAST (比其它任何基于 Java 的解析器和生成器更快,包括 jackson);强大(支持普通 JDK 类包括任意 Java Bean Class、Collection、Map、Date或enum);零依赖(没有依赖其它任何类库除了JDK)。
地址:GitHub - alibaba/fastjson: FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade. - GitHub - alibaba/fastjson: FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.https://github.com/alibaba/fastjson
有一说一,fastjson 性能牛逼,但是安全问题不少,如果对安全要求高的可以考虑 jackson。
3、动态服务发现、配置和服务管理平台 Nacos
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。
地址:
GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. - GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.https://github.com/alibaba/nacos不用怀疑,用过的都说好。
4、服务框架 Dubbo
Apache Dubbo (incubating) |是阿里巴巴的一款高性能、轻量级的开源 Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
地址:
GitHub - apache/dubbo: The java implementation of Apache Dubbo. An RPC and microservice framework.The java implementation of Apache Dubbo. An RPC and microservice framework. - GitHub - apache/dubbo: The java implementation of Apache Dubbo. An RPC and microservice framework.https://github.com/apache/dubbo
RPC 的性能肯定比 Http 性能好。
5、Java 解析 Excel 工具 easyexcel
Java 解析、生成 Excel 比较有名的框架有 Apache poi、jxl 。但他们都存在一个严重的问题就是非常的耗内存,poi 有一套 SAX 模式的 API 可以一定程度的解决一些内存溢出的问题,但 POI 还是有一些缺陷,比如 07 版 Excel 解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel 重写了 poi 对 07 版 Excel 的解析,能够原本一个 3M 的 excel 用 POI sax 依然需要 100M 左右内存降低到 KB 级别,并且再大的 excel 不会出现内存溢出,03 版依赖 POI 的 sax 模式。在上层做了模型转换的封装,让使用者更加简单方便。
地址:GitHub - alibaba/easyexcel: 快速、简洁、解决大文件内存溢出的java处理Excel工具快速、简洁、解决大文件内存溢出的java处理Excel工具. Contribute to alibaba/easyexcel development by creating an account on GitHub.https://github.com/alibaba/easyexcel
excel 处理使用 easyexcel 再也不用担心内存问题了。
6、基于 Netty 的网络通信框架 SOFABolt
SOFABolt 是蚂蚁金融服务集团开发的一套基于 Netty 实现的网络通信框架。
为了让 Java 程序员能将更多的精力放在基于网络通信的业务逻辑实现上,而不是过多的纠结于网络底层 NIO 的实现以及处理难以调试的网络问题,Netty 应运而生。
为了让中间件开发者能将更多的精力放在产品功能特性实现上,而不是重复地一遍遍制造通信框架的轮子,SOFABolt 应运而生。
地址:GitHub - sofastack/sofa-bolt: SOFABolt is a lightweight, easy to use and high performance remoting framework based on Netty.SOFABolt is a lightweight, easy to use and high performance remoting framework based on Netty. - GitHub - sofastack/sofa-bolt: SOFABolt is a lightweight, easy to use and high performance remoting framework based on Netty.https://github.com/alipay/sofa-bolt
对系统性能有较高的要求的,可以考虑,公司项目中用过,目前系统运行良好。
7、Java 代码规约扫描插件 P3C
项目包含三部分:PMD 实现、IntelliJ IDEA 插件、Eclipse 插件
地址:https://github.com/alibaba/p3chttps://github.com/alibaba/p3c
使用该插件能避免很多低级错误。
8. 消息中间件 Apache RocketMQ
RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点:
- 能够保证严格的消息顺序
- 提供丰富的消息拉取模式
- 高效的订阅者水平扩展能力
- 实时的消息订阅机制
- 亿级消息堆积能力
地址:https://github.com/apache/rocketmqhttps://github.com/apache/rocketmq
9、高可用流量管理框架 Sentinel
Sentinel 是面向微服务的轻量级流量控制框架,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。
地址:https://github.com/alibaba/Sentinelhttps://github.com/alibaba/Sentinel
整体来看有点重,如果只是简单限流建议使用 Guava 的 RateLimter 。
10、分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba
Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。
地址:GitHub - alibaba/spring-cloud-alibaba: Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware. - GitHub - alibaba/spring-cloud-alibaba: Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.https://github.com/spring-cloud-incubator/spring-cloud-alibaba
11、JDBC 连接池、监控组件 Druid
Druid是一个 JDBC 组件。
1.监控数据库访问性能。
2.提供了一个高效、功能强大、可扩展性好的数据库连接池。
3.数据库密码加密。
4.SQL执行日志。
地址:GitHub - alibaba/druid: 阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池 - GitHub - alibaba/druid: 阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池https://github.com/alibaba/druid
12、apns4j
apns4j 是 Apple Push Notification Service 的 Java 实现!
地址:GitHub - teaey/apns4j: Apple Push Notification Service Implement with Java(java apns)Apple Push Notification Service Implement with Java(java apns) - GitHub - teaey/apns4j: Apple Push Notification Service Implement with Java(java apns)https://github.com/teaey/apns4j
项目中用到了 Apple Push ,后续集成到项目中。