重大消息!Apache下这些与Hadoop相关的开源项目要退休了!

科技创新王叫兽 发表了文章 • 0 个评论 • 68 次浏览 • 2021-05-14 15:24 • 来自相关话题

不知不觉之间,小编发现 Apache下许多与Hadoop相关的开源项目竟然都要退休了!包括像Sentry、Tajo和Falcon在内的13个与大数据相关的Apache项目,相继在11天之内宣布退出。不得不说一句,看起来Hadoop和大数据的美好时代就... ...查看全部

不知不觉之间,小编发现 Apache下许多与Hadoop相关的开源项目竟然都要退休了!

包括像Sentry、Tajo和Falcon在内的13个与大数据相关的Apache项目,相继在11天之内宣布退出。

不得不说一句,看起来Hadoop和大数据的美好时代就要正式结束了。

Apache Hadoop曾经是大数据的招牌产品,虽然大家都知道其现在已经过了鼎盛时期。但自4月1日以来,Apache软件基金会(ASF)已经宣布至少19个开源项目退出,其中13个与大数据相关,10个是Hadoop生态系统的一部分。还是让人感到乍舌。

也许单独一个项目的退出不会让人觉得是回事,但陆陆续续这么多项目一同退出,似乎就成了一个由盛转衰的分水岭,小编整理了下这13个与大数据相关的已退出的Apache项目。

  • Apex:基于Hadoop的大数据流和批处理的统一平台

  • Chukwa:一个用于监视大型分布式系统的数据收集系统,建立在Hadoop分布式文件系统(HDFS)之上

  • Crunch:它为编写、测试和运行MapReduce(包括Hadoop MapReduce)管道提供了一个框架

  • Eagle:一种分析解决方案,用于在大数据平台(包括Hadoop)上即时发现安全和性能问题

  • Falcon:Hadoop的数据处理和管理解决方案,用于数据移动、数据管道协调、生命周期管理和数据发现

  • Hama:一个大数据分析框架,运行在Hadoop上,基于批量同步并行范式

  • Lens:提供了一个统一的分析接口,它将Hadoop与传统的数据仓库集成在一起,看起来就像一个

  • Marmotta: 链接数据的开放平台

  • Metron:专注于实时大数据安全

  • PredictionIO:用于管理和部署生产就绪预测服务的机器学习服务器

  • Sentry:在Apache Hadoop中对数据和元数据实施细粒度授权的系统

  • Tajo:一个基于Hadoop的大数据仓库系统

  • Twill,它使用Hadoop YARN的分布式功能和类似于运行线程的编程模型

除了小编整理的这些项目,其实还有很多其他项目一并退出了。但最引人注意的还是在这不到两周时间里宣布退出的13巨头。

对于这个现象事件,官方又是怎么说的呢?

Apache软件基金会(ASF)的营销和宣传的副总裁Sally Khudairi,在其回复的电子邮件中提到:

Apache项目活动在其整个生命周期中起起落落,这取决于社区的参与程度。每一个退出的项目都是经过项目管理委员会和董事会反复斟酌投票之后的决定。

同时他表示这仅仅是常规项目退出的激增,但我们可以发现在开源领域,Hadoop已经让位于Spark ,像Hortonworks和旧Cloudera之间毫无意义的项目复制已经越来越少。

同样明显的是,大量投资Apache Sentry 的供应商和客户现在需要开始考虑他们的损失,以及下一步的前进方向。其实每一个技术的兴起和冷落都有类似的炒作周期,技术热门、开源激增、生态系统建立,然后直到他被其他新技术取代。

转载于公众号:程序猿DD

把中国 14 亿人都拉到一个群,技术上能实现吗?

科技创新王叫兽 发表了文章 • 0 个评论 • 86 次浏览 • 2021-05-14 15:24 • 来自相关话题

