大家好,我是Echa。
说到阿里,作为程序员的小编不得不说阿里的达摩院,也就在上周阿里的达摩院又出新科技出来了,友友们猜猜是啥?又看到网传的消息,没错,那就是阿里版ChatGPT(通义千问),内部消息阿里版ChatGPT( 通义千问)预计4月11号面世大众,但现在看申请通义千问内测申请入口已经关闭了,只有邀请码入口了。到时候小编有空给大家出一期。先说说阿里最受欢迎的20个开源项目这个事情。
上周四,小编整理了一篇关于阿里最受欢迎前端开源项目:《阿里最受欢迎的16个前端开源项目》,广受友友们欢迎,有兴趣的可以看看。甚至还有好多友友私信小编强力要求出一期阿里最受欢迎的后端开源项目,你们这是给小编我出难题。但是庆幸的是,小编这点人脉还是有的,在圈内问到了一些,再结合小编平时养成爱收集的良好习惯。
今天小编整理一起分享阿里最受欢迎的20个开源项目,希望给友友们有所帮助,同时祝福友友们身体健健康康、事业蒸蒸日上、财源滚滚而来、日子红红火火、万事顺顺利利。
通义千问官网:https://tongyi.aliyun.com/

通义千问官网

官网:https://arthas.aliyun.com/
Github:https://github.com/alibaba/arthas
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
通常,本地开发环境无法访问生产环境。如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。
开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了。
如果您正在考虑在代码中添加一些日志以帮助解决问题,您将必须经历以下阶段:测试、预发,然后生产。这种方法效率低下,更糟糕的是,该问题可能无法解决,因为一旦 JVM 重新启动,它可能无法复现,如上文所述。
Arthas 旨在解决这些问题。开发人员可以在线解决生产问题。无需 JVM 重启,无需代码更改。 Arthas 作为观察者永远不会暂停正在运行的线程。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
具体如下图:

arthas 官网


Github:github.com/alibaba/fastjson
fastjson 是一个 Java 库,可将 Java 对象转换为其 JSON 表示形式。它也可以用于将 JSON 字符串转换为等效的 Java 对象。
相对其他 JSON 库,fastjson 的优点是快,从 2011 年 fastjson 发布第一个版本后,其性能从未被其他 JSON 库超越。
由于是阿里开源,fastjson 在阿里巴巴内部大规模使用,在数万台服务器上部署。fastjson 在业界也被广泛接受。曾经被开源中国评选为最受欢迎的国产开源软件之一。
Fastjson目标
具体如下图:



Github: https://github.com/alibaba/druid
Druid 是一个 JDBC 组件库,包含数据库连接池、SQL Parser 等组件, 被大量业务和技术产品使用或集成,经历过最严苛线上业务场景考验,是你值得信赖的技术产品。
maven central repository http://repo1.maven.org/maven2/com/alibaba/druid/Maven 依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>Gradle
compile group: 'com.alibaba', name: 'druid', version: '1.1.12'具体如下图:


官网:https://spring.io/projects/spring-cloud-alibaba
Github: https://github.com/alibaba/spring-cloud-alibaba
Spring Cloud阿里巴巴为分布式应用程序开发提供一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用Spring Cloud开发应用程序。
使用Spring Cloud Alibaba,您只需添加一些注释和少量配置即可将Spring Cloud应用程序连接到阿里巴巴的分布式解决方案,并使用阿里巴巴中间件构建分布式应用系统。
特性
具体如下图:



官网:https://www.sofastack.tech/projects/sofa-boot/overview/
Github: https://github.com/alipay/sofa-boot
SOFABoot 是蚂蚁集团开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,上下文隔离,类隔离,日志空间隔离等等能力。
再增强了 Spring Boot 的同时,SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SOFA 中间件的能力。
功能描述
SOFABoot 在 Spring Boot 基础上,提供了以下能力:
具体如下图:


官网:https://cn.dubbo.apache.org/zh-cn/index.html
Github: https://github.com/apache/dubbo
ApacheDubbo是一个基于Java的高性能开源RPC框架。请访问官方网站以获取快速入门指南和文档,以及wiki以获取新闻、常见问题解答和发布说明。
我们现在正在收集Dubbo用户信息,以帮助我们进一步改进Dubbo。

特征
具体如下图:




官网:https://easyexcel.opensource.alibaba.com/
Github: https://github.com/alibaba/easyexcel
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便

具体如下图:


官网:https://easyexcel.opensource.alibaba.com/
Github: https://github.com/alibaba/easyexcel
nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块的开发和它的内部原理,但是国内却没有一本关于这方面的书,源于此我们决定自己来写一本。本书的作者为淘宝核心系统服务器平台组的成员,本书写作的思路是从模块开发逐渐过渡到nginx原理剖析。书籍的内容会定期在这里更新,欢迎大家提出宝贵意见,不管是本书的内容问题,还是字词错误,都欢迎大家提交issue(章节标题的左侧有评注按钮),我们会及时的跟进。
如下图:


