当前位置: 首页 > 科技观察

2018年阿里巴巴开源Java牛逼项目汇总

时间:2023-03-13 20:34:44 科技观察

攻略:开源彰显人类合作与成果共享的魅力。每一项技术的发展都是站在巨人的肩膀上。很多技术的创新和发展往往是基于开源开发的,任何一家互联网公司都不可能依靠自己的技术而不使用开源技术。阿里巴巴的各个团队都诚心诚意地将自己踩过的坑和总结出来的经验整合成开源项目供业内大家使用,希望能帮助到其他人解决问题。整理了一些阿里巴巴重要的开源项目,希望对大家有所帮助。(以下项目排名不分先后)一、分布式应用服务开发一站式解决方案SpringCloudAlibabaSpringCloud阿里巴巴致力于提供分布式应用服务开发一站式解决方案。本项目包含了开发分布式应用服务所必需的组件,方便开发者通过SpringCloud编程模型方便地使用这些组件开发分布式应用服务。依托SpringCloudAlibaba,只需添加一些注解和少量配置,即可将SpringCloud应用接入阿里巴巴的分布式应用解决方案,通过阿里巴巴中间件快速构建分布式应用系统。地址:https://github.com/spring-cloud-incubator/spring-cloud-alibaba2。JDBC连接池、监控组件DruidDruid是一个JDBC组件。●监控数据库访问性能。●提供高效、强大、可扩展的数据库连接池。●数据库密码加密。●SQL执行日志。地址:https://github.com/alibaba/druid3。Java的JSON处理器fastjsonfastjson是阿里巴巴工程师开发的一款性能良好的Java语言实现的JSON解析器和生成器。主要特点:快速FAST(比任何其他基于Java的解析器和生成器都快,包括jackson);强大(支持常见的JDK类,包括任何JavaBean类、集合、映射、日期或枚举);零依赖(不依赖除JDK之外的任何其他类库)。地址:https://github.com/alibaba/fastjson4。服务框架DubboApacheDubbo(incubating)是阿里巴巴开源的高性能、轻量级JavaRPC框架,提供面向接口的远程方法调用、智能容错与负载均衡、自动服务注册与发现三大核心能力。地址:https://github.com/alibaba/dubbo5。企业级流计算引擎JStormJStorm是参考ApacheStorm实现的实时流计算框架。它在网络IO、线程模型、资源调度、可用性和稳定性方面做了大量工作。持续改进已被越来越多的企业所采用。JStorm可以看作是storm的java增强版。除了核心的纯java实现外,还包括thrift、python、facetui。从架构上看,其本质是一个基于zk的分布式调度系统。地址:https://github.com/alibaba/jstorm6。apns4japns4j是Apple推送通知服务的Java实现!地址:https://github.com/teaey/apns4j7。分布式数据层TDDLTDDL是基于集中配置的jdbc数据源实现,具有主备、读写分离、数据库动态配置等功能。地址:https://github.com/alibaba/tb_tddl8。轻量级分布式数据访问层CobarClientCobarClient是基于iBatis(更名为MyBatis)和Spring框架的轻量级分布式数据访问层(DAL)。地址:https://github.com/alibaba/cobarclient9。淘宝定制JVM:TaobaoJVMTaobaoJVM基于OpenJDKHotSpotVM,是国内首个优化定制开源服务器版Java虚拟机。目前已经在淘宝和天猫上线,并且全部替换了Oracle官方的JVM版本。它的性能和功能已经初步体现了它的价值。地址:http://jvm.taobao.org10。Java图片处理类库SimpleImageSimpleImage是阿里巴巴的Java图片处理类库,可以实现图片缩略图、水印等处理。地址:https://github.com/alibaba/simpleimage11。Redisjava客户端TedisTedis是另一个redisjava客户端。Tedis的目标是创建一个高可用的Redis解决方案,可以直接在生产环境中使用。地址:https://github.com/justified/tedis12。开源Java诊断工具Arthas阿尔萨斯(Alsace)是阿里巴巴开源的Java诊断工具,非常受开发者欢迎。Arthas采用命令行交互方式,并提供了丰富的Tab自动补全功能,进一步方便了问题的定位和诊断。地址:https://alibaba.github.io/arthas/13。动态服务发现、配置和服务管理平台NacosNacos致力于帮助您发现、配置和管理微服务。Nacos提供了一套简单易用的特性来帮助您实现动态服务发现、服务配置管理、服务和流量管理。Nacos帮助您更敏捷、更轻松地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构(如微服务范式、云原生范式)的服务基础设施。地址:https://nacos.io/zh-cn/14.Java解析Excel工具easyexcelJava解析生成Excel比较出名的框架有Apachepoi和jxl。但是它们都有一个严重的问题,就是消耗大量内存。poi有一个SAX模式的API,可以在一定程度上解决一些内存溢出问题,但是POI还是有一些缺陷。是在内存中完成的,内存消耗还是很大的。easyexcel重写了poi对07版excel的分析,可以将3M的excel,POIsax所需内存减少到100M左右,减少到KB级别,而且无论excel多大,都不会出现内存溢出。版本03依赖于POI的萨克斯模式。模型转换包做在上层,方便用户使用。地址:https://github.com/alibaba/easyexcel15。高可用流量管理框架SentinelSentinel是一个轻量级的微服务流量控制框架,从流量控制、熔断降级、系统负载保护等多个维度保障服务的稳定性。性别。只要SentinelAPI定义的代码是资源,就可以被Sentinel保护。在大多数情况下,您可以使用方法签名、URL甚至服务名称作为资源名称来标识资源。地址:https://github.com/alibaba/Sentinel16。基于MultidimensionalMetrics的系统度量和监控中间件SOFALookoutLookout是一个使用多维度量来度量和监控目标系统的项目。Lookout的多维指标参考Metrics2.0标准。Lookout项目分为客户端和服务器端部分。客户端是一个Java类库,可以植入到你的应用程序代码中来收集指标信息,客户端有更多的细节。服务器代码部分将在下一个版本中提供。通过LOOKOUT服务,可以收集、处理、存储和查询度量数据。另外结合grafana,可以实现数据的可视化。地址:https://github.com/alipay/sofa-lookout17。基于SpringBoot的研发框架SOFABootSOFABoot是蚂蚁金服开源的基于SpringBoot的研发框架。它提供了ReadinessCheck、Class隔离、日志空间隔离等功能。SOFABoot在增强SpringBoot的同时,为用户提供了在SpringBoot中方便地使用SOFAStack相关中间件的能力。地址:https://github.com/alipay/sofa-boot18。轻量级Java类隔离容器SOFAArkSOFAArk是一个基于Java的轻量级类隔离容器,由蚂蚁金服贡献;主要为应用程序提供类隔离和依赖包隔离的能力;基于FatJar技术,可以将应用打包成一个自包含的、可运行的FatJar,应用可以是简单的单模块Java应用,也可以是SpringBoot应用。访问URL以快速入门并获取更多详细信息。地址:https://alipay.github.io/sofastack.github.io/19。分布式链接追踪中间件SOFATracerSOFATracer是一个分布式系统调用追踪的组件,会通过统一的traceId调用链接中的各种网络调用,以日志的形式记录下来,达到透视网络调用的目的。这些日志可用于快速故障发现、服务治理等。地址:https://github.com/alipay/sofa-tracer20。高性能JavaRPC框架SOFARPCSOFARPC是一个高度可扩展、高性能、生产级的JavaRPC框架。蚂蚁金服SOFARPC经历了十多年,五代人的发展历程。SOFARPC致力于简化应用间的RPC调用,为应用提供便捷、透明、稳定、高效的点对点远程服务调用解决方案。为了方便用户和开发者进行功能扩展,SOFARPC提供了丰富的模型抽象和可扩展接口,包括过滤器、路由、负载均衡等,同时围绕SOFARPC框架及其周边组件提供了丰富的微服务治理方案.地址:https://github.com/alipay/sofa-rpc21。基于Netty的网络通信框架SOFABoltSOFABolt是蚂蚁金服开发的一套基于Netty的网络通信框架。为了让Java程序员更专注于基于网络通信的业务逻辑的实现,而不是过多纠结于网络底层NIO的实现和处理难以调试的网络问题,Netty应运而生.为了让中间件开发者更专注于产品功能和特性的实现,而不是重复制造通信框架的轮子,SOFABolt应运而生。地址:https://github.com/alipay/sofa-bolt22。动态非侵入式AOP方案JVM-SandboxJVM-Sandbox,JVM沙箱容器,基于JVM的非侵入式运行时AOP方案。地址:https://github.com/alibaba/jvm-sandbox