“最近,知乎上有一个非常热门的问题:“把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?”实际上,根据国家统计局的数据,截至 2017 年末,中国大陆总人口为 13 亿 9008 万人(包括 31 个省、自治区、直辖市和中国人民解放军现役军人,不包括香港... ...查看全部

“最近,知乎上有一个非常热门的问题:“把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?”

实际上,根据国家统计局的数据,截至 2017 年末,中国大陆总人口为 13 亿 9008 万人(包括 31 个省、自治区、直辖市和中国人民解放军现役军人,不包括香港、澳门和台湾以及海外华侨人数),早已超过 13 亿。

目前,微信群组成员人数上限为 500 人,把近 14 亿中国人都拉到一个微信群,从技术的角度考虑现实吗?需要多少台服务器?

而且在一个 14 亿人的群里,要怎样抢红包?手机会不会爆炸?欢迎大家收看官方吐槽系列~

根据 2017 年《微信数据报告》的公开数据 [参考 1] : 2017 年 9 月,微信日均登录 9.02 亿人,日均发送消息 380 亿次。

这意味着平均每人每天发送信息 42 条,如果全国人民(对了,现在全国人口已经接近 14 亿)在同一个群里说话,这个群每天出现的信息就高达:

这么多信息仅仅是匀速发送的话,考虑到大家的睡眠,睡觉的 8 小时不算,那么手机里每秒要接收的信息就是:

哇塞,每秒超过 100 万条啊!目前主频最高的手机 CPU 之一,高通骁龙 845有 2.8GHz 的处理能力[参考 2] ,一共是 8 核。

如不计算安卓系统、显示刷新、网络 IO 等 CPU 操作的话,每条信息能分配到的计算能力是:

这是什么概念?全球第一款微处理器是 1971 年英特尔推出的 Intel 4004[参考 3],这个老古董的主频也有 108KHz 啊。所以 21.9KHz 就是啥也干不了。

幸好 IT 界有个摩尔定律: 每 18 个月 CPU 性能就能翻倍(或者价钱是一半)。虽然现有科技已经很难让主频提升(某牙膏厂拼命挤也只有 5 Ghz)。

但假设我们使用了黑科技提升主频。等到了 2025 摩尔定律失效时[参考 4],我们的手机 CPU 主频应该达到:

看起来不错嘛,不过每条消息能得到的计算能力将达到:

呵呵,依然没有达到 Intel 4004 的水平,所以结果就是你等了 7 年,还是进不了这个全国群抢一个红包。

好吧,咱们让手机接入一个给力点的电脑, 比如说全球超算第一名的太湖之光,1 千万个 CPU 核心 [参考 5] 来帮忙处理这个宇宙第一大微信群。算力的问题总算有了着落。

我们假设平均每条消息有 10 个汉字,这大概相当于 30 byte,算上应用层会加上一定的控制字符,再加上 TCP/IP 网络层的数据消耗大概是 74 byte,取个整,平均每条消息有 100 byte,每个 byte 相当于 8 个 bit。

这时每秒需要的网络带宽大约是:

如果有人发红包,需要的带宽就更大了。

理论上,4G 网络能支持 1000 Mbps[参考 6],但别忘了,是全国人民在同一个群里,而你周围的人也需要同样的带宽,这使得你附近的基站不堪重负,陷入瘫痪。

为了避免网络瘫痪导致你抢不到红包或者看群消息,你需要搬到一个周围没有人的基站,比如放暑假了全校只有你还没回家的时候。

不过运营商的日子就不好过了,因为这一秒全国上下的流量就达到了惊人的:

这相当于 2017 年 4 月份的全国移动数据总流量的 65.7%[参考 7],意味着每 18 秒就能用完全国一年的流量。运营商瑟瑟发抖.gif

如果把 1.146 Ebit 数据用 2TByte 3.5 英寸硬盘(20 mm 高)装起来,然后叠起来,有 1433.25 m,相比之下,全球最高楼——迪拜的哈里发塔只有区区 828m。

当然,如果确实有需要,我相信电信运营商们肯定砸下重金为你建设全世界最大的宽带网络。

不过,接下来该花钱的就不是运营商——而是腾讯了。

为了处理这 1.146 Ebps 的流量, 腾讯需要准备 11466 万套交换机和服务器。

目前一台大厂 4 口万兆交换机售价大约是 4000 元,一台便宜带万兆口的服务器则大概需要 10000 元,这两项加起来的费用是:

呃,仅仅这两项就相当于 深圳 2014 年全年的 GDP[参考 8]。

这里还不包括网线、电线、服务器机架、机房托管、电费、运行支出……

这么多设备的存放也是个问题。一台带万兆(10Gbps)口的 2U 服务器有 88.9 mm 高,这样叠起来就有:

这差不多是中国到美国的飞机航线距离啊,用来修铁路也是够够的了。

好了,有了这么多设备加持,这下你终于可以愉快地进了群。

但你惊讶地发现,屏幕上除了白色,什么都没有——这是因为你的眼睛没办法接收这么快的数据!

人眼的视觉暂留时间是 100-400 毫秒[参考 9] ,而我们这个群每秒钟就要显示 102 万条信息,每条消息停留的时间只有大概 0.001 毫秒。相比之下,电影、电视都有 41 毫秒。

因此你还没来得及看清消息,它就已经消失了,最后只留下一团白色的色块在屏幕的正中央。

网友留言:

@大哥有柔情:

14 亿在一个群并不可怕。可怕的是,每逢节日群里都会让群主发红包!

@后知后觉:

已经做到了,14 亿人拉到一个微信群,大家看到的都是新闻联播。

@bluecat:

简单的说,你的手机会马上崩溃,因为它承载不了一秒钟的信息量。

@三毛鱼

可以实现,不过要加几条限制:

①所有微信账号强制加入到这个微信群。

②微信群只能有限的几个人发言,其他人不能发言。

③微信群里只能在每天固定时间段发消息。

④其他微信群在固定时间不能发消息,或者只能转发这个微信群的消息。

这样就可以实现了,技术上没有难度。

@程墨Morgan

“拉”到一个群里没啥不难实现的,反正用户信息都在服务器上,建一个包含所有用户微信号的群也就是添加一个记录而已。

但是,这个群千万不要让任何人都能发言,就以我国人民的多样性,各种话唠、贴图狂人、广告狂人……海量信息瞬间就可以把服务器、运营商网络和你手机的电池击溃。

@世安先生

讲真,单从理论上来说目前的技术还是可行的,咳咳,我要装逼了。

看了别的答主的回答,说人、终端、传输、处理、存储、分析等等各方面均有缺陷或者短板,跟不上大批量的数据,其实个人觉得实施起来也还是有得搞的,只是成本和利润之间的关系罢了。

首先,得考虑人的因素,多少多少亿的信息量对于某个特定个体来说价值无限接近于 0,我个人根本不关注这些信息,因为获取信息的效率太低了。

这就导致了百分之九十九的人直接忽略了这个群的存在,剩下的每天这个群里的消息无非就是置顶公告,置顶新闻,红包和闲聊斗图,浏览公告和新闻。

考虑到并发的问题,一般现在的服务器都可以做到,毕竟有大把的新闻 App 都可以做到;红包,做个算法随机分配吧,也别抢了,抢会严重影响体验,给十亿用户随机分配一段数据应该难度也不太大。

剩下的就是斗图闲聊,数据直接云存储在服务器端,分析处理总结出来个中心思想每多少秒多少秒推送给个人用户一次,就差不多了,需要详细信息的上服务器检索,个人觉得对个人终端的压力也不会太大。

其次,传输,这是我觉得问题最小的一个环节,为什么呢?解决了个人终端的问题之后,个人的数据传输量并不大,现有的传输网络完全可以满足。

服务器端的传输,要看这服务器怎么个建法,如果集中式处理和存储,就只能用百 G 专线,建个三五条完全够了。

只不过相应的配套交换机路由器要建一套庞大的系统出来。如果是分布式存储和处理,10G 的甚至 GE 的专线都够。这是传输。

第三,处理,如果非得把大批量的数据集中处理,就得建设一套国内最大甚至世界最大最复杂的数据中心才能够承载这套系统。

但是如果分布式处理的话,我相信现在的系统也够用,毕竟现有的运算量已经这么大了,而有这个群之后数据量也绝对不会爆炸式增长。

第四,存储,处理的工作能够完成存储肯定也不是问题,甚至可以将数据破碎后存储在个人终端上,将投资设备的矛盾转嫁到数据安全和管理上。

第五,数据分析,这一点才是重中之重,难点中的难点,如何有效的分析提取如此大量数据中的有用信息并推送给特定的个人才是核心关键。

虽然现在技术还没有大面积商业化,但我相信这种技术是肯定已经有试用的甚至是已经商用的存在了,只不过公众不太清楚而已,毕竟这种东西仔细想想还是有点恐怖的。

总之,如何实现这个系统或者说建好这个群,无非就是做好需求与资源之间矛盾的转嫁,把存储需求量大与投资大之间的矛盾转嫁到数据安全与运营管理上,把大数据量传输分散化,把大量的数据进行分析提取后定向推送,最核心的投资也就是整套智能有效的大数据分析系统。

(ಥ_ಥ)不过……话说这么搞的话不就是搞了个有 14 亿关注量的公众号嘛…d(ŐдŐ๑)好了,我装逼装完了,你们打的时候下手轻点,别拿砖头,别提 40 米青龙偃月大关刀……

转载于公众号“程序猿DD”


北京云中融信网络科技有限公司(简称融云),是安全、可靠的全球互联网通信云服务商,向开发者和企业提供即时通讯和实时音视频通信云服务。iResearch 艾瑞权威数据报告显示,融云即时通讯云市场份额连续多年稳居头位。

融云构建了一张覆盖全球所有国家及地区(共 233 个)的通信云网络,在全球各地设立多个数据中心及数千个加速节点。基于客户业务需求,融云可提供多种部署模式——公有云、私有云、混合云,为全球企业提供稳定的互联网通信云服务。针对企业级用户,融云将业务垂直到各个行业,为社交、直播、金融、交通运输、教育、电商、医疗等多个行业领域推出了针对性解决方案。

融云基于海量业务的技术锤炼,从基础架构到精细化运营,充分体现平台实力;凭借卓越的产品和优质的服务,在开发者规模、行业覆盖率、平台日活跃用户数、日均消息量等方面超越全行业。目前,已有数十万互联网用户及上千家企业级用户通过融云实现了场景化沟通,并从中获益,包括工商银行、中国移动、四川航空、CCTV 微视、中联重科、58 赶集、大河报业、新东方、陆金所、融创地产、IDG、华兴资本、易车网、猪八戒、得到 APP、荔枝、汽车之家、哈啰出行、百姓网、StarMaker、Opera、Elelive。

为什么不建议在代码中使用 User 这个单词?

科技创新王叫兽 发表了文章 • 0 个评论 • 76 次浏览 • 2021-05-14 15:24 • 来自相关话题

当你意识到你在项目开始时做的轻量、简单的设想竟然完全错了时,你已经用了六个月的时间投入到这个项目上。现在你需要解决这些问题,才能让这个系统继续运行下去,你发现你用在这个项目上的精力远远超出了你的预期,如果一开始就用正确的方式来做,就不会发生这样的事。今天,我要... ...查看全部

当你意识到你在项目开始时做的轻量、简单的设想竟然完全错了时,你已经用了六个月的时间投入到这个项目上。现在你需要解决这些问题,才能让这个系统继续运行下去,你发现你用在这个项目上的精力远远超出了你的预期,如果一开始就用正确的方式来做,就不会发生这样的事。

今天,我要告诉你的是一个经常犯的错误,一个会给你带来无穷无尽的问题的单词,那就是“users”。

这个单词有两个最基本的错误:

1.对你的需求来说 “User” 几乎从来都不是一个好的描述。2.“User” 会导致一个基本的设计安全缺陷。“user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。

你没有使用者

最开始,没有任何一个软件系统真的有使用者存在。乍一看“user”是一个好的描述,但是你稍微一想就会意识到你的业务逻辑实际上比这要复杂的多。我会使用三个例子,从一个极端的情况出发。机票预订系统没有“users” 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求:

1.旅客可以使用预定记录码通过网站查看预定信息。

2.购买者可以通过信用卡号后四位数在网站上修改预订信息。

3.旅行社可以查看和修改他们的预订。

4.航空公司的值机人员可以根据角色和航空公司来查看和修改预订信息,这需要旅客提供身份信息。

不再一一列举。一些与人类相关的基本概念是“旅客”,“代理”(网站也可是看作代理)和“购买者”。“user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。

Unix 没有 “users”

我们看一个不太一样的例子。Unix (这些天被称为POSIX)有用户,他们可以登录并执行代码。这样看起来很不错吧?我们深入看一下。

如果我们把所有都当作“users”的话,我们将会有:1.使用终端或者图形界面登录的人 2.像邮件或者web服务器这种系统服务也会以“users”的身份运行,例如nginx可以以httpd用户运行。3.在服务器上经常会有多人共享一个管理员账号用来SSH登录(例如,亚马逊的Ubuntu虚拟机默认SSH账号就是‘ubuntu’) 5.root 身份,和上面其他身份都不同。

上面四个是几乎不同的概念,但是在POSIX上他们都是 “users”. 一会儿我们就会看到,把这些概念都称为‘user’会导致很多安全问题。

在操作上,因为POSIX的用户模型边界存在,我们甚至不能找到一种方式说“只能让 Alice 和 Bob 通过这个账号登录”。SaaS 服务提供商没有 “users”

Jeremy Green 最近就用户模型在SaaS中的应用在推特上发文,它第一次提醒了我写下这篇文章,他的基本观点是

SaaS 服务几乎总是:

1.某个组织中的一个人支付服务费用。2.一个或多个人共同使用这个服务。如果你一开始就把这些人作为一个用户,你将会陷入一个痛苦的世界。你无法建立团队模型,你无法组建同时为多人支付的模型,然后你就会开始改造你的系统。现在你在SaaS案例中学到了一课,我们来看一看你的生活。

但是这只是众多例子中的一个:“users”的概念太模糊了。如果你开始怀疑“user”这个词,最终你可能发现最终你其实只需要两个概念:团队(用来组织关系和支付)和成员(实际使用服务的人)。“Users” 是一个安全问题 “user” 这个单词不仅是业务逻辑的问题,它也导致了一系列安全问题。

“user” 这个单词如此的模糊以至于从根本上将两个概念合并了:1.一个人。2.他们在软件中的代表性。

为了说明这个问题,假设你正在访问一个居心不良的网站,在它服务器上的图片导致了你的浏览器内存溢出。远程网站控制着你的浏览器,并且开始将你的文件上传到他的服务上。

为什么它能这样做?

因为浏览器是以系统用户的身份运行的,它被认为与人类身份的你相同,实际上你们是不同的。你作为’user’,不想上传文件。但是系统的账号也是‘user’,能够上传文件,如果浏览器运行在你的账号之下,他所有的行为会被当作是你的意图,也就是说是你让它这么做的,实际上不是。

这就是被称为Confused Deputy的问题。如果你使用“用户”这个词来描述两个根本不同的东西,那么这个问题就更有可能成为你设计的一部分。前期设计的价值

花更少的功夫处理相同的问题是成为高产程序员的关键。使用模糊不清的概念比如“用户”来组织你的软件,将会话费大量时间和精力来解决未来发生的问题。一上来就开始编码看起来是高产的,事实恰好相反。

下次你开始一个新的软件项目时,花几个小时预先确定你的术语和概念:你仍然不会完全正确,但你会做得更好。未来的你将感谢你所做的所有预防浪费的工作。

为什么培训班出来的程序员会遭人嫌弃?

科技创新大兴 发表了文章 • 0 个评论 • 94 次浏览 • 2021-05-14 15:24 • 来自相关话题

昨天小编看到了一份采访稿,对象是培训机构出身的程序员,本身程序员并不特殊,但“培训机构出身”这个标签,有时候却成了程序员心酸的源头。有类似背景的程序员很多都在应聘工作、服务甲方的时候,多少有过被嫌弃,甚至歧视的艰辛经历。那么接下来跟小编一起看看这份采访稿,这些... ...查看全部

昨天小编看到了一份采访稿,对象是培训机构出身的程序员,本身程序员并不特殊,但“培训机构出身”这个标签,有时候却成了程序员心酸的源头。有类似背景的程序员很多都在应聘工作、服务甲方的时候,多少有过被嫌弃,甚至歧视的艰辛经历。那么接下来跟小编一起看看这份采访稿,这些经历是否你也有过感同身受呢?以下内容转载自公众号:InfoQ(ID:infoqchina),作者:褚杏娟。

谁都看不上培训机构的

“我是培训 + 外包出来的,确实有被甲方嫌弃过”。2016 年从电子信息专业毕业的小右说起这个话题有些落寞。

公务员考试失利的小右在大四上学期开始找工作,但因为学习成绩一般,工作找得并不顺利。这个情况持续一段时间后,小右决定去参加某培训机构的 Java 培训。“电子信息专业虽说属于计算机范畴,但其实和编程还不一样的,我也是没办法。”小右很无奈。

培训机构的课程对有一定 C、C++ 基础的小右来说还算比较轻松。他所在的那家培训机构的上课内容就是老师带着做做项目,教的代码在后面工作中可以复用。几个月后小右从培训机构毕业,第一份工作是北京当地蛮著名的一个外包机构,薪资 5K。

与同批毕业找到不错工作的同学们比,小右还是感到些许心酸。“上课的学费,我是走的贷款。和培训机构签过协议,毕业就可以找到工作。找不到,损失由培训机构承担;找得到,机构每个月要从我的薪资里面抽一部分还学费。北京的生活成本本来就高,加上机构的抽成,对于刚毕业的小右来说,无疑压力很大。

在这家外包公司呆了一年后,小右跳槽了——仍旧是家外包公司。“这家公司的程序员基本上也是专科或者培训机构出来的,人员流动特别快。”小右告诉记者:“我入职的第一年年底,对面一整个项目组的同事都陆续走掉了,有的去了甲方,有的回老家了,再加上工资不高,各种原因都有。我也是在这种情况下升职的,实在也是没人了。”

同在培训机构学习过的小健也有着类似的经历。工商管理物流专业的他也是在国考失利后决定进入 IT 行业。这对没有任何计算机基础的他来说,是彻彻底底的 360 度大转行。当时,他去了一家培训机构进行了为期 9 个月的“大学生速成班课程”学习。

在谈到这段学习经历时,小健不假思索的说了两个字:艰辛。

当时的他住在学校的地下室,又冷又潮湿。学校实行军事化管理,早上 6 点起床,晚上 22 点熄灯,每周休息一天。“和上高三感觉差不多”,小健感慨:“不过也有了更多的时间去学习和操作。“

虽然对 3 万 9 的高额学费感到“肉疼”,但小健感觉还是值得的。“最大的收获就是练就一双会挣钱的手。”小健的第一份工作也是一家外包公司,“当时面试了 10 多家,就那家公司面试上了,薪水给的还算可以,就入职了。”

针对培训机构出来的程序员与科班出身的程序员相比会不会被“鄙视”的问题,小健明确表示:“这个和科班的没关系,谁都看不上培训机构的。”

我们只会鄙视那些技术垃圾的

圈子里,科班程序员“鄙视”培训机构程序员似乎已经隐隐成了一种共识。

“培训机构出来的程序员几乎什么也不会。不用看技术,刚刚培训出来的就是假大空。”小健直言。网上甚至有更偏激的观点:培训班出来的全是垃圾,没有例外。

“培训机构出来的程序员基础薄弱很多,对某项语言可能有点熟悉但是很死板,代码环境一变可能就不会了,更差点的就直接被当成‘敲代码机器’了。很多人刚出来没有完整的案例操作,对这个行业还没有基础的认知,更别提思维、格局了。”

外界的这些言论无形中成为这些程序员心中的刺。很多培训机构出来的程序员在面试时是不会告诉用人单位培训背景的,有些人甚至会刻意隐瞒这段经历。“好多人被公司知道后就直接被辞退了,有的人还背着房贷、要赡养老人,但也没有办法。”小健说。

在小右看来,培训机构其实是复制粘贴出来一堆差不多的人。“人家用大学四年打下基础,你培训几个月速成,很难完全领悟。”

不知道是否是小健、小右过于敏感,还是不直接关乎利益,科班程序员对这个问题感受其实没有那么强烈。硕士毕业直接进入互联网公司工作的小远告诉我们:“员工间谈不上鄙视,主要是看他们做的工作是不是好,但是一般情况下,培训班出来的工作质量不会太好。代码混乱、质量低、bug 多、没法维护,别人接手你的代码会很难受。”

“大家都是打工的,没有人会管你是哪里出来的。我们只会鄙视那些技术垃圾的、配合不了的。至于你是哪里出来的,并不会很在意。”小远补充。

对于这个问题,某互联网公司技术总监 Harry 告诉 InfoQ 记者:外界的确存在一些公司认为培训班出来的程序员是“速成品”,然后卡简历的情况。“其实不是说培训机构出来的程序员表现都不行,只是表现不好的程序员可能都有过培训经历,行业里一传十、十传百就会认为培训机构出来的程序员都不行。”

培训出来的基本是速成班,很难相信

企查查数据显示,目前我国共有 21 万余家职业培训相关企业,其中在业存续的企业有 16.8 万家。通过对管理、财务会计、IT、设计四大培训方向的企业数据对比发现,涉及财务会计培训的企业仅占 3%,而涉及计算机培训的企业占到了 29%。

培训机构虽多,但质量却良莠不齐。很多培训机构的目的其实就是赚钱,只管教,对学员是否学会并不关心,甚至还有很大部分像小右所在的培训机构那样会与学员签订就业协议。另外,有些机构会宣传为大中型企业输入人才,但实际上对接合作的只是知名企业的外包公司,而非这些企业本身,当然机构是不会事先向学员说明的。

这些学员在培训机构学到的很多就是一套“万能模版”,可以套用在将来可能就职公司的工作中。“培训机构有点像定向培养,就好像知道我就业之后去的公司会用到什么东西一样,推荐给我的也都是外包单位。”小右告诉记者。

还有一些不责任的培训机构,虽然给出了就业承诺,但就什么样的“业”却是有很多可能的,而且学员的就业率与老师薪酬挂钩,无论怎样都会让学生就业。

小健透露,培训机构老师的工资基本都是 20K 起,而且还与学员的就业率挂钩,到手工资就更多了。机构会教你一些面试技巧,如果没有面上正儿八经的开发公司,为了就业率就可能胡乱安排给你一个与程序员无关的工作。

还记得知乎上网友的自嘲吗?

培训机构出来的程序员,最后大部分都去了美团,也有去百度的,去百度的少一些,原因是百度外卖给配的头盔不好看。美团外卖给配的电动车和头盔风格很搭,看着很拉风。

虽然这只是一个调侃,但也看出其中蕴含的无奈。

小健培训时所在的班里一共有 30 个人,最终还留在 IT 行业的就只剩 3 个人左右。“很多人学完找不到工作或者工作一段时间后感觉不适合就放弃了,9 个月的时间和高额的学费就这样泡汤了。”

培训机构虽然为很多人提供了互联网行业的“入场券”,但从这里出来的程序员面临的选择相对科班程序员少很多。

培训机构为学员就业提供的工作机会,起点很低,大部分毕业的人都是从小公司开始做起,经过一定积累才有可能去到大公司任职。此外,现在很多大型公司对合作的外包公司要求不仅仅局限在团队整体层面,更是细化到了对其聘用的员工个体素质等各个方面。

某保险公司负责大数据后台研发工作的项目负责人 Pony 告诉 InfoQ,今年起,他们公司已经明确要求外包也必须是本科毕业,最好是计算机专业毕业、尽量不要培训出身,尤其是美学、人力专业转行培训几个月出来的。

“人力成本太高了。我们也是有研发压力的,不愿意试错,要是认真学了三年,哪怕一年,我们都愿意一试。但现在培训出来的基本都是速成班,几个月就完事儿了,很难相信。”Pony 表示。

培训经历最后只是锦上添花

“好多程序员都买房了,都是实实在在挣到钱了。做程序员是穷屌丝逆袭的捷径。”小健感叹。

拉勾发布的《2019 年 90 后程序员职场报告》显示,在程序员群体中,90 后占比高达 82%,已然成为中国互联网行业主力军,而 90 后程序员的平均月薪已经接近 20K,雄踞互联网各职位之首。

纵然选择少,但高薪还是吸引着越来越多的人进入这个行业。达内教育老师向 InfoQ 介绍,达内教育一年大约可以招到 15 万人,其中大约 1/3~2/3 的人是学大数据、人工智能、Java 等互联网编程课程。

学历低确实是培训机构程序员的普遍现象。在达内机构学习的人大多集中在 23~35 岁之间,70% 左右的人学历在中大专和本科水平。58 同城在去年 10 月份发布的报告也显示:程序员群体学历中,大专学历占比最高,达到了 43.02%。

“现在本科学历是很普便的,这种情况下如果你只是中专、大专学历,其实我们也会觉得你的学习能力是不是有问题。”技术总监 Harry 表示。对于刚出校门的程序员来说,学历可能是衡量一个人学习能力的重要指标,但对于已经工作几年的人来说,更重要的是工作经验,当初的培训经历只是一个锦上添花的东西。

负责研发招聘的资深 HR 总监 Ivy 告诉记者:她不会只因为人选是培训机构出来的就将简历 pass 掉,但如果一个人在简历中着重去强调这段经历,那么可能意味着这个人在其他方面能力不够。

“有很多培训机构会帮助学员写简历、传授面试技巧,所以我们会看到很多差不多出自一个模版的简历,并且里面还有一些造假内容。对于这样的简历,其实看到模版一样时我们就已经 pass 掉了。“Ivy 表示。

程序员的成长终究是一个自我学习的过程,即使可能会有厉害的人带,但最重要的还是自己的能力。“以后不会再去培训机构了,之后的提高更愿意自己看书。”小右说。

应受访者要求,本文中小右、小健和小远均为化名。

后记

纵观现在的很多知名互联网大佬,在媒体面前大多都表现着对学历并不看重的态度,事实上在这些巨头成长初期是贯彻的很好的,因为如果不以这样的标准去吸纳人才,可能也很难招到人吧。而成为巨头的今天,其实对于学历,对于是否培训出身,切实的存在于各大互联网公司的招聘环节。这其中有HR部门对海量简历筛选工作量的考虑,也有因培训机构指导“简历美化”等诸多因素。

对于培训出身的尴尬局面,小编建议很多培训出身的小伙伴们不要灰心。由于如今发达的新媒体、开源社区等开放性平台越来越多,只要你有真才实学,大可以用这些方式去展现自己,为自己的简历提升更多有含金量的,用人公司可见的优秀成绩,依然可以让你从很多科班出身的人群中脱颖而出!小编身边也有好几个曾经靠培训入行,如今混的风生水起的朋友。古话说得好,师傅领进门,修行在个人。培训很多时候是帮助我们入门,但后续的修行不能断,只要能勤于思考,付出实践!那么与科班出生的程序员一样,都能未来的路都不会太差!

Redis 高负载排查记录

科技创新fanta2 发表了文章 • 0 个评论 • 82 次浏览 • 2021-05-14 15:24 • 来自相关话题

周一早上刚上班,突然大量用户反馈进入网页很慢,登录服务器一看,Redis调用时间严重超时,这样高速的缓存反而变成了短板,由于数据一直没有返回,导致了请求响应变慢。网页监控通过阿里的 Grafana 监控,服务器的 CPU 负载、内存、网络输入输出都挺正常的,所... ...查看全部

周一早上刚上班,突然大量用户反馈进入网页很慢,登录服务器一看,Redis调用时间严重超时,这样高速的缓存反而变成了短板,由于数据一直没有返回,导致了请求响应变慢。

网页监控

通过阿里的 Grafana 监控,服务器的 CPU 负载、内存、网络输入输出都挺正常的,所以肯定是 Redis 出现了问题。

我们应用使用的是单节点的 32M 16GB 的阿里云 Redis,登录网页监控看性能监控,发现 CPU 使用情况飙升到100%!!!

QPS 虽然从 1000 多升到 6000,但是远远低于极限值,连接数量从 0 升到 3000,也是远远低于极限值(可能用户刚上班,开始有请求,然后响应延迟,导致命令队列数量过多,打开很多连接)。

临时方案:先租用一台新的 Redis 服务器,更换应用服务器的 Redis 配置,重启应用,避免影响更多用户。

然后我们继续跟踪 Redis 的具体情况。

服务器命令监控

登录 Redis-cli,通过 info 命令查看服务器状态和命令统计,祥哥总结了两点异常点:

查询 redis 慢指令 slowlog,排行前十的指令均为keys *,并且耗时严重,在当前业务流量下执行keys* ,一定会阻塞业务,导致查询慢,cpu 高的。值得注意的是应用层面没有开放 keys * 接口,不排查有后台人为或后台程序触发该指令。

查看 redis 指令执行情况,排除 exec,flushall 等指令,业务使用指令中,耗时严重的有 setnx 有7.5千万次调用平均耗时 6s,setex 有8.4千万次调用平均耗时7.33s,del 有2.6亿次调用平均耗时69s,hmset 有1亿次调用平均耗时 64s,hmget 有6.8千万次调用平均耗时 9s,hgetall 有14亿次调用平均耗时 205s,keys 有2千万次调用平均耗时 3740s。

通常而言,这些指令耗时与 value 大小呈正比,所以可以排查这些指令相关的数据近期有没有较大增长。或者近期有没有业务改造,会频繁使用上述指令,也会造成 cpu 高。

(当时忘了截图,下图只是展示命令和参数含义)

通过 info commandstats 可以查看 Redis 命令统计信息,其中命令格式是

cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX调用次数、耗费CPU时间、每个命令平均耗费CPU(单位为微秒)

通过 slowlog 命令查看慢命令(默认超过 10ms 就会被记录到日志,只会记录其命令执行的时间,不包含 IO 往返操作,也不记录单由网络延迟引起的响应慢)

(当时也忘了截图,所以就介绍一下 slowlog 怎么看)

xxxxx> slowlog get 10 3) 1) (integer) 411               2) (integer) 1545386469         3) (integer) 232663              4) 1) "keys"                     2) "mecury:*"