官网:https://www.sofastack.tech/projects/sofa-rpc/overview/
Github: https://github.com/sofastack/sofa-rpc
SOFARPC 是蚂蚁金服开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力,具有高可伸缩性,高容错性,目前蚂蚁金服所有的业务的相互间的 RPC 调用都是采用 SOFARPC。SOFARPC 为用户提供了负载均衡,流量转发,链路追踪,链路数据透传,故障剔除等功能。
SOFARPC 还支持不同的协议,目前包括 bolt,RESTful,dubbo,H2C 协议进行通信。其中 bolt 是蚂蚁金融服务集团开放的基于 Netty 开发的网络通信框架。
基本原理

如下图:


Github: https://github.com/alibaba/p3c
我们很高兴向您介绍《阿里巴巴Java编码指南》,该指南整合了阿里巴巴集团技术团队多年来的最佳编程实践。大量的Java编程团队对项目中的代码质量提出了苛刻的要求,因为我们鼓励重用和更好地理解彼此的程序。我们在过去看到过许多编程问题。例如,有缺陷的数据库表结构和索引设计可能会导致软件体系结构缺陷和性能风险。另一个例子是难以维护的令人困惑的代码结构。此外,没有身份验证的易受攻击的代码容易受到黑客的攻击。为了解决这些问题,我们为阿里巴巴的Java开发人员开发了本文档。
如下图:

Github: https://github.com/alibaba/AliSQL
AliSQL是一个源于阿里巴巴集团的MySQL分支。它基于MySQL官方版本,具有许多功能和性能增强。AliSQL已被证明在生产环境中非常稳定和高效。它可以作为MySQL的免费、完全兼容、增强和开源的插件替换。
AliSQL自2016年8月以来一直是一个开源项目。阿里巴巴集团的工程师正在积极开发。此外,它还包括来自Percona、WebScaleSQL和MariaDB的补丁。AliSQL是社区努力的成果。欢迎大家参与进来。
如下图:

官网:https://open.oceanbase.com/
Github: https://github.com/alibaba/oceanbase
OceanBase是由蚂蚁金服、阿里巴巴完全自主研发的金融级分布式关系数据库,始创于2010年。OceanBase具有数据强一致、高可用、高性能、在线扩展、高度兼容SQL标准和主流关系数据库、低成本等特点。OceanBase至今已成功应用于支付宝全部核心业务:交易、支付、会员、账务等系统以及阿里巴巴淘宝(天猫)收藏夹、P4P广告报表等业务。除在蚂蚁金服和阿里巴巴业务系统中获广泛应用外,从2017年开始,OceanBase开始服务外部客户,客户包括南京银行、西安银行、印度Paytm、人保健康险等。
如下图:


官网:https://open.oceanbase.com/
Github: https://github.com/happyfish100/fastdfs
FastDFS只能根据GNU通用公共许可证V3的条款进行复制,该许可证可以在FastDFS源工具包中找到。有关更多详细信息,请访问FastDFS主页。中文:http://www.fastken.com/
FastDFS是一个开源的高性能分布式文件系统。它的主要功能包括:文件存储、文件同步和文件访问(文件上传和文件下载),可以解决高容量和负载平衡问题。FastDFS应满足其服务基于文件的网站的要求,如照片共享网站和视频共享网站。
FastDFS有两个角色:跟踪器和存储。跟踪器负责文件访问的调度和负载平衡。存储器存储文件,其功能是文件管理,包括:文件存储、文件同步、提供文件访问接口。它还管理元数据,这些元数据是表示为文件的键值对的属性。例如:width=1024,键为“width”,值为“1024”。
跟踪器和存储器包含一个或多个服务器。跟踪器或存储集群中的服务器可以随时添加到集群或从集群中删除,而不会影响在线服务。跟踪器集群中的服务器是对等的。
按文件卷/组组织以获得高容量的存储服务器。存储系统包含一个或多个卷,这些卷中的文件是独立的。整个存储系统的容量等于所有卷的容量之和。文件卷包含一个或多个存储服务器,这些服务器之间的文件相同。文件卷中的服务器相互备份,并且所有这些服务器都是负载平衡的。将存储服务器添加到卷中时,该卷中已存在的文件会自动复制到此新服务器,并且在复制完成后,系统会将此服务器联机切换为提供存储服务。
如下图:


官网:https://rocketmq.apache.org/
Github: https://github.com/apache/rocketmq/
Apache RocketMQ是一个分布式消息和流媒体平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性。
它提供了多种功能:
如下图:





Github: https://github.com/killme2008/Metamorphosis
Metamorphosis是淘宝开源的一个Java消息中间件,他类似apache-kafka,但不是一个简单的山寨拷贝,而是做了很多改进和优化,项目的主页在淘蝌蚪上。
这是MetaQ的一个github分支,我做了部分优化和改进,并将meta发布到maven central repository,还做了一些wiki文档,我能承诺的是我个人会持续维护本项目。
MetaQ的淘宝版本已经发展到2.0乃至3.0版本,设计原则发生了变更,有兴趣的可以上它的官方网站看。
本分支应用在京东,支付宝,腾讯等公司的产品上。
如下图:

官网:http://tengine.taobao.org/
Github: https://github.com/alibaba/tengine
Tengine是一款由亚洲最大的电子商务网站淘宝发起的网络服务器。它基于Nginx HTTP服务器,并具有许多高级功能。Tengine在包括淘宝网和天猫网在内的世界100强网站上已经被证明是非常稳定和高效的。
Tengine自2011年12月以来一直是一个开源项目。Tengine团队正在积极开发,其核心成员来自淘宝、搜狗和其他互联网公司。Tengine是一个社区的努力,鼓励每个人都参与进来。
特性
如下图:


Github: https://github.com/alibaba/otter
环境搭建 & 打包
环境搭建:
打包:
项目背景
阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。
otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otter4。
目前同步规模:
工作原理

原理描述:
1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击
2. 典型管理系统架构,manager(web管理)+node(工作节点)
a. manager运行时推送同步配置到node节点
b. node节点将同步状态反馈到manager上
3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.
如下图:

官网:https://graphscope.io/
Github: https://github.com/alibaba/GraphScope
背景
2008年,阿里巴巴开始尝试使用 MySQL 支撑其业务,开发了围绕 MySQL 相关的中间件和工具,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机 Oracle 无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从 Oracle 数据迁移到 MySQL 上,完成去 IOE 的重要一步工作。
GraphScope是一个统一的分布式图形计算平台,通过用户友好的Python接口,为在计算机集群上执行各种图形操作提供了一站式环境。GraphScope结合了阿里巴巴的几项重要技术,简化了计算集群上大规模图形数据的多阶段处理:包括分别用于分析、交互和图形神经网络(GNN)计算的GRAPE、MaxGraph和graph Learn(GL),以及提供高效内存数据传输的葡萄园存储。
如下图:



官网:https://sreworks.cn/
Github: https://github.com/alibaba/SREWorks
SREWorks 专注于以应用为中心的开发模式,提供一站式云原生数智化运维SaaS(软件即服务)管理套件。支撑企业的应用及资源管理和运维开发两大核心能力,帮助企业快速实现云原生应用及资源的交付目标。
SREWorks 是什么?
谷歌在2003年提出了一种岗位叫做 SRE (Site Reliability Engineer,站点可靠性工程师),它是软件工程师和系统管理员的结合,重视运维人员的开发能力,要求运维日常琐事在50%以内,另外50%精力开发自动化工具减少人力需求。
SREWorks 作为阿里云大数据SRE团队对SRE理念的工程实践,专注于以应用为中心的一站式“云原生”、“数智化”运维 SaaS 管理套件,提供企业应用&资源管理及运维开发两大核心能力,帮助企业实现云原生应用&资源的交付运维。
阿里云大数据 SRE 团队天然靠近大数据和AI,对大数据&AI技术非常熟悉,且具有随取随用的大数据&AI算力资源,一直努力践行“数据化”、“智能化”的运维理念,行业里的 DataOps(数据化运维)最早由该团队提出。SREWorks 中有一套端到端的 DataOps 闭环工程化实践,包括标准的运维数仓、数据运维平台、运营中心等。
传统IT运维领域已经有大量优秀的开源运维平台,反观云原生场景,目前还缺乏一些体系化的运维解决方案。随着云原生时代大趋势的到来,阿里云大数据 SRE 团队将SREWorks运维平台开源,希望为运维工程师们提供开箱即用的运维平台。
SREWorks 有什么优势?
回归到运维领域的需求,无论上层产品和业务形态怎么变化,运维本质上解决的还是“质量、成本、效率、安全”相关需求。SREWorks 用一个运维 SaaS 应用界面来支撑上述需求,同时以“数智”思想为内核驱动 SaaS 能力,具体包括交付、监测、管理、控制、运营、服务六部分。
如下图:



官网: https://xrender.fun/
Github: https://github.com/alibaba/x-render
阿里 - 很易用的中后台「表单 / 表格 / 图表」解决方案
优势
如下图:



一台电脑,一个键盘,尽情挥洒智慧的人生;几行数字,几个字母,认真编写生活的美好;
一 个灵感,一段程序,推动科技进步,促进社会发展。
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐
基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于
我正在尝试创建一个带有项目符号字符的Ruby1.9.3字符串。str="•"+"helloworld"但是,当我输入它时,我收到有关非ASCII字符的语法错误。我该怎么做? 最佳答案 你可以把Unicode字符放在那里。str="\u2022"+"helloworld" 关于ruby-如何在Ruby字符串中插入项目符号字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1195
我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正
我一直在尝试使用nanoc用于生成静态网站。我需要组织一个复杂的排列页面,我想让我的内容保持干燥。包含或合并的概念在nanoc系统中如何运作?我已阅读文档,但似乎找不到我想要的内容。例如:我如何获取两个部分内容项并将它们合并到一个新的内容项中。在staticmatic您可以在您的页面中执行以下操作。=partial('partials/shared/navigation')类似的约定在nanoc中如何运作? 最佳答案 这里是nanoc的作者。在nanoc中,部分是布局。因此,您可以拥有layouts/partials/shared/