图中各字段表示的是:

  • 1=日志的唯一标识符

  • 2=命令的执行时间点,以UNIX时间戳表示

  • 3=查询命令执行时间,以微妙为单位,中的是230ms

  • 4=执行的命令,以数组的形式排列。完整的命令是 keys mucury:*

所以通过这些参数,基本可以确定,是突然有大量的keys *命令导致CPU负载升高,导致响应延迟,问题我们应用中没有开放keys *命令Σ(o゚д゚oノ)

最后将这些统计结果和慢命令发到研发群,发现是别的应用配置配成了我们的Redis,然后他们有个业务场景是爬数据,突然涌入大量的调用,不断的keys *,导致我们的Redis不堪重负,于是将配置修改正确,不再调用我们的Redis。

总结
  • Redis 抖动可以先看网页监控(阿里云做的真好!)

  • 通过命令查看 Redis 指令状态和慢命令的情况

  • 考虑优化 Redis 在代码中的使用情况

  • 如果流量继续上升,需要考虑一下升级了=-=


“容灾”和“备份”的区别?原来如此!

科技创新大兴 发表了文章 • 0 个评论 • 91 次浏览 • 2021-05-14 15:24 • 来自相关话题

数据中心运行突发故障(如:天灾不可避免的灾难)是无法预测的,计算机里的数据就像扫雷游戏一样,十面埋伏充满雷区,随时都有可能Game Over,容灾备份就是数据安全的最后防线,但是你可以避免由数据中心发生故障而丢失数据引发的数据丢失的局面。今天为大家介绍“容灾和... ...查看全部

数据中心运行突发故障(如:天灾不可避免的灾难)是无法预测的,计算机里的数据就像扫雷游戏一样,十面埋伏充满雷区,随时都有可能Game Over,容灾备份就是数据安全的最后防线,但是你可以避免由数据中心发生故障而丢失数据引发的数据丢失的局面。

今天为大家介绍“容灾和备份的区别”以及一些尽可能减少发生运行故障失败机会,并加强企业的数据备份环境的简单要点。

什么是容灾 ?

容灾系统是指在相隔较远的异地,建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。

容灾技术是系统的高可用性技术的一个组成部分,容灾系统更加强调处理外界环境对系统的影响,特别是灾难性事件对整个IT节点的影响,提供节点级别的系统恢复功能。

容灾的分类

从其对系统的保护程度来分,可以将容灾系统分为:数据容灾和应用容灾,数据容灾就是指建立一个异地的数据系统,该系统是本地关键应用数据的一个实时复制。

应用容灾是在数据容灾的基础上,在异地建立一套完整的与本地生产系统相当的备份应用系统(可以是互为备份),在灾难情况下,远程系统迅速接管业务运行,数据容灾是抗御灾难的保障,而应用容灾则是容灾系统建设的目标。

容灾和备份有什么连系 ?

容灾备份实际上是两个概念,容灾是为了在遭遇灾害时能保证信息系统能正常运行,帮助企业实现业务连续性的目标,备份是为了应对灾难来临时造成的数据丢失问题。在容灾备份一体化产品出现之前,容灾系统与备份系统是独立的。容灾备份产品的最终目标是帮助企业应对人为误操作、软件错误、病毒入侵等’软’性灾害以及硬件故障、自然灾害等“硬”性灾害。

容灾和备份的区别

一般意义上,备份指的是数据备份或系统备份,容灾指的是不在同一机房的数据备份或应用系统备份。备份采用备份软件技术实现,而容灾通过复制或镜像软件实现,两者的根本区别在于:

  1. 容灾主要针对火灾、地震等重大自然灾害,因此备份中心与主中心间必须保证一定的安全距离;数据备份在同一数据中心进行。

  2. 容灾系统不仅保护数据,更重要的目的在于保证业务的连续性;而数据备份系统只保护数据的安全性。

  3. 容灾保证数据的完整性;备份则只能恢复出备份时间点以前的数据。

  4. 容灾是在线过程;备份是离线过程。

  5. 容灾系统中,两地的数据是实时一致的;备份的数据则具有一定的时效性。

  6. 故障情况下,容灾系统的切换时间是几秒钟至几分钟;而备份系统的恢复时间可能几小时到几十小时。

容灾的分类

1、数据级

数据级容灾是最基础的手段,指通过建立异地容灾中心,做数据的远程备份,在灾难发生之后要确保原有的数据不会丢失或者遭到破坏,但在数据级容灾这个级别,发生灾难时应用是会中断的。可以简单的把这种容灾方式理解成一个远程的数据备份中心,就是建立一个数据的备份系统或者一个容灾系统,比如数据库、文件等等。

  • 优点:费用比较低,构建实施相对简单

  • 缺点:数据级容灾的恢复时间比较长

2、应用级

应用级容灾是在数据级容灾的基础之上,在备份站点同样构建一套相同的应用系统,通过同步或异步复制技术,这样可以保证关键应用在允许的时间范围内恢复运行,尽可能减少灾难带来的损失,让用户基本感受不到灾难的发生。应用级容灾就是建立一个应用的备份系统,比如一套OA系统正在运行,在另一个地方建立一套同样的OA系统。

  • 优点:提供的服务是完整、可靠、安全的,确保业务的连续性

  • 缺点:费用较高,需要更多软件的实现

3、业务级

业务级容灾是全业务的灾备,除了必要的IT相关技术,还要求具备全部的基础设施。

  • 优点:保障业务的连续性

  • 缺点:费用很高,还需要场所费用的投入,实施难度大。

备份等级

容灾备份是通过在异地建立和维护一个备份存储系统,利用地理上的分离来保证系统和数据对灾难性事件的抵御能力。根据容灾系统对灾难的抵抗程度,可分为数据容灾和应用容灾。数据容灾是指建立一个异地的数据系统,该系统是对本地系统关键应用数据实时复制。

当出现灾难时,可由异地系统迅速接替本地系统而保证业务的连续性。应用容灾比数据容灾层次更高,即在异地建立一套完整的、与本地数据系统相当的备份应用系统(可以同本地应用系统互为备份,也可与本地应用系统共同工作)。

在灾难出现后,远程应用系统迅速接管或承担本地应用系统的业务运行,设计一个容灾备份系统,需要考虑多方面的因素,如备份/恢复数据量大小、应用数据中心和备援数据中心之间的距离和数据传输方式、灾难发生时所要求的恢复速度、备援中心的管理及投入资金等,根据这些因素和不同的应用场合,通常可将容灾备份分为四个等级。

第0级:没有备援中心

这一级容灾备份,实际上没有灾难恢复能力,它只在本地进行数据备份,并且被备份的数据只在本地保存,没有送往异地。

第1级:本地磁带备份,异地保存

在本地将关键数据备份,然后送到异地保存。灾难发生后,按预定数据恢复程序恢复系统和数据。这种方案成本低、易于配置。但当数据量增大时,存在存储介质难管理的问题,并且当灾难发生时存在大量数据难以及时恢复的问题。为了解决此问题,灾难发生时,先恢复关键数据,后恢复非关键数据。欢迎关注微信公众号:朱小厮的博客。

第2级:热备份站点备份

在异地建立一个热备份点,通过网络进行数据备份。也就是通过网络以同步或异步方式,把主站点的数据备份到备份站点,备份站点一般只备份数据,不承担业务。当出现灾难时,备份站点接替主站点的业务,从而维护业务运行的连续性。

第3级:活动备援中心

在相隔较远的地方分别建立两个数据中心,它们都处于工作状态,并进行相互数据备份。当某个数据中心发生灾难时,另一个数据中心接替其工作任务。这种级别的备份根据实际要求和投入资金的多少,又可分为两种:

  • 1、两个数据中心之间只限于关键数据的相互备份;

  • 2、两个数据中心之间互为镜像,即零数据丢失等。

零数据丢失是目前要求最高的一种容灾备份方式,它要求不管什么灾难发生,系统都能保证数据的安全。所以,它需要配置复杂的管理软件和专用的硬件设备,需要投资相对而言是最大的,但恢复速度也是。

转载于公众号’程序猿DD“


分页场景(limit, offset)为什么会慢?

科技创新fanta2 发表了文章 • 0 个评论 • 89 次浏览 • 2021-05-14 15:24 • 来自相关话题

从一个问题说起五年前发现分页场景下,mysql请求速度非常慢。数据量只有10w的情况下,select xx from 单机大概2,3秒。我就问我导师为什么,他反问“索引场景,mysql中获得第n大的数,时间复杂度是多少?”答案的追寻确认场景假设status上面... ...查看全部
从一个问题说起

五年前发现分页场景下,mysql请求速度非常慢。数据量只有10w的情况下,select xx from 单机大概2,3秒。我就问我导师为什么,他反问“索引场景,mysql中获得第n大的数,时间复杂度是多少?”

答案的追寻
确认场景

假设status上面有索引。select * from table where status = xx limit 10 offset 10000。会非常慢。数据量不大的情况就有几秒延迟。

小白作答

瞎猜了个log(N),心想找一个节点不就是log(N)。自然而然,导师让我自己去研究。

这一阶段,用了10分钟。

继续解答

仔细分析一下,会发现通过索引去找很别扭。因为你不知道前100个数在左子树和右子数的分布情况,所以其是无法利用二叉树的查找特性。通过学习,了解到mysql的索引是b+树。

看了这个图,就豁然开朗了。可以直接通过叶子节点组成的链表,以o(n)的复杂度找到第100大的树。但是即使是o(n),也不至于慢得令人发指,是否还有原因。

这一阶段,主要是通过网上查资料,断断续续用了10天。

系统学习

这里推荐两本书,一本《MySQL技术内幕 InnoDB存储引擎》,通过他可以对InnoDB的实现机制,如mvcc,索引实现,文件存储会有更深理解。

第二本是《高性能MySQL》,这本书从着手使用层面,但讲得比较深入,而且提到了很多设计的思路。

两本书相结合,反复领会,mysql就勉强能登堂入室了。

这里有两个关键概念:

  • 聚簇索引:包含主键索引和对应的实际数据,索引的叶子节点就是数据节点

  • 辅助索引:可以理解为二级节点,其叶子节点还是索引节点,包含了主键id。

即使前10000个会扔掉,mysql也会通过二级索引上的主键id,去聚簇索引上查一遍数据,这可是10000次随机io,自然慢成哈士奇。这里可能会提出疑问,为什么会有这种行为,这是和mysql的分层有关系,limit offset 只能作用于引擎层返回的结果集。换句话说,引擎层也很无辜,他并不知道这10000个是要扔掉的。以下是mysql分层示意图,可以看到,引擎层和server层,实际是分开的。

直到此时,大概明白了慢的原因。这一阶段,用了一年。

触类旁通

此时工作已经3年了,也开始看一些源码。在看完etcd之后,看了些tidb的源码。无论哪种数据库,其实一条语句的查询,是由逻辑算子组成。

逻辑算子介绍 在写具体的优化规则之前,先简单介绍查询计划里面的一些逻辑算子。

  • DataSource 这个就是数据源,也就是表,select * from t 里面的 t。

  • Selection 选择,例如 select xxx from t where xx = 5 里面的 where 过滤条件。

  • Projection 投影, select c from t 里面的取 c 列是投影操作。

  • Join 连接, select xx from t1, t2 where t1.c = t2.c 就是把 t1 t2 两个表做 Join。

选择,投影,连接(简称 SPJ) 是最基本的算子。其中 Join 有内连接,左外右外连接等多种连接方式。

select b from t1, t2 where t1.c = t2.c and t1.a > 5 变成逻辑查询计划之后,t1 t2 对应的 DataSource,负责将数据捞上来。上面接个 Join 算子,将两个表的结果按 t1.c = t2.c连接,再按 t1.a > 5 做一个 Selection 过滤,最后将 b 列投影。下图是未经优化的表示:

所以说不是mysql不想把limit, offset传递给引擎层,而是因为划分了逻辑算子,所以导致无法直到具体算子包含了多少符合条件的数据。

怎么解决

《高性能MySQL》提到了两种方案

方案一

根据业务实际需求,看能否替换为下一页,上一页的功能,特别在ios, android端,以前那种完全的分页是不常见的。这里是说,把limit, offset,替换为>辅助索引(即搜索条件)id的方式。该id再调用时,需要返回给前端。

方案二

正面刚。这里介绍一个概念:索引覆盖:当辅助索引查询的数据,只有id和辅助索引本身,那么就不必再去查聚簇索引。

思路如下:`select xxx,xxx from in (select id from table where second_index = xxx limit 10 offset 10000)“ 这句话是说,先从条件查询中,查找数据对应的数据库唯一id值,因为主键在辅助索引上就有,所以不用回归到聚簇索引的磁盘去拉取。再通过这些已经被limit出来的10个主键id,去查询聚簇索引。这样只会十次随机io。在业务确实需要用分页的情况下,使用该方案可以大幅度提高性能。通常能满足性能要求。

在一个大项目中,我选择了另一种JDK实现AdoptOpenJDK

科技创新大兴 发表了文章 • 0 个评论 • 94 次浏览 • 2021-05-14 15:24 • 来自相关话题

前言最近在搞一个大项目,做一些基础选型工作。首先就是 JDK 的选型。由于 Oracle 在 Java 8 更改了许可证。这使得我在对 JDK 的选择上除了性能考虑外还要特别注意合规检查。这次我选择了AdoptOpenJDK。AdoptOpenJDKAdopt... ...查看全部
前言

最近在搞一个大项目,做一些基础选型工作。首先就是 JDK 的选型。由于 Oracle 在 Java 8 更改了许可证。这使得我在对 JDK 的选择上除了性能考虑外还要特别注意合规检查。这次我选择了AdoptOpenJDK。

AdoptOpenJDK

AdoptOpenJDK 是一个开放的,社区主导的计划,它提供了来自OpenJDK的 Java 平台参考实现的免费,预构建的二进制文件。

AdoptOpenJDK 发行版涵盖了最全面的操作系统和体系结构。使用 AdoptOpenJDK 二进制文件,您可以确信它在所有环境中的构建和测试都完全相同。

多虚拟机实现

目前它提供了两种虚拟机实现,一种是我们常见的 HotSpot;另一种是 OpenJ9。它们各有特点,HotSpot 比较成熟,而 OpenJ9 在云端更具有占用资源少、启动快的特点,更适合容器化。

稳定可靠

质量是AdoptOpenJDK二进制文件的另一个关键组成部分。社区有大量不同的测试可供使用,以验证每个构建的质量,从而确保应用程序按预期运行和运行。通过回归,功能,系统,负载,应用程序和性能测试,始终可以生成稳定可靠的版本。此外,构建和测试结果是完全开放的,并且可以由社区进行审查。很多财富 500 强公司的 JVM 应用都构建在AdoptOpenJDK之上。

社区驱动

AdoptOpenJDK的发展方向由个人开发者主导,保持中立,不受制于商业公司,为此它成立了一个专门的技术指导委员会来确保这一点。AdoptOpenJDK社区的目标是确保这些定期更新的 Java 始终可供所有人跨平台免费使用。

AdoptOpenJDK社区也非常活跃,在 Java 16 正式发布后,AdoptOpenJDK也第一时间进行了跟进发布了对应版本的 JDK 。而且同时对我们常用的 Java 8、Java 11 进行了长期支持。在用户响应上AdoptOpenJDK更快。

在 2020 年 6 月 19 日,AdoptOpenJDK 加入了 Eclipse 基金会。

安装方便

AdoptOpenJDK提供了多个选择方式,你可以根据需要组合选择。

组合选择JDK

而且提供了各个平台的包管理器安装,无论是 SDKMAN、Chocolatey、Homebrew 或者 Linux 下的包管理器都支持的不错。甚至在 Windows 下连 Java 环境变量都不需要了,如果是王八壳子,你还得注册个账号。

下载量多

截至目前AdoptOpenJDK的下载量已经达到 249,967,583,接近 2.5 亿次。进入 2021 年以来AdoptOpenJDK的下载量已经突破 2000 万次。

总结

目前各大公司包括国内的阿里、华为,甚至不以 Java 为主要技术栈的腾讯都开源了自己的 JDK。OpenJDK 越来越多地被使用,开始成为主流选择。通过胖哥的介绍你可以尝试一下AdoptOpenJDK。

那些在一个公司死磕了5-10年的人,最后都怎么样了?

GeekOnline编程挑战赛fanta2 发表了文章 • 0 个评论 • 118 次浏览 • 2021-05-14 15:24 • 来自相关话题

最近在知乎上看到一个话题那些在一个公司死磕了5-10年的人最后都怎么样了?”在互联网红利爆发,人心躁动的今天,可以在一个公司磕到5~10年,真的很不容易,我记得前东家要是有人呆满8年,就可以鲜花伺候,附送一个小金块,据说价值不菲。下面是知乎作者”沈世钧”的一个... ...查看全部

最近在知乎上看到一个话题

那些在一个公司死磕了5-10年的人最后都怎么样了?”

在互联网红利爆发,人心躁动的今天,可以在一个公司磕到5~10年,真的很不容易,我记得前东家要是有人呆满8年,就可以鲜花伺候,附送一个小金块,据说价值不菲。

下面是知乎作者”沈世钧”的一个回答,感觉还不错,分享给大家。

我是一名老程序员,在这家公司(500强外企),到今天已经服务了10年,目前的职称是“高级软件技术专家”。

好多人,尤其是在软件圈,一听闻我在这家公司已经服务了10年,无不大吃一惊,觉得我要么是技术烂,要么是没有追求。

其实,都不是。

我之所以愿意呆在这家公司,实在是因为她确实很棒,满足我的一切需求 。

工作和生活的平衡

我大概回忆了下,在这家公司的10年,加班的时间全部加起来不超过10天。最近3年则一天都没有。

20天年假,病假无算,基本上随请随休。

我从来没听说过那个领导不批员工年假的。

这样温和的工作,且不说在“996”成风的 IT圈,就是在任何传统行业,哪怕是公务员,也不多见。

对年轻人来说,高强度加班可能不是什么大问题。但人过了30,有了家庭,琐事缠身,精力每况愈下,愈发觉得能拥有这样一份工作,是人生之幸。

顶尖的技术

我所在业务部,主打技术是人工智能。而在某些细分领域,10年以来,公司的算法一直保持业界领先。

而是我虽然是一名软件开发人员,耳濡目染,却也一直接触着业界最前沿技术。

公司鼓励员工大胆尝试新技术,也不限制工程师的发展方向。10年以来,无论是桌面开发(C#/WPF)、还是Java后端开发,还是前端开发,我都较深入的参与过。

所以相对于有些公司,专岗专人,我在技术的广度上,则没有受到明显的限制。

软实力

除了技术“硬实力”,公司还特别注重发展员工的“软实力”,例如演讲能力,文案能力等等。

而这种软实力,越是职业生涯往后发展,就越有价值。

我常想,如果有一天,我失去了当前的工作,也许就再没有人愿意雇用我去写代码。到那时候,也许我可以凭着我这些年的积累,可以去应聘一些其他岗位,例如售前、售后、培训师等。

好歹有口饭吃。

职业发展

我的职业发展,总体走了一条“技术->管理->技术”的路线。

从技术走向管理是因为典型的“学而优则仕”。

从管理再回到技术,则是追随本心。整个过程,公司都尊重我的想法,没有设置任何的障碍。

今年我41岁,每天依旧奋斗在编程第一线。在这家公司,是再正常不过的一件事,没有一丝的尴尬。

舒适的工作环境

我去过很多互联网公司,很多办公环境都是大厅,大长桌。连个最基本的隔断都没有。工位之间,人挤人,恨不得伸个懒腰会碰到别人。

而我们公司人均办公面积20平方米,很多人都同时拥有3台显示器。工作之余,或伸腿躺下,或站起来做几个俯卧撑,那是再轻松不过的事情。

而资历深的老员工,很多还有独立办公室,无论管理还是技术。

有竞争力的薪水

当然,任何一家公司,再好的技术、再舒服的工作环境,如果给太少的钱,无疑都是耍流氓。

在过去的10年中,前8年,我的薪水在同资历的朋友中,一直靠前。但也就这两年,随着互联网的强势发展,朋友中才陆陆续续有人反超了我,但也是个别,而且多的并不夸张。

例如朋友在互联网公司挣1万,那我可能就挣8500。

但是,朋友为了这多出15%,却多付出了将近一倍的时间,而且还是最珍贵的休息时间。这个投入产出比,在我看来,实在太低。

当然,我不是说对所有的人,这个公司都是完美的。但具体到我,在每个时间点上,却可能是最适合我的。

早10年的时候,我年轻,也缺钱,并且精力旺盛,也能承受高强度的加班。但那时我的薪水却高于同资历的人,所以自没有离开的理由。

现在,虽然我的薪水优势已不在,但我却已经40岁了,精力大不如前,需要更多的关注家庭和健康。而现在我如果为了追求不多的加薪,而跳槽到996成风的互联网企业,无疑是准备向死而生。

当然,这世界上永远不会有完美的东西。即使有,也不会在所有的时候,让一个人全占了。

这家公司最大的问题是,这两年外企总体在走下坡路。就在我身边,大规模的裁员就发生过多次。

所以,今天,虽然我每天认真工作,真心的希望这家公司好。但我也有心理准备,如果哪天真裁员到我头上,我也没啥可说的。

我准备领了补偿金(n+3),回家好好调整一段时间,然后再开始人生的下一段旅程。

但无论如何,在心里,我和这家公司都有无比深的感情。她影响了我,改造了我,是我人生最重要,最愉快的的一段时光。我相信,到死的那天,在我临终回忆的时候,我的心里一定有她抹不去的影子。

Geek Online 2020 编程挑战赛作品展示《同道直播》

GeekOnline编程挑战赛admin 发表了文章 • 0 个评论 • 121 次浏览 • 2021-05-12 16:45 • 来自相关话题

由全球领先的互联网通信云服务商融云主办的 Geek Online 2020 编程挑战赛,于 2020 年 10 月 17 日举办了线上总决赛。本届大赛以“后疫情时代通信云技术的创新及实践”为主题,以融云 IM 和 RTC 的 SDK 为编程项目,历经... ...查看全部

由全球领先的互联网通信云服务商融云主办的 Geek Online 2020 编程挑战赛,于 2020 年 10 月 17 日举办了线上总决赛。本届大赛以“后疫情时代通信云技术的创新及实践”为主题,以融云 IM 和 RTC 的 SDK 为编程项目,历经近两个月的激烈角逐,15 支队伍在近百份参赛作品中突出重围,闯入总决赛,最终决出冠亚季团队及四个单项奖。

https://geekonline.rongcloud.cn/uploads/files_user1/article/607e7d8097e9b481793.png

入围作品主要集中于社交、游戏和工具等多个类别,为鼓励开发者挖掘创意、实现更多实时音视频和即时通讯技术的应用场景,最终,评委根据作品完整性、项目创意性和潜在商业价值三个维度进行综合评分,与数百万在线观众一道,见证了冠军队伍的诞生。

团队:秋分

作品:同道直播

源码地址:https://github.com/rongcloud-community/RongCloud_Hackathon_2020/pull/64/files

同道直播
一款私密直播软件,自己决定让谁可以看到自己的直播。

开启直播:
点击按钮“开启直播”,直播链接会显示在底部,点击链接会复制到剪贴板,然后可以将直播链接发给其他人。

79d6b6cb87c8af3aedec1793f21d3450.jpeg进入直播间:
点击按钮“加入直播间”,输入别人分享的直播链接,即可进入他的直播间。3f957bdd2e520b303125e30fcd64b205.jpeg

友情